System Software for Next-Generation Architectures and Applications (EFFICIENT)

Principal Investigators: Francisco D. Igual Pe├▒a y Carlos Garc├şa S├ínchez.
Start and end dates: 01/09/2022-30/08/2025
Code: PID2021-126576NB-I00

Summary: The shift towards unprecedented levels of resource replication, heterogeneity and specialization of computing systems in the Post-Moore era poses new challenges at all levels of the software stack, particularly for system software (from compilers to the OS or runtime systems/middleware). In order to optimally exploit the new levels of potential performance with minimal user intervention, it is widely accepted that system software will need to adapt its
design and behavior to:

  1. Transparently offer efficient mechanisms that allow higher degrees of performance portability across architectures, with support from compilers, OS, runtime systems and libraries.
  2. Apply policies to improve shared resource management leveraging capabilities of modern architectures while fulfilling strict levels of QoS on individual or multi-tenant scenarios.
  3. Learn and apply the aforementioned policies by observation, automatically characterizing the interaction between applications and architectures.
  4. Provide support to existing applications to expose a series of application-specific knobs and metrics via standardized APIs, allowing the implementation of elasticity in applications in terms of shared resource usage, allowing efficient resource sharing across applications.

Overall goal: To explore, design and implement new techniques and tools to improve efficient shared resource management and transparent performance portability across applications on multi-application environments, focusing on highly-parallel multi-core architectures featuring heterogeneous and specialized computing resources, with support from Machine Learning tools and techniques, and supported by simulation when necessary.

Objectives
Objective 1. Self-adaptive resource management on heterogeneous multi-tenant scenarios
O1.1. Support for dynamic resource elasticity in applications and runtimes
O1.2. Multi-objective resource management on elastic environments via Reinforcement Learning
O1.3. Acceleration of resource management via DSAs and hardware accelerators

Objective 2. Resource and QoS management on next-generation multi-core architectures
O2.1. Design of a resource-management framework to address shared-resource contention
O2.2. Resource-management within the system software for next-generation multi-cores

Objective 3. Performance portability on next-generation heterogeneous architectures
O3.1. Exploration of new software paradigms for performance portability
O3.2 Exploitation of specialized architectures, new hardware/ISA extensions and asymmetry

Objective 4. Application mapping on next-generation heterogeneous platforms and use cases
O4.1 Application tuning and mapping on next-generation heterogeneous platforms
O4.2 Use cases: heterogeneity and resource management on the IoT-edge-to-cloud continuum