XiTAO is a lightweight layer that provides a task-parallel and data-parallel interface using modern C++ features. The design goals of XiTAO are to be low-overhead and to serve as a development platform for testing scheduling and resource management algorithms. XiTAO is built on a generalized model of task which that assembles (1) concurrency, (2) an embedded scheduler and (3) a resizeable resource container. These TAOs (Task Assembly Objects) are moldable entities that can be scheduled into elastic resource partitioning, aka "elastic places". XiTAO targets better mapping between tasks and hardware resources such as cores, caches or interconnect bandwidth. Therefore, among other features, XiTAO provides fast parallelism at low overhead, with constructive sharing and interference-avoidance. Recently, XiTAO has been extended with novel high-level programming constructs, and with instrospective scheduling techniques that allow it to adapt to dynamic events as well as better target the goals of energy-efficiency.
The following figure shows the simplified architecture of the XiTAO runtime
XiTAO is a work in progress. You can access the current development snapshot at https://github.com/mpericas/xitao
The following publications describe implementation details of XiTAO. If you are using XiTAO for your research, we appreciate if you add a citation to the ACM TACO paper