HPC systems, increasingly used in applications spanning virtually all industries and sectors, have seen many changes in their architectural design in recent years in order to address the heterogeneity of future exascale computers. Accurate, fast and scalable performance models and simulation tools are essential for evaluating different architectures of hardware accelerators like graphics processing units or field programmable gate arrays, heterogeneous memory systems (including non-volatile and persistent memories), and networks. The EU-funded EPEEC project is addressing this issue, “having compiled five software components developed by European research institutions and companies to fine-tune and develop for its programming environment,” as stated in a news release. EPEEC focuses on various software issues seen as critical to HPC, including execution efficiency, scalability, energy awareness, composability/interoperability and programmer productivity. The idea is that EPEEC will provide an automated generation of compiler directives for applications, creating a high level of coding productivity with a set of tools that will exploit the full power of the emerging hardware. Developers will be able to use their preferred programming language – C, Fortran or C++ – as well as accelerator programming models (OpenMP, OpenACC, CUDA, OpenCL). They will also be able to choose either a global shared memory or distributed shared memory model. In addition to high coding productivity, another objective of EPEEC is to achieve high performance, to enable a programming environment with all relevant functionality at technology readiness level (TRL) 8 for current pre-exascale systems and TRL 4 (technology validated in lab) for exascale platforms. An energy awareness objective of EPEEC involves efficient and energy-aware management of hardware heterogeneity, both in terms of processing elements and memory subsystems. Overall, EPEEC aims to simplify application software development for large- and extreme-scale systems.
As explained in the same news release, five applications representing different scientific domains are covered by EPEEC. They include AVBP (fluid dynamics and combustion), DIOGENeS (nanophotonics/nanoplasmonics), OSIRIS (plasma physics), Quantum ESPRESSO (materials sciences) and SMURFF (life sciences). “Coming from different fields and covering compute-intensive, data-intensive, and extreme-data scenarios, these are serving as excellent co-design partners and will be leveraged as pre-exascale demonstrators.” The project website states: “AVBP is a 3D Navier-Stokes solver for compressible reactive multiphase flows on unstructured multi-element grids.” The website adds that AVBP is utilised for aeronautical research and development in Europe and Canada in public institutions, and also at EPEEC industrial partner European Center in Research and Advanced Training on Scientific Computing. “DIOGENeS (DIscOntinuous GalErkin Nanoscale Solvers) is a software suite dedicated to computational nanophotonics/nanoplasmonics,” the website adds. OSIRIS involves the simulation of “nonlinear and kinetic processes that occur during high-intensity particle and laser beam-plasma interactions,” acccording to the project website. Quantum ESPRESSO refers to an integrated suite of open-source computer codes for electronic-structure calculations and materials modelling at nanoscale. “The SMURFF (Scalable Matrix Factorization Framework) is a high-performance implementation of several matrix factorisation techniques,” as noted on the same website. Matrix factorisation is a common machine learning method used in recommender systems, like books for Amazon or movies for Netflix. The work of EPEEC (European joint Effort toward a Highly Productive Programming Environment for Heterogeneous Exascale Computing (EPEEC)) will be beneficial for various fields like healthcare and pharmaceutical drug development, climate modelling, weather prediction and energy. For more information, please see: EPEEC project website