Algos and SD research groups will partner with Barcelona Supercomputing Center and several other institutions in this new European project, with 3.9 M funding, to develop and deploy a production-ready parallel programming environment. This will turn future exascale supercomputers, which will be overwhelmingly heterogeneous, into manageable platforms for application developers in different domains.

The consortium of the EPEEC project (European joint Effort toward a Highly Productive Programming Environment for Heterogeneous Exascale Computing) that started on 1 October 2018,  will significantly advance and integrate 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.

Five applications representing different scientific domains will be used as part of a strong interdisciplinary co-design approach and as technology demonstrators: AVBP (fluid dynamics and combustion), DIOGENeS (nanophotonics / nanoplasmonics), OSIRIS (plasma physics), Quantum ESPRESSO (materials sciences) and SMURFF (life sciences). EPEEC will exploit results from past Future and Emerging Technologies (FET) projects that have led to the cutting-edge software components it builds upon, and aims to influence the most important parallel programming standardisation bodies.

The project will ensure the composability and interoperability of its programming models and runtimes, which will incorporate specific features to handle data-intensive and extreme-data applications. Enhanced leading-edge performance tools will offer integral profiling, performance prediction, and visualisation of traces.

An automatic generator of compiler directives will provide outstanding coding productivity from the very beginning of the application developing/porting process. Developers will be able to leverage either shared memory or distributed-shared memory programming flavours, and code in their preferred language (C, Fortran, or C++) and accelerator programming model (OpenMP, OpenACC, CUDA, or OpenCL).