How Modularity Can Help in Code Porting: The MaX Experience
DescriptionThe advent of several hardware to accelerate scientific applications strongly impacted software communities in the last years. The increasing complexity of computer architectures encouraged code modernization in order to leverage the available HPC technologies. In this task, a major role was played by the European Centers of Excellence, and among them the MaX project for Materials design at the Exascale. During its three phases, MaX brought together computational scientists and core scientific communities, to design the modernization and evolution of selected softwares that are open-source, complementary, and distributed worldwide. Among these, we present the experience of QuantumESPRESSO, YAMBO and SIESTA. We discuss how the need to support material-science workloads on most recent HPC systems suggested to evolve MaX codes towards a modularized approach, driven by the principle of “separation of concerns”. This approach divides the high-level layer of property calculators and quantum engines, implemented mainly by the scientists, from the lower-level libraries, keeping into account the diversity of computing devices. In this talk, we show how "separation of concerns" fosters code portability and maintainability, together with enabling interoperability for scientific workflows on pre- and exascale machines.
TimeTuesday, June 2717:00 - 17:30 CEST