Skip to main content

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

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

Reporting period: 2020-04-01 to 2022-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 has significantly advanced and integrated 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 ensures 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 have majorily acquired the expected maturity. The proposed developments for the EPEEC programming environment components have been released on the Final Software Releases deliverables D3.6 and D4.5. The planned co-design efforts have led to effective and efficient programming environment components and the project applications now benefit from the most appropriate features from EPEEC's portfolio. With increased programming productivity, EPEEC is not only able to deliver competitive performance with respect to highly-tuned original codes, but it is able to even increase performance, reporting, e.g. up to 70% improvement for the ZPIC code in the POWER9 partition of the MareNostrum 4 supercomputer, showing better scalability properties, when leveraging the new OmpSs@OpenACC programming model with respect to bare OpenACC programming.

All devised milestones have been successfully accomplished. 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), release of intermediate software prototypes in month 18 (MS4), final software releases in month 39 (MS5) and users' guide in month 42 (MS6).

EPEEC has produced 14 key exploitable results and 36 pieces of software, most of them released open source. Many of the resulting technologies are deployed in operational environments with high TRL, ensuring their use after the end of the project. The backfeed of these components into the main application codes leads to an enhancement of specific functionalities and an improvement in performance at high coding productivity.

EPEEC proved very successful in terms of dissemination and communication, with a high number of related activities throughout its duration, outperforming most target KPIs, e.g. doubling the expected press impacts at a final count of 56, multiplying by 5 the number of presentations and tutorials/webinars at a final count of 22 and 11, respectively, or delivering 50% more scientific publications with a final count of 18.
Many pieces in the context of EPEEC improve upon the 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.
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 producing patent fillings.
4. The Parallelware component has been equipped with improved OpenMP and OpenACC support, being a unique of its kind.
5. The ecoHMEM framework for data placement for heterogeneous memory systems has been publicly released, in collaboration with Intel, being the first framework addressing fully automated data distribution at object granularity demonstrating performance gains at production scales.

Applications leveraging EPEEC's programming environment 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