C++17 DAG scheduler for CPU/GPU workloads, with a CPU-only path for local development and CI.
- DAG-first task orchestration with
TaskGraph, dependency tracking, and pluggable scheduling policy - CPU and CUDA execution paths with CPU-only stubs for environments without CUDA hardware
- Runtime utilities such as task barriers, futures, retries, profiling, events, and resource limits
- A lightweight contributor workflow centered on local validation and factual documentation
git clone https://github.com/AICL-Lab/heterogeneous-task-scheduler.git
cd heterogeneous-task-scheduler
scripts/build.sh --cpu-only
scripts/test.shFor a compile-commands workspace, use the CPU-only preset:
cmake --preset cpu-only-debug
cmake --build --preset cpu-only-debug
ctest --preset cpu-only-debugscripts/build.sh --cpu-only
scripts/test.sh
scripts/format.sh --check
scripts/analyze.sh
cd website && npm run docs:build| Path | Purpose |
|---|---|
include/hts/ |
Public headers |
src/core/ |
Shared scheduler, graph, and runtime primitives |
src/cuda/ |
CUDA implementations and CPU-only stubs |
tests/ |
Unit and integration coverage |
examples/ |
Runnable sample programs |
scripts/ |
Build, test, format, analysis, and helper entry points |
docs/adr/ |
Architecture decision records |
website/ |
VitePress source for GitHub Pages |
CHANGELOG.md |
Single project changelog |
- GitHub Pages: architecture, API, examples, and user-facing guidance
CONTRIBUTING.md: contributor workflow and review expectationsCHANGELOG.md: release history and notable changesdocs/adr/: durable architectural decisions
Keep changes small, factual, and easy to maintain. Update docs when behavior changes, add or adjust tests when code changes, and run the validation baseline before opening a pull request.
Released under the MIT License.