Programming models and operating systems

1. Research challenge

Despite all the experience on parallel programming gathered in the last decades and the experience in implementing runtime systems to support parallel execution, the productive expression and efficient exploitation of parallelism for current multicore architectures are not obvious tasks.

Many-/multi-core architectures currently include tenths of cores and will include hundreds of them in the near future, with memory organizations that will probably scape from the easy-to-program shared-memory address space. In addition, resource specialization is considered as the path to built power efficient architectures, leading to heterogeneous architectures. New programming paradigms and OS/hardware support to enable effective programming of these architectures with 100+ cores, in terms of scalability and portability, are necessary.

2. Objectives

The main objective of this cluster is to create a powerful european research community for programming models and runtime environment for exascale architectures based on future many-/multi-core architectures. To achieve this we want to:

  • Propose novel programming models (or evolutions of the current ones) for future homogeneous/heterogeneous many-/multi-core chips. Expressiveness and productivity are equally important. Accelerators (SIMD units, GPUs, FPGAs, ...) should be considered. The introduction of dataflow concepts is necessary to exploit the distant parallelism that is hidden by the use of global synhronization mechanisms (i.e. barriers). Research on compiler and runtime support to parallel programming models, hiding as much as possible the particularities of the target architecture to the programmer (e.g. local memories and DMA transfers).
  • Propose novel programming models (or evolutions of the current ones) for future exascale clustered acrhitectures. PGAS (Partitioned Global Address Space) programming models are gaining much momentum as a novel approach to improve programmability and productivity of large-scale computing architectures. PGAS programming models offer programming flexibility of a globally shared-memory programming model whilst introducing adata locality at a much higher level than the distributed-memory MPI model.
  • Address the inter-operability of standards (e.g. MPI/OpenMP, OpenMP/OpenCL, ...) in order to provide scalability and portability.
  • Explore and propose new architectural features to support the programming model and its runtime implementation: thread creation, task off-loading, locality optmization, transactional memory, ...
  • Evaluate and propose OS support for architectures including heterogeneous cores (CPU, SIMD, GPU), reconfigurable cores (FPGA), ... that guarantees fast task creation and synchronization in the many-/multi-core environment, provides efficient task scheduling and allocation mechanism, thread management for power, temperature, and reliability, provides QoS in real time systems, ...
  • Promote the use and development of common tools to support our research activities as well as new benchmarks and methodologies that could serve as a basis for the evaluation of ideas proposed in our community.
  • Form interdisciplinary (intra- and inter-cluster) research groups that could make project proposals on programmability and parallelism of homogeneous or heterogeneous multi-core and/or reconfigurable architectures, with a holistic approach that addresses issues related to the underlying hardware, the operating system and the system software.
  • Contribute to a common HiPEAC 2012-2020 vision.

3. Current research activities

Some of the joint research activities, originated from the interaction within the cluster, that are currently in progress are:

3.1 Novel programming models
  • Explore and propose novel paradigms based on the exploitation of parallelism at runtime, supported with program annotations. In this direction, the activity of the groups at BSC-UPC, U. of Siena, U. Cyprus and U. of Manchester has been the incubator of the TERAFLUX project (FP7 IP 2010-13, Grant Agreement 249013). These groups will address the programmability challenges of many-core architectures by combining an underlying dataflow-based thread execution with advanced programming models like transactional memory.
  • Promotion of common research activities around transactional memory, including language support, runtime and hardware support. Two groups are currently involved: U. Manchester and BSC-CNS. The mobility associated to this collaboration is supported with cluster funding (Investigating Runtime-Adaptable Software/Hardware Transactional Systems)
  • Explore the use of MapReduce-like programming paradigms for clusters and distributed-memory multi-core architectures. Two groups are currently involved: FORTH-ICS and BSC-CNS.
  • Proposal of extensions to OpenMP to target accelerator-based architectures and implementation of a prototype for GPU and ClearSpeed. Groups involved: U. Castellon and BSC-UPC. This collaboration has already resulted in two papers: The mobility associated to this collaboration is supported with cluster funding (Extension of the StarSs Programming Model for Platforms with Multiple GPUs).
  • Explore the use of FPGA-based accelerators to off-load tasks in OpenMP. This work is done in collaboration with the Reconfigurable Computing cluster and has resulted in a paper presented at SAMOS 2009 (OpenMP extensions for FPGA Accelerators).
3.2 Archtectural support to programming models
  • Explore the support at the architecture level for parallel programming models. In particular, the groups at U. Delft and BSC are collaborating on hardware acceleration for managing task dependencies at runtime. The mobility associated to this collaboration is supported with cluster funding ( Collaboration funding Hardware Dependency Resolution). In addition, the activity in this cluster and in the multi-core architectures cluster has been the incubator of the ENCORE project (FP7 STREP 2010-12). The project will investigate the appropriate hardware support for the parallel programming and the runtime environment that ensures scalability, performance, and cost-efficiency. It will also develop a runtime system to dynamically detect, manage, and exploit parallelism, data locality, and resources across several parallel architectures.
3.3 Tools to support research activities
  • Build a new thermal-, power- and performance- simulation and modeling environment. This new environment aims to cover both the microscopic (high-performance microarchitecture) and macroscopic (processing rack and complete network of processing nodes) levels during the execution of typical high-performance computing applications. Thus, this environment will enable exploration of new programming models for supercomputers, low-power architectures, compiler tool chains, execution environments, operating systems, and applications. Three research groups are currently involved: Barcelona Supercomputing Center (Spain), EPFL (Switzerland) and Complutense University of Madrid (Spain). The mobility associated to this activity is supported with cluster fundind (Performance, Power and Thermal Simulation Frameworks for High-Performance Computing Systems).
  • Promotion of the Mercurium source-to-source restructurer for C/C++ and F90 and Nanos++ runtime library for OpenMP. The material used for a one-day seminar on the Mercurium source-to-source restructurer is available for dowload and view.

4. PRO seminars

The cluster has organized one tutorial:
  • Mercurium seminar (March 2009, BSC-UPC)
and several invited talks on topics related with programming models and tools. To access the contents of the HiPEAC web seminars, please visit the seminars page.

5. Other activities

  • Organization of workshops on programming models and runtime support for multi-cores systems:
    • MULTIPROG-2008 in Goteborg (January 2008)
    • BMW'08 in Barcelona (June 2008)
    • MULTIPROG-2009 in Paphos (January 2009)
    • MULTIPROG-2010 in Pisa (January 2010)
    • BMW'10 in Barcelona (October 2010)

6. Information about cluster meetings

  • Information about the kick-off meeting in Goteborg. January 2008.
  • Information about the 2nd meeting in Barcelona. June 2008.
  • Information about the 3rd meeting in Paris. November 2008.
  • Information about the 4th meeting in Paphos. January 2009.
  • Information about the 5th meeting in Munich. June 2009.
  • Information about the 6th meeting in Wroclaw. October 2009.

Coordinating partner: BSC