-
Built a C++ task runtime supporting asynchronous bulk task launches and dependency-aware scheduling over directed acyclic graphs (DAGs), scaling to 2,000+ task launches.
-
Designed a fixed-size worker pool using \texttt{std::thread}, mutexes, and condition variables to safely coordinate shared scheduling state while eliminating busy waiting through sleep-based synchronization.
-
Implemented dependency tracking using an adjacency-list graph with per-task dependency counters, automatically promoting ready jobs from a waiting graph to a FIFO ready queue as predecessor tasks completed.
-
Achieved up to \textbf{9$\times$ speedup} on a 12-core Apple Silicon processor by enabling parallel execution of independent task graphs while distributing scheduler bookkeeping across worker threads.
/// project
Asynchronous Task Runtime with Dependency Scheduling
Stanford CS149: Parallel Computing
- C++
- Multi-Threaded
- Data Structure