How qingleicao/task-bench works
Task Bench is a configurable benchmark for comparing task-based parallel and distributed runtimes. The workflow is to choose a runtime implementation and task-graph/kernel configuration, execute dependent tasks through that runtime, and report timing. The shared core supplies task-graph and kernel behavior; adapters express execution in each programming model. The README documents additional implementations and dependence patterns beyond the sampled excerpts, so those are represented as supported branches without inferring their internal wiring.
Main entry points: core.cc Task graph core · core_c.cc Core C API · legion/main.cc Legion adapter · realm/main.cc Realm adapter
Components 18
Task and kernel core
- Task graph core
core/core.cc - Core C API
core/core_c.cc - Kernel execution
core/core_kernel.cc
Runtime implementations
- Legion adapter
legion/main.cc - Realm adapter
realm/main.cc - Realm subgraph
realm_subgraph/main.cc - OpenMP adapter
openmp/main.cc - OmpSs adapter
ompss/main.cc - PaRSEC adapter
parsec/main.cc - StarPU adapter
starpu/main.cc - Charm++ adapter
charm++/main.C - MPI adapter
mpi/bulk_synchronous.cc - Dask adapter
dask/task_bench.py - Spark adapter
spark/src/main/scala/main.scala - TensorFlow adapter
tensorflow/task_bench.py
Benchmark variants
- Kernel benchmark
kernel_bench/main.cc - BLAS benchmarks
blas_bench/mt_dgemm.cc
Other components
- Benchmark user
Connections 25
- Benchmark user → Legion adapter: runs
- Benchmark user → Realm adapter: runs
- Benchmark user → Realm subgraph: runs
- Benchmark user → OpenMP adapter: runs
- Benchmark user → OmpSs adapter: runs
- Benchmark user → PaRSEC adapter: runs
- Benchmark user → StarPU adapter: runs
- Benchmark user → Charm++ adapter: runs
- Benchmark user → MPI adapter: runs
- Benchmark user → Dask adapter: runs
- Benchmark user → Spark adapter: runs
- Benchmark user → TensorFlow adapter: runs
- Benchmark user → Kernel benchmark: runs
- Benchmark user → BLAS benchmarks: runs
- Legion adapter → Task graph core: executes points
- Realm adapter → Task graph core: executes points
- Realm subgraph → Task graph core: executes points
- OpenMP adapter → Task graph core: executes points
- OmpSs adapter → Task graph core: executes points
- PaRSEC adapter → Task graph core: executes points
- StarPU adapter → Task graph core: executes points
- Task graph core → Kernel execution: executes kernel
- Kernel benchmark → Task graph core: executes graph
- Spark adapter → Core C API: calls
- Core C API → Task graph core: accesses graph