Alpha TANGO Toolbox is released as Open Source

Here below the set of tools available in Alpha version of TANGO toolbox! Each tool is accompanied by a Readme file with the description of the component, installation guidelines for developers and users and the relationship with other TANGO components. License and link to the downloadable software are provided.

In order to provide some examples of use of our tools, several scenarios and the related workflows of tools are described also here. All components can be used independently or in integration with other components to approach different situations, as are shown in these examples.

Alpha version is 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.

Upcoming Beta version 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, in the Final version, the focus will be on enhancing programmer productivity.

Application Lifecycle Development Engine (ALDE)

ALDE is responsible for the workload scheduling and the management of the application life-cycle while it is executed. ALDE will take the application source code, packetize for different heterogenous architectures configurations and, if possible, deploy it via a TANGO Device Supervisor and manage the application execution.
Licensed under AGPLv3

Code Profiler

The code profiler is a tool for analysing Java code for its energy efficiency.
Licensed under Apache v2

Device Emulator

The Device Emulator (DE) component finds the initial mapping of the tasks onto the nodes/cores (at compile time), i.e., which task should run on each node/core. The mapping procedure is static and thus it does not take into account any runtime constraints.
Licensed under Apache v2

Device Supervisor

To be completed

Licensed under GPL v2

Energy Modeller

The Energy Modeller is responsible for reporting current and historic energy usage of applications. It features the ability to forecast power and energy consumption of applications in the future with the intent of providing information that guides the adaptive behaviour of the Tango architecture.
Licensed under Apache v2

Monitoring Infrastructure

The responsibility of this component is twofold. On one side it must provide running applications with metrics of the status of different devices, such as CPU, GPUs, FPGAs, etc. This information should be both energy consumption and performance status. On the other side it should also provide historical statistics for device metrics for latter analysis of upper components of the TANGO architecture.
Licensed under Apache v2


Placer is a placement optimization engine. It helps finding adequate placement of complex software onto heterogeneous multi processing hardware platform.
Licensed under LGPL v3


POROTO is a design time tool that allows users to quickly experiment and characterize various FPGA offloading configurations for a design or an alogorithm described in C language. The tool generates all the code and support files needed to compile the project, to test the generated code, and to perform simulation as well as validation tests.
Licensed under BDS-3 Clause

Programing model and runtime

The TANGO Programming Model and Runtime Abstraction Layer is a combination of the BSC's COMPSs and OmpSs task-based programming models, where COMPSs is dealing with the coarse-grain tasks and platform-level heterogeneity and OmpSs is dealing with fine-grain tasks and node-level heterogeneity.
Licensed under following licenses:
Programming Model Plugin as Apache v2
COMPSs Runtime as Apache v2

Self-adaptation manager

The Self-Adpatation manager is responsible for co-ordinating the adaptive behaviour of the Tango architecture. The main aim of this adaptation is provide low power and energy usage while maintaining quality of service aspects of applications.
Licensed under Apache v2