TANGO Toolbox is here: The first version is ready to help you create energy and performance aware apps for heterogeneous hardware

We provide you with tools for developing and operating applications for heterogeneous hardware that are energy and performance aware

Our team has been working hard during the last months to release the first version of the Toolbox and establishing an initiative to strengthen the market using heterogeneous hardware and software. In December, we have released our first version of software components from TANGO architecture. You can find it in our download section. Feel free to comment and share your contributions to the Toolbox.
Accompanying the first release of our software, we have prepared a document that can be accessed here. This document presents the installation manual of the different software components found in the overall TANGO architecture. First, it presents the installation of development tools and then of the software to install on the operational/runtime infrastructure of heterogeneous hardware. We ahve also prepared a scientific report describing the research and advances behind this first release of code that can be downloaded here.
At this stage, not all components have started to be implemented. However, the available component implementation provides the necessary and sufficient basis to profile the time and energy performance of an application so as to define the desired benchmarks and help developers make decisions on requirements, design, and coding.
While Year-1 focused on providing the necessary software to perform profiling of time and energy performance to obtain static benchmarking information on applications run on a heterogeneous hardware architecture, the effort in Year-2 will further integrate TANGO components to make it possible to explore trade-off on additional non-functional behaviours such as security, robustness and maintainability. Finally, during year 3, the focus will be on enhancing programmer productivity.

Installation of Development Tools

From its general architecture, TANGO framework contains the following development:

Requirements and Modelling tools to model, characterise and optimise the granularity and the placement of software components on an heterogeneous infrastructure at design (and deployment) time

Device Emulator, which can potentially be used at development or at deployment time to obtain time and energy performance data without actually running application code on an real infrastructure

In Year-1, an initial implementation is provided for the Requirements and Modelling tools, the Programming Model plugins and the Code Optimiser. Each development tool has its installation manual presented in subsections below. The device emulator will be ready during year-2.

Installation of Runtime Components

Once application development has taken place, it is possible to deploy and run it on a heterogeneous infrastructure. While in year-1, a significant amount of effort remains manual to upload, compile, execute, collect and aggregate monitoring data, most tools from the TANGO general architecture shown in the red box provide an initial implementation.
First, the SLURM tool provides an implementation for the Device Supervisor and the Infrastructure Monitor. Second, energy probes installed on hardware hosts can retrieve the energy consumed by the various heterogeneous components and communicated to the Infrastructure Monitor (SLURM or other).Third, the Self-Adaptation Manager proposes an initial implementation of its Energy Modeller. Fourth, the Application Life-cycle engine also presents an initial implementation. Only the implementation of Device Emulator will start during Year-2. The standard code for SLURM is available at https://slurm.schedmd.com/
The current version of the toolbox includes the following compnents, and instructions for their installation can be found in the document as well:

Extra Energy Probes to install on hardware host to measure energy of the GPU and XeonPhi elements of a host. (NOTE: Energy consumption for the host can already be collected through IPMI or RAPL by SLURM

SLURM (Device Supervisor and Infrastructure Monitor)

Energy Modeller (Part of the Self-Adaptation Engine)

Application Life-cycle Deployment Engine

It is worth emphasizing that for the Benchmarking exercised in year-1 on Nova 2, only the SLURM component was used. Others have so far not been fully integrated to be used. Furthermore, most of these other components will be truly useful in order to achieve self-adaptation action at deployment and operation time. Thus, for this first year where benchmarking exercises was done statically and where application could be installed and executed manually, the TANGO operational components other than SLURM where not absolutely required.
If you consider our work relevant for enhancing today's tools for programming heterogeneous hardware, please download our tools from github, play with them and join our open source project. We are on our way to improve them and create more tools during this year. And please make sure you visit our Heterogeneous Hardware & Software Alliance page, which is an initiative to become influencers in the nascent market of creating applications for HH&S. Read the FAQ here. Please take a few minutes and consider joining our initiative.