Energy-Efficient Fault Tolerance for Real-Time Tasks with Precedence Constraints on Heterogeneous Multicore Systems
This repository provides a simplified Python implementation based on the paper:
Energy-Efficient Fault Tolerance for Real-Time Tasks with Precedence Constraints on Heterogeneous Multicore Systems
Abhishek Roy, Hakan Aydin (George Mason University), and Dakai Zhu (University of Texas at San Antonio)
It implements DAG-based task modeling, basic partitioning (LTF, TBLS), speed assignment (Uniform Scaling, CPSS), and fault-tolerance via contingency tasks. While not a full production-grade system, it demonstrates core ideas in a concise form.
- DAG Task Model
- Each task has a base execution time, references to successor tasks, and a frequency parameter.
- Heterogeneous Dual-Core Architecture
- Simulates a high-performance (HP) core and a low-power (LP) core.
- Partitioning & Ordering Heuristics
- Largest Task First (LTF): Sort tasks by descending execution time; assign to the core with the lowest utilization.
- Threshold-based List Scheduling (TBLS): Assign tasks to the LP core until the utilization exceeds a threshold, then assign to the HP core.
- Speed Assignment
- Uniform Scaling (US): Same frequency for all tasks.
- Critical Path-based Static Speed (CPSS): Detects a simplified “critical path” (in this demo, tasks with the largest execution times) and boosts their frequency.
- Fault Tolerance
- Each task is duplicated on the opposite core, executed only if a primary fault is detected.
- Energy Model
- Simplistic formula ( P(f) = a \cdot f^3 + \alpha ), integrated over execution time.
├── README.md
└── energy_fault_tolerance.py
- energy_fault_tolerance.py: Main code containing classes (
Task
,Core
), DAG generation, partitioning heuristics, speed assignment, duplication for fault tolerance, and a simple main function that simulates example configurations.
- Clone or Download this repository.
- Python Environment: Any Python 3.7+ environment should work. It is recommended to use a virtual environment.
- Install Dependencies: If a
requirements.txt
is provided, install via:pip install -r requirements.txt
python energy_fault_tolerance.py