Periodic Reporting for period 2 - EPEEC (European joint Effort toward a Highly Productive Programming Environment for Heterogeneous Exascale Computing (EPEEC))
Période du rapport: 2020-04-01 au 2022-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 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.
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.
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.