Our objective is to provide technologies and tools made to facilitate the adoption of new heterogeneous hardware
What we do
Analyzing the current market, we have found the importance of exploiting parallelism is of increasing significance, as parallelization has become a dominant method of delivering higher performance and improved energy efficiency.
use an approach that simplifies the creation and operation of next-gen software by hiding the complexity between the distributed/parallel architecture level and the level of application/software
expose performance, energy and other requirements of software applications to be incorporated into the overall development and deployment process, enabling programmers to code and resource managers execute being energy-aware
we plan to create a number of technologies and tools based on our research objectives:
- Propose and implement a self-adaptive reference architecture.
- Extend existing software development models and methodologies for heterogeneous parallel architectures.
- Develop an energy aware hardware agnostic programming environment.
- Develop and evaluate a self-adaptive model with identified low power parameters and QoS metrics.
- Develop hardware power consumption and software energy models.
will help you control and abstract underlying heterogeneous hardware architectures, configurations and software systems including heterogeneous clusters, chips and programmable logic devices while providing tools to optimize various dimensions of software design and operations (energy efficiency, performance, data movement and location, cost, time-criticality, security, dependability on target architectures)
- Fast Protoyping from software emulation & hardware-in-the-loop
- Abstract & use heterogeneus hardware with Tango Programming Model
- Spedify application critical and non-critical quality behaviors
- Optimize energy, Performance and much more
- Monitor underlying infrastructures, configurations & software systems
- Define runtime Self-Adaptation behaviors
- A toolbox based implementation of the reference architecture
- Reference software development models and methodologies for best practice
- A collection of reusable IDE plugins, programming models and runtimes
- An adaptive quality model for holistic system performance
- Hardware and software energy models
Requirements & Design Modelling
Develop a graphic and/or textual language to model hardware capabilities
Develop a graphic and/or textual language to identify the different implementation alternatives of an application
Identifying generic patterns of software requirements and HW/SW designCode Optimizer
Provides software developers the ability to directly understand the energy foot print of the code they write
Programming Model
Integration of COMPSs/OmpSs developed by BSC: COMPSs for higher level / orchestration; and OmpSs at finer level
Use of the COMPSs/OmpSs versioning mechanism to decide which task version fits better the applications’ goals and to interact with the different heterogeneous resources: CPUs, GPUs, FPGAs
Application Life cycle Deployment Engine
Manages the lifecycle of an application deployed by the IDE
Chooses suitable infrastructure according to energy constraints/goals and application performance constraints
Interacts with the resource and job management system e.g. SLURM
Monitoring Infrastructure
Set of APIs/Libraries to facilitate the collection of energy and performance information at runtime level
A monitoring solution that keeps and historic of the data.
Energy Modeler
Predictive energy modeling capabilities and policies depending on architecture
Device Supervisor
Provides scheduling capabilities across devices during application deployment and operation
Scheduling of workloads of both Clusters: Macro level, including distributed network and data management; and HPDs: Micro level, including memory hierarchy management.
Device Emulator
Provides out-of-band application deployment and operation to emulated HPD resources for the purpose of training application power profiles