Programming Models
-
Application optimization for GPU acceleration
As part of driving the BSC/UPC NVIDIA GPU Center of Excellence, we provide GPU Computing optimization/development services to the BSC community. We are involved in developing /optimizing GPU acceleration in a variety of projects from different departments at BSC.
-
Cyber-Physical Computing Systems
Cyber-Physical Systems are getting spread, as more and more devices are connected to the Internet. From TV streaming to alarm control, and from automatic delivery of home supplies to video processing, there are a lot of services that demand a connection to the Internet.
-
Data Placement for Heterogeneous Memory Systems
Although the exact approach to efficiently exploit heterogeneous memory systems is still uncertain, a software ecosystem clearly is required in order to assist in an efficient data distribution. We address this problem at the memory object granularity.
-
DLB: Dynamic Load Balancing
Load imbalance is a source of performance loss in HPC systems and applications. We have seen that the problem, far from being solved, worsens with the growth of the systems. Our proposal is a dynamic solution to adapt the execution at runtime.
-
Domain Specific Languages
Domain Specific Languages (DSLs) are a promising approach to hide the complexity of HPC systems, apply domain specific optimizations and boost programmer’s productivity. In this research line we investigate how to develop DSLs that can leverage well know HPC technologies such as MPI or OmpSs.
-
Dynamic resource management in HPC
Dynamic resource allocation and scheduling is key for an optimal resource utilization. In this research line we target system software for a smart allocation taking into consideration application characteristics for MPI+OpenMP applications.
-
Generic Lightweight Threads
We have designed Generic Lightweight Thread (GLT), an application programming interface that frames the functionality of the most popular LWT libraries for high-performance computing under a single programming model.
-
High Programming Productivity for Accelerators
Our main goal is to turn upcoming overwhelmingly-heterogeneous exascale supercomputers into manageable platforms for domain application developers.
-
Linear Algebra and Math Libraries
Linear Algebra and mathematical libraries are at the bottom of many widely used scientific and engineering applications. For that reason, finding new ways to improve the performance of these kernels and libraries is essential in order to ensure the performance of the applications built on the top of them.
-
Message Passing Interface (MPI)
Research and development on all aspects related with the Message Passing Interface programming model. Currently our research is focused toward offloading possibilities to compute-in-network resources.
-
OpenMP Extensions
The Programming Models team at BSC contributes to the OpenMP standard through its participation on the OpenMP ARB and Language committees and the different subcommittees (tasking, affinity, FORTRAN...).
-
Predictable Parallel Computing
The Predictable Parallel Computing group focus is the development of systems that consider HPC qualities such as performance and scalability, and embedded systems qualities as well, such as reliability and time predictability.
-
The OmpSs Programming Model
OmpSs is an effort to integrate features from the StarSs programming model developed by BSC into a single programming model, including support for asynchronous parallelism and heterogeneity on devices like GPUs and FPGAs.
-
Time-predictable parallel programming models
To exploit the computation capabilities of next-generation many-core embedded architectures, it is mandatory to tame the complexity of parallel programming, exacerbated by the cyber-physical interactions of embedded systems that imposes extra non-functional constraints such as time-predictability.