Welcome

OVERVIEW

C/C++ and Fortran are widely used programming languages for sequential applications. There is a variety of parallel programming models based on them. MPI is build like a set of message passing primitives, usually called from C and Fortran. OpenMP proposes extensions to such languages. There are other programming languages that extend them in different ways: Unified Parallel C and Co-Array Fortran. And there are new language proposals like Fortress (SUN), Chapel (Cray), and X-10 (IBM), which promise improved programmer productivity. Our team explores such programming environments and provides support for the execution of parallel applications on top of some of them.
 

OBJECTIVES

The main goal of the Programming Models group is to investigate new and current programming paradigms and the associated runtime system support to provide high performance to parallel applications. The target architectures range from multicore and SMT processors to shared- and distributed-memory systems, small and large-scale systems, and both, homogenous and heterogenous systems that use accelerators like GPGPUs.

We currently organize our work around three different projects:

  • We develop different extensions to OpenMP for asynchronous tasks parallelism and heterogeneity support. They are integrated into our OmpSs programming model environment.
  • Our Mercurium source-to-source compiler provides the necessary support for transforming the high-level directives into a parallelized version of the application.
  • Our Nanos++ runtime library provides the parallel services to manage all the parallelism in the user-application, including task creation, synchronization and data movement.