The high-performance computing (HPC) community is working diligently towards building, supporting and using highly-heterogeneous Exascale supercomputers. However, while considerable progress has been made in systems software - including programming models and runtime systems - in providing more transparent support for large-scale deployments, there is a long way to go in terms of providing highly efficient, generic and portable support. In particular, there is no available integrated ecosystem of programming environment components targeting highly productive Exascale programming that can exploit the full power of emerging hardware.
This is where EPEEC comes in. The project consortium 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 three overarching objectives: high coding productivity, high performance, and energy awareness.
"Given the imminent arrival of Exascale supercomputers, we have very high expectations for the outcomes of this project. Using a supercomputer efficiently should not be limited to 'ninja programmers'; it should be open to domain application developers with a general understanding of parallel programming, said EPEEC's technical manager Antonio J. Peña, leader of the Accelerators and Communications for HPC at Barcelona Supercomputing Center (BSC). "The advances made in EPEEC will directly benefit society by speeding up the development of large-scale simulators leading to the discovery of new drugs or more accurate weather forecasts, for example", he added.
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).
More information is available at the EPEEC project website.