Skip to main content

European joint Effort toward a Highly Productive Programming Environment for Heterogeneous Exascale Computing (EPEEC)

Periodic Reporting for period 1 - EPEEC (European joint Effort toward a Highly Productive Programming Environment for Heterogeneous Exascale Computing (EPEEC))

Reporting period: 2018-10-01 to 2020-03-31

EPEEC’s main goal is to develop and deploy a production-ready parallel programming environment that turns upcoming overwhelmingly-heterogeneous exascale supercomputers into manageable platforms for domain application developers. The consortium is significantly advancing and integrating existing state-of-the-art components based on European technology (programming models, runtime systems, and tools) with key features enabling 3 overarching objectives: high coding productivity, high performance, and energy awareness.
An automatic generator of compiler directives provides outstanding coding productivity from the very beginning of the application developing/porting process. Developers are able to leverage either shared memory or distributed-shared memory programming flavours, and code in their preferred language: C, Fortran, or C++. EPEEC will ensure the composability and interoperability of its programming models and runtimes, which are incorporating specific features to handle data-intensive and extreme-data applications. Enhanced leading-edge performance tools offer integral profiling, performance prediction, and visualisation of traces. Five applications representative of different relevant scientific domains serve as part of a strong inter-disciplinary co-design approach and as technology demonstrators.
The project’s developments are successfully acquiring the expected maturity. Most of the proposed developments for the EPEEC programming environment components have been released on the Intermediate Software Prototypes deliverables D3.4 and D4.3. The planned co-design efforts in between programming environment components and applications are now in their most intense phase as expected.
All devised milestones have been successfully and timely accomplished so far. These include Website deployment in month 3 (MS1), Data Management Plan production in month 6 (MS2), release of initial software prototypes in month 9 (MS3), and release of intermediate software prototypes in month 18 (MS4).
Exploitation-wise, a number of 12 exploitable assets have been identified accounting 20 IP components. Components are a mix between open source and proprietary. Early expert feedback has been gathered by the members of the Scientific and Industrial Advisory Board, who were impressed on the progress of the project, and at external events with industrial presence.
Several pieces have been already developed in the context of EPEEC beyond state of the art. Following are enumerated a few highlights:
1. The OpenACC programming model has been combined with the OmpSs programming model, both in terms of composability and interoperability, being the first time a task-oriented programming model is combined with the OpenACC Standard. Proposals for better integration are to be proposed to the OpenACC Organization.
2. The GASPI programming model has been equipped with data compression and eventually consistent collectives, being the first one-sided programming model incorporating these features.
3. The ArgoDSM component has developed features that merit a patent filling.
4. The Parallelware component has been equipped with improved OpenMP and OpenACC support, being a unique of its kind.

At the end of the project we expect to reach maturity in the aforementioned features, but also some other features still requiring some further work (e.g. tasking withing accelerators or heterogeneous memory management). We expect to have EPEEC applications as demonstrators of EPEEC features after the current strong co-design phase. We also expect to impact in programming model standards such as OpenACC, OpenMP, and MPI.

Applications leveraging EPEEC's developments will be able to develop code faster that is more portable and performance portable than current state of the art support. Society will benefit from faster new developments into codes such as spacial or drug simulators, personalised medicine, etc.
EPEEC’s methodological framework for parallelization