This talk will present the work conducted during the ARCHER2 eCSE03-2 project to integrate ADIOS2 into the Xcompact3D framework to facilitate in-situ analysis. Historically there has been an emphasis on solver development, with solver scaling being an oft-quoted metric to demonstrate a code’s capability to run efficiently on HPC systems. Equally important, especially when considering the purpose of scientific software to answer questions, is the performance of the code’s I/O system. However, this is often overlooked, and can become a bottleneck, particularly when running at scale. In addition to performance concerns, as computational capabilities and correspondingly simulation sizes grow, managing the data volumes generated may be impractical. To address these issues, in-situ analysis methods reduce the data to only that required by the numerical experiment being conducted, however these are frequently strongly tied to the code implementation, requiring significant familiarity to modify to a user’s needs.
In this ARCHER2 eCSE project the ADIOS2 I/O framework was added to the high-order open-source CFD code Xcompact3D. The ADIOS2 abstractions over I/O operations enables redirecting output as desired, whether writing to disk or a concurrently running program, and similarly read input from disk or another program. By integrating this into Xcompact3D and Py4Incompact3D, a Python framework for postprocessing Xcompact3D simulation data, in-situ analyses will no longer need to be implemented within the Xcompact3D codebase, instead being run in Py4Incompact3D. The aim of this work is to make implementing custom analyses easier for end users, and improve code portability as local changes will be kept separate from the main source code. In addition to demonstrating in-situ capabilities up to O(16k) cores on ARCHER2, we also found performance benefits over the original MPI-IO backend when using ADIOS2.
This online session is open to all. It will use the Blackboard Collaborate platform.