The NNSA supports the development of open-source software technologies that are both important to the success of national security applications and externally impactful for the rest of the ECP and the broader community. These software technologies are managed as part of a larger Advanced Simulation and Computing (ASC) portfolio, which provides resources to develop and apply these technologies to issues of importance to national security. The software technologies at LANL span programming models and runtimes (Legion), development tools (Kitsune), data visualization and analysis (Cinema), and workflow orchestration (BEE).
The Legion effort is focused on delivering programming model technologies to support ASC mission applications. This work includes adding features and the integration of the Legion programming model into higher level libraries/ frameworks such as the Flexible Computational Science Infrastructure. The Legion-centric efforts are focused on developing and integrating new capabilities such as dynamic control replication, which enables applications to be written with apparently sequential semantics and parallelize and scale to exascale systems. These capabilities are necessary for complex applications that often require multiple mesh representations, different discretization strategies, and support for multiple materials in a single application.
The Kitsune effort works with the open-source LLVM Compiler Infrastructure to provide tools and capabilities that address exascale needs and challenges faced by applications, libraries, and other components of the software stack. The team is focused on providing a more productive development environment that enables improved compilation times and code generation for parallelism; additional features/capabilities within the design and implementations of LLVM components for improved platform/performance portability; and improved aspects related to composition of the underlying implementation details of the programming environment.
The Cinema tool is an innovative way of capturing, storing, and exploring extreme-scale scientific data. Cinema embodies approaches to maximize insight from extreme-scale simulation results while minimizing data footprint. The team is creating capabilities that allow scientists more options in analyzing and exploring the results of large simulations by providing a workflow that detects features in situ; captures data artifacts from those features in Cinema databases; promotes post hoc analysis of the data; and provides data viewers that enable interactive, structured exploration of the resulting artifacts.
BEE (Build and Execution Environment) is a toolkit that provides users with the ability to execute application workflows across a diverse set of hardware and runtime environments. Using BEE’s tools, users can build and launch applications on high-performance clusters and public and private clouds. The team is providing technology that eases the deployment of new application and software technology via containerization; has a flexible runtime that enables containers to run across a wide variety of high-performance platforms; and supports for deploying containers that support producer-consumer workflows and job coupling.
The Exascale Computing Project (ECP) Cinema project was developed in coordination with LANL’s ECP application Next-Generation Code (NGC) for multi-physics simulations to ensure that data collected during the simulation execution is of appropriate frequency, resolution, and view port for later analysis and visualization by scientists. The Cinema software addresses the need for the exploration and analysis of extreme scale data sets.
To meet this need, the ECP Cinema team worked to enable flexible data analysis workflows using a fraction of the file storage. Cinema workflows integrate applications with in situ and post-processing analysis that are captured and curated through the Pantheon project. The goal is to create reproducible ECP workflows.
Cinema utilizes a novel database approach to saving data extracts in situ which are then available for post hoc interactive exploration. These data extracts can include metadata, parameters, data visualizations, small meshes, output plots, etc. The Cinema database export is part of the extract generator workflow in ParaView/Catalyst and Cinema export is also available via ALPINE’s Ascent infrastructure and through VisIt.
The team also focused on expanding the python-based Cinema functionality and the development of the Composable Image Set (CIS) specification. This new CIS specification can be used to save layers of float-value portable network graphics (png) images that can be combined to generate composited visualizations post hoc in a more flexible and interactive approach.
The overall flexibility built into the Cinema workflows means that scientists can perform the data analysis they need, at scale, while using a fraction of the file storage.
Cinema is essential for ECP because it embodies approaches to maximize insight from extreme-scale simulation results while minimizing data footprint. Cinema capabilities provide scientists more options in analyzing and exploring the results of large simulations by providing a workflow that (1) detects features in situ, (2) captures data artifacts in Cinema databases, (3) promotes post-hoc analysis of the data, and (4) provides data viewers that allow interactive, structured exploration of the resulting artifacts.
The Cinema team has also been collaborating with the E4S team to leverage the E4S SDKs and cached builds to generate reproducible ECP workflows curated via the Cinema/E4S Pantheon project. These reproducible workflows provide end-to-end pipelines that can demonstrate integrations. Leveraging Spack based builds, Pantheon curates the set of tags needed for a working pipeline on a specific exascale platform. Workflows are saved as a git repository and can be reliably cloned and run.
By integrating E4S Spack build caches of both applications and dependent capabilities (Ascent, etc.), Pantheon workflows can be downloaded, built and run quickly enough to be useful in a variety of applications such as CI, prototyping functionality or testing analyses.