The Allscale scheduler is designed for allowing a user to provide hints on his priority when using a targeted platform. The dynamic multi-objective optimizer component of the AllScale architecture is responsible for efficiently utilizing the target platform for steering applications towards fulfilling these customizable trade-offs among a variety of (conflicting) optimization objectives, such as, minimizing execution time, energy consumption or resource utilization (=computational cost).
Three different main objectives are envisioned:
- Time: minimizing the execution time of the user’s application
- Resource: minimizing the number of hardware component used for the execution of the user’s application
- Energy: minimizing the ongoing power consumption of the platform executing the user’s application
Using the Allscale environment, It is possible for a user to hint any of these three objectives. Yet we envision being able to mix these objectives by providing weight to them will lead to better platform utilization.
Using allscale, users will thus be able to provide hints by mixing these conflicting objectives by providing their expected weights. For instance, the following hint “time:0.2 energy” would inform the scheduler that the user would agree increasing the execution time by up to 20% for reducing the power consumption of the machine.
Scheduler Design Overview
The Allscale scheduler is distributed and multi-tier. The following two layers are deployed on every node on which Allscale is deployed:
- A top layer called strategic scheduler: this layer interprets the user provided objective function, it evaluates the objective function periodically and re/configures the available resources accordingly. The configurations may include throttling the number of cores, disabling/enabling hardware threads, changing the frequency, and/or voltage of the compute units, etc.
- A bottom layer called tactical scheduler: this layer wraps the HPX provided scheduler and is responsible for effectively utilizing the resources provided by the top layer; the decision of whether to split the work items or process, the selection of the work item variants and assigning them to compute units, and moving data item fragments are all responsibility of this layer.
The following figure illustrates the design of the dynamic multi-objective optimizer:
Different aspects impact the energy efficiency of the Allscale runtime the two main ones are the following:
- The Allscale runtime targets recursive parallelism. It also follows the classic data-centric computation approach: data expressed in these parallel sections is initially distributed over the different nodes of the platform, and task creation and execution is inferred from the data distribution to reduce the amount inter-node communications which are highly expensive in terms of energy consumption.
- The Allscale runtime also features hardware reconfiguration capabilities: this enable the scheduler to switch unused resources off. It also has the capabilities to scale the frequency of processors to further reduce the energy consumption.