XiTAO is an execution model and runtime for low-overhead and interference-free execution of mixed-mode DAGs on manycores. XiTAO's generalizes the concept of task by providing it with (1) internal concurrency, (2) an embedded scheduler and (3) a resizeable resource container. XiTAO tasks, called TAOs: "Task Assembly Objects", hence become moldable entities. Via a elastic resource partitioning, XiTAO provides better mapping between tasks and hardware resources such as cores, caches or interconnect bandwidth. Hence XiTAO provides fast parallelism at low overhead, with constructive sharing and interference-avoidance.
The following figure shows the architecture of the XiTAO runtime
make lib
cd benchmarks/dotproduct
make dotprod
export GOTAO_NTHREADS=nthreads
./dotprod 8192 2 16
read documentation.pdf
cd benchmarks/randomDAGs
make randombench
export GOTAO_NTHREADS=nthreads
./randombench 10 5 1000 1000 1000
Critical path length: 1852
Degree of prallelism: 1.61987
3000 Tasks completed in 3.62071s
Assembly Throughput: 828.567 A/sec
Total number of steals: 2209
cd ./include/
vim config.h
#define DEBUG
vi makefile.sched
This work has been supported by EU H2020 ICT project LEGaTO, contract #780681.