Energy considerations with the TANGO Programming Model and Runtime

One of the recent trending topics in computer science research is the reduction of energy and power consumed by computers. Part of this research is focused on providing low power architectures and accelerators which can achieve good performance at low power. However, an application should be modified to take advantage of this heterogeneous architecture. In a previous entry (, we presented the overview of the TANGO Programming Model and Runtime as a hierarchical integration of the COMPSs and OmpSs task-based programming models, and how it can facilitate the programming of parallel applications in distributed heterogeneous platforms. However, the TANGO programming model and runtime will also be used to improve the energy efficiency of the execution of task-based parallel applications in these distributed heterogeneous platforms. Next paragraphs provide an overview of these possibilities

Task versioning
The TANGO programming model provides a syntax which allows users to define different versions of the tasks and to simplify the integration of kernels for different accelerators in a single application. Combining both features users can define versions of the same task which can run either in multi-core CPUs or accelerators such as GPUs or FPGAs. Depending on the available infrastructure the programming model runtime will select the most appropriate version not only in terms of performance but also in terms of power or energy consumption

Energy-aware Scheduling
In addition to the selection of the most efficient version of a task, another important factor is the scheduling of tasks. The order of execution of the tasks in the available heterogeneous resources has also an effect on performance and energy efficiency. As studied in [1], depending on the tasks’ graph, the required data transfers and the resource capabilities and efficiency, a certain scheduling policy can produce a better execution time or energy efficiency than another. The TANGO programming model runtime is capable to automatically generate the application task graph and based on profiling data of previous task executions, it will be able to estimate the application makespan, the expected power or energy consumption and optimize the application scheduling to take into account not only the application performance but also power constraint and energy consumption

Efficient use of resources
Another important benefit of the TANGO Programming model is the ability to easily use different computing devices in the same application. Traditionally, applications have different versions of the application depending on the target computing device. For instance, for multi-core CPUs they have a MPI-OpenMP implementation, for accelerators they have MPI+CUDA or OpenCL versions. However, current complex nodes which combine a large number different computing devices, only one type of resource is used while others are not used. In the case of applications implemented with the TANGO programming model, one type of devices can be used by a given task and other devices can be used by other types of tasks or versions of the same task.
Finally, applications may be composed of parts with different levels of parallelism. In regions with a high level of parallelism applications can speed up its execution if they have more resources. In contrast, regions with low parallelism could waste resources. To solve this problem, the TANGO Programming Model Runtime will be able to adapt the number of resources according to the different parallelism available. At the end, reducing the waste of resource is the most important way to reduce energy consumption.


[1] Fredy Juarez, Jorge Ejarque, Rosa M. Badia, Dynamic energy-aware scheduling for parallel task-based application in cloud computing, Future Generation Computer Systems, 2016, ISSN 0167-739X,