Many industrial scenarios require very advanced computation capabilities due to the big amount of data to be analyzed and to the complex calculations to be performed. High Performance Computing (HPC) is a technology that is bringing the industry to a new era through the use of simulations, advanced modeling and improved visualization to improve the ingeneering and manufacture of new products.
As the technology is evolving and the problems to solve become more complex, it is necessary to provide the technology for future exascale applications, which will have new requirements for scaling up the amount of resources to be used. HPC systems become more heterogeneous and aim at optimizing energy consumption.
The main objective of the research we carry out is to manage parallel computing resources in a smart way while, at the same time, we enable the usage of the technology:
- Optimize resources management for large systems, assigning the adequate resources to the applications to be run and dealing with non-functional aspects.
- Facilitate access to HPC resources, thanks to portals and frontends which hide the complexity to the end users.
- Create and adapt new tools able to use the parallel computation capabilities of HPC systems, especially in the field of parallel (real-time) data analytics.
- Research on new ways to perform parallel computation, learning how to use them.
We are focused in solutions that can deal with the current issues in HPC, taking into account the coming problems in future Exascale systems while, and in solutions for extreme data analytics using parallel computing resources:
- Orchestration of applications for performing optimal deployments and execution, deriving some tasks to Cloud HPC resources whenever it is convinient.
- Provision of portals and front-ends for easy access and usage of HPC resources, integrating data management tools, experimentation tools, communities management and applications marketplace.
- Development of our parallel Complex Event Processing (CEP) engine for real-time data analysis, able also to work in low-power computing devices.
Technologies for Exascale Computation:
- Optimal resources management, allocating the right resources to the applications.
- Enable usage of highly scalable applications, taking into account potential bottlenecks.
- Deal with heterogeneous systems, adopting acceleration devices.
Easing the usage of HPC for different domains:
- Tools for large and complex data analytics, parallelizing data processing.
- Ease execution of experiments in different domains, giving transparent access to HPC.
- Find new application domains where HPC is a tool to exploit.
New technologies for parallel computing:
- New Quantum Computing technologies and quantum algorithms.
- Future Neuromorphic Computing solutions, as a new way of computation.
- Dynamic applications profiling and allocation for an optimal execution.
- Non-functional properties management (monitoring, energy-efficiency, QoS, etc.).
- Optimization of tasks scheduling, bearing in mind several aspects at the same time (i.e. network topology, accelerators availability, etc.).
- Usage of accelerators / heterogeneous devices (i.e. GPUs, FPGAs...).
- Hybrid HPC infrastructures with energy-efficient accelerators for HPCaaS.
- Parallel data analytics in (near) real-time, also in embedded HPC, with our parallel CEP.
- New programming models, domains specific languages, programming paradigms, etc. for parallel applications.
Advanced decision-support in the face of global challenges. It brings together the power of HPC and some of the most promising thinking on global systems in order to improve decisions in business, politics and civil society.
Enabling users to fully benefit from underlying High Processing capacities to explore new methods, build new innovative services and to perform predictions and simulations with extremely large and heterogeneous datasets.
Provision of an eInfrastructure focused on the optimized execution of Math Application Development Frameworks used in social science, done with a customized orchestration for OpenMP, MPI and large parallel applications.