GOAL

“Modernise” materials science community codes and make them ready to exploit at best the future exascale systems.

CHALLENGE

Porting, scaling and optimising materials science, open source codes for upcoming exascale architectures.

STRATEGY

A pragmatic approach based on building knowledge about exascale related problems and running proof-of-concept co-design and test-field solutions. The resulting best practices are then  consolidated in the official (publicly available) code releases.

OUTCOME

New code versions with validated developments; publicly available libraries and modules; extensive dissemination activities.

IMPACT

Best exploitation of present and future HPC systems; valuable knowledge for other applications and domains, as well as technology providers.

Enabling Exascale Transition

 

Achieving exascale performances in the short term may require adopting software solutions that could be disruptive of the structure of legacy codes. 

We identify four main actions that are named: profiling, programming paradigms, libraries and co-design.

Profiling is fundamental in identifying and solving the bottlenecks of the flagship codes and in evaluating both the exploitation of the machine architecture (FLOPS) and the energetic efficiencies (watt).

Programming paradigms consists in improving the performances of the flagship codes on HPC pre- and exascale architectures through the improvement of code parallelization using standard OpenMP and MPI paradigms (CPUs) and the exploitation of new paradigms as OmpSS and CUDA (GPUs).

The libraries are further developed with Domain Specific Libraries (DSL) and Kernel libraries module to, among the many, demonstrate the portability of performances across different accelerated technologies.

Co-design supports the evolution of sophisticated HPC architectures by enabling data and knowledge transfer between the hardware manufacturers (architecture vendors) and the scientists (scientific application developers, programming paradigm specialists, software tool developers) involved in many fields of computational materials science. In this case, hardware and software do not act as independent agents, but interact strongly with each other taking into mutual account the constraints and goals that these once separated areas have to fulfil and achieve. 

These activities lead to: the release of new efficient and optimized versions of the flagship codes; the development of libraries and modules that can be shared by different open source codes, different communities and architecture vendors; the feedback between scientists and developers; the dissemination of best practice through organization of Schools and Workshops; the promotion of new collaborations with CoEs and the ease in accessing HPC facilities through PRACE initiatives.

More in general the quest to develop a capable exascale ecosystem is a monumental effort that requires the collaboration of government, academia and industry.