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
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.
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.
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.