AllScale Runtime System
The runtime system interface is the layer describing the structure of an application that can be managed and tuned by the AllScale runtime system.
The main interacting areas are with the compiler, the online monitoring tool and the resilience manager.
Due to the high level of coupling to other components it is very important for the resulting runtime interface specification to find a model of expressing parallel (recursive) tasks, data dependencies, IO characteristics, and hardware requirements as well as means for offering multiple, exchangeable implementations constituting different variations of the same code fragment and meta-data capturing resilience properties of the provided codes, in particular failure compensation strategies.
The runtime system interface relies on HPX as the underlying runtime API.
It employs trees of futures using Data-Flow control techniques to execute applications without thread-suspension or waiting. This allows the runtime to be as resource efficient as possible and not waste any memory by having a great number of already allocated but suspended threads.