Honing and proofing Astrophysical codes on the road to Exascale. Experiences from code modernization on many-core systems

Salvatore Cielo*, Luigi Iapichino, Fabio Baruffa, Matteo Bugli, Christoph Federrath

*Corresponding author for this work

    Research output: Contribution to journalArticlepeer-review

    2 Citations (Scopus)

    Abstract

    The complexity of modern and upcoming computing architectures poses severe challenges for code developers and application specialists, and forces them to expose the highest possible degree of parallelism, in order to make the best use of the available hardware. The Intel® Xeon Phi™ of second generation (code-named Knights Landing, henceforth KNL) is the latest many-core system, which implements several interesting hardware features like for example a large number of cores per node (up to 72), the 512 bits-wide vector registers and the high-bandwidth memory. The unique features of KNL make this platform a powerful testbed for modern HPC applications. The performance of codes on KNL is therefore a useful proxy of their readiness for future architectures. In this work we describe the lessons learnt during the optimization of the widely used codes for computational astrophysics P-GADGET3, FLASH and ECHO. Moreover, we present results for the visualization and analysis tools VISIT and yt. These examples show that modern architectures benefit from code optimization at different levels, even more than traditional multi-core systems. However, the level of modernization of typical community codes still needs improvements, for them to fully utilize resources of novel architectures.

    Original languageEnglish
    Pages (from-to)93-107
    Number of pages15
    JournalFuture Generation Computer Systems
    Volume112
    DOIs
    Publication statusPublished - Nov 2020

    Fingerprint

    Dive into the research topics of 'Honing and proofing Astrophysical codes on the road to Exascale. Experiences from code modernization on many-core systems'. Together they form a unique fingerprint.

    Cite this