Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “mathematical libraries”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 595 records · Page 33

EOSPAC User's Manual: Version 6.5 Second Edition (Rev. 3)

The EOSPAC utility package is a collection of interface routines, which can be used to access the SESAME data library and perform various data adjustments and interpolations on the SESAME data. The SESAME data library contains both thermodynamic (e.g., equation of state) and transport coefficients (e.g., opacity and conductivity). Note, for simplicity, the term EOS (equation of state) used herein includes both thermodynamic variables and transport coefficients. The EOSPAC utility package is designed to be used by physics codes (henceforth ”host codes”) written in multiple languages and on multiple platforms. The remainder of this manual is organized into several sections. Chapter 2 discusses conventions such as data organization and routine names. Chapter 3 provides a general overview of basic theory and models implemented within EOSPAC. Chapter 4 provides a general overview of how to use the EOSPAC interface library. Chapters 5 to 7 describe the public interfaces of EOSPAC in detail. Chapter 8 provides a brief introduction to some related tools, which may be of use to the user. Chapter 9 provides details related to some selected numerical features of EOSPAC. Chapter 10 gives examples for using the interface routines described in chapters 5 to 7. Chapter 11 provides technical support contact information. Chapter 12 contains a brief set of acknowledgments. Chapter 13 contains a list of referenced documents. Finally, chapter 14 lists the “table types: mnemonic conventions”, “table types: grouped by category, sorted by name”, “table types: eospac version 5 cross reference”, “options: setup phase”, “data information parameters”, “meta-data information parameters”, “options: interpolation phase”, and the “error codes”.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

Thermonuclear Burn in a Multiphysics Code on GPUs

Multiphysics codes links to a library called SINGE for the calculation of thermonuclear (TN) burn rates, but some current multiphysics codes do not attempt to leverage the support for parallel operation that SINGE provides. Our goal is to investigate implementations of the SINGE workflow and analyze how the use of a performance portability layer could reduce run time on CPU archi tectures while also supporting GPU architectures without requiring code modifications. We looked to the Kokkos C++ Performance Portability Ecosystem to implement hardware agnostic parallel patterns.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

Benchmark Calculation for the Hatch Unit 1 Cycles 1-3 Using the SCALE 6.3/Polaris–PARCS v3.4.2 Code Package

This study was the performance of the benchmark calculation for the Hatch Unit 1 cycles 1–3, to validate the SCALE 6.3/Polaris–PARCS v3.4.2 with the ENDF/B-VII.1 AMPX 56-group library by comparing the simulated results with the measured data. The benchmark results will be used in evaluating uncertainties of the SCALE/Polaris–PARCS code package for boiling water reactor (BWR) physics analysis for key nuclear parameters such as reactivity and assembly power peaking factors. This report details plant and fuel design specifications and input data for SCALE/Polaris, GenPMAXS and PARCS, and additionally, detailed information is provided for all the input and output files produced for the benchmark calculations. The benchmark results were summarized such that they can be used in evaluating uncertainties for key nuclear parameters with other BWR benchmark results.

21 SPECIFIC NUCLEAR REACTORS AND ASSOCIATED PLANTS↗

Benchmark Calculation for BEAVRS Cycles 1 and 2 Using the SCALE 6.3/Polaris–PARCS v3.4.2 Code Package

This study performed the benchmark calculation for BEAVRS to validate the SCALE 6.3/Polaris–PARCS v3.4.2 code package with the ENDF/B-VII.1 56-group library, comparing the simulated results with the measured data. The benchmark results will be used in evaluating uncertainties of the SCALE/Polaris–PARCS code package for pressurized water reactor physics analysis for key nuclear parameters such as reactivity, control bank worth, temperature coefficients, and pin and assembly power peaking factors. This report details plant and fuel design specifications and input data for SCALE/Polaris as well as GenPMAXS and PARCS. Additionally, detailed information is provided for all the input and output files produced for the benchmark calculations. The benchmark results are summarized herein so that they can be used in evaluating uncertainties for key nuclear parameters with other benchmark results.

22 GENERAL STUDIES OF NUCLEAR REACTORS↗

UPC++ v1.0 Specification, Revision 2021.9.0

UPC++ is a C++ library providing classes and functions that support Partitioned Global Address Space (PGAS) programming. The key communication facilities in UPC++ are one-sided Remote Memory Access (RMA) and Remote Procedure Call (RPC). All communication operations are syntactically explicit and default to non-blocking; asynchrony is managed through the use of futures, promises and continuation callbacks, enabling the programmer to construct a graph of operations to execute asynchronously as high-latency dependencies are satisfied. A global pointer abstraction provides system-wide addressability of shared memory, including host and accelerator memories. The parallelism model is primarily process-based, but the interface is thread-safe and designed to allow efficient and expressive use in multi-threaded applications. The interface is designed for extreme scalability throughout, and deliberately avoids design features that could inhibit scalability.

96 KNOWLEDGE MANAGEMENT AND PRESERVATION↗

h5bench: A unified benchmark suite for evaluating HDF5 I/O performance on pre‐exascale platforms

Summary Parallel I/O is a critical technique for moving data between compute and storage subsystems of supercomputers. With massive amounts of data produced or consumed by compute nodes, high‐performant parallel I/O is essential. I/O benchmarks play an important role in this process; however, there is a scarcity of I/O benchmarks representative of current workloads on HPC systems. Toward creating representative I/O kernels from real‐world applications, we have created h5bench , a set of I/O kernels that exercise hierarchical data format version 5 (HDF5) I/O on parallel file systems in numerous dimensions. Our focus on HDF5 is due to the parallel I/O library's heavy usage in various scientific applications running on supercomputing systems. The various tests benchmarked in the h5bench suite include I/O operations (read and write), data locality (arrays of basic data types and arrays of structures), array dimensionality (one‐dimensional arrays, two‐dimensional meshes, three‐dimensional cubes), I/O modes (synchronous and asynchronous). In this paper, we present the observed performance of h5bench executed along several of these dimensions on existing supercomputers (Cori and Summit) and pre‐exascale platforms (Perlmutter, Theta, and Polaris). h5bench measurements can be used to identify performance bottlenecks and their root causes and evaluate I/O optimizations. As the I/O patterns of h5bench are diverse and capture the I/O behaviors of various HPC applications, this study will be helpful to the broader supercomputing and I/O community.

97 MATHEMATICS AND COMPUTING↗

MATAR: A performance portability and productivity implementation of data-oriented design with Kokkos

There is a need for simple, fast, and memory-efficient multidimensional data structures for dense and sparse storage that arise with numerical methods and in software applications. The data structures must perform equally well across multiple computer architectures, including CPUs and GPUs. For this purpose, we developed MATAR, a C++ software library that allows for simple creation and use of intricate data structures that is also portable across disparate architectures using Kokkos. Here, the performance aspect is achieved by forcing contiguous memory layout (or as close to contiguous as possible) for multidimensional and multi-size dense or sparse MATrix and ARray (hence, MATAR) types. Our results show that MATAR has the capability to improve memory utilization, performance, and programmer productivity in scientific computing. This is achieved by fitting more work into the available memory, minimizing memory loads required, and by loading memory in the most efficient order. This document describes the purpose of the work, the implementation of each of the data types, and the resulting performance both in some simple baseline test cases and in an application code.

97 MATHEMATICS AND COMPUTING↗

Singe Library Review: XCAP Review Report

Singe is a computational library for simulating thermonuclear reactions written in C++14. It was inspired by the earlier Singe library, developed by Joann Campbell. From the beginning of the Singe project, the goal has been to create a library that provides the necessary functionality, runs efficiently, and is flexible enough to connect to a variety of multi-physics host codes. Such a library allows subject-matter experts to focus on development within the library, while library staff can support host-code staff in integrating Singe into their multi-physics codes. A common library used across multiple multi-physics codes allows those subject-matter experts to roll out new features to all host codes simultaneously, and eases the process of code-to-code comparison between codes that are leveraging the same physics in different ways. The Singe effort was established by Joann Campbell, who provided significant guidance on the goals, requirements, and philosophy of the library. It has been developed by Brendan K. Krueger, CJ Solomon, Jesse Canfield, and Terry Adams, with computer science support from Tyler Reddy and Karen Tsai. Discussions with multiple potential stakeholders have been critical to the planning of such a cross-cutting project, including representatives from multiple host codes and Brian Haines who helped define usage and needs for the inertial confinement fusion (ICF) program. This document is based on the XCAP review process. It is an updated version of the initial document distributed to the reviewers, memo XCP-2:21-005. We want to acknowledge the time and effort of the reviewers who participated in this process: Philipp Edelmann, Alan Harrison, Christopher Malone, Edward Norris, Ryosuke Park, Galen Shipman, CJ Solomon, and any others who may have contributed to the feedback that was provided to us.

71 CLASSICAL AND QUANTUM MECHANICS, GENERAL PHYSIC↗

Automated qualification data tool for high temperature metallic materials

This report describes a framework for storing, processing, and displaying qualification data for high temperature mechanical properties. The framework automates the process of generating design data from mechanical test results, for example for a data qualification report for the ASME Boiler \& Pressure Vessel Code. The framework has three parts: a data storage model with common formats for several types of typical mechanical property tests, a backend based on the \pycreep Python library for correlating and extrapolating the data to generate design material properties and allowable stresses, and a demonstration user interface for displaying, sorting, and filtering the data and exploring different options for modeling the design mechanical properties. The report discusses the options available for data processing, with illustrations from real test data on Alloy 617, Alloy 709, Alloy 740H, and Laser-Powder Bed Fusion 316H. The framework is complete for ASME type data analysis and will be used to store test data generated by the Department of Energy, Office of Nuclear Energy, Advanced Materials and Manufacturing Technologies sponsored qualification programs. Future work could extend the tool to other types of material properties and/or expand the demo user interface to make it accessible across the AMMT program.

36 MATERIALS SCIENCE↗

SciPy 1.0: fundamental algorithms for scientific computing in Python

SciPy is an open-source scientific computing library for the Python programming language. Since its initial release in 2001, SciPy has become a de facto standard for leveraging scientific algorithms in Python, with over 600 unique code contributors, thousands of dependent packages, over 100,000 dependent repositories and millions of downloads per year. In this work, we provide an overview of the capabilities and development practices of SciPy 1.0 and highlight some recent technical developments.

97 MATHEMATICS AND COMPUTING↗

Recent Updates in ETOE-2 and MC 2 -3

The MC 2 -3 code is a multigroup cross section generation code for fast reactor applications, developed by Argonne National Laboratory (ANL) under the DOE Nuclear Energy Advanced Modeling and Simulation (NEAMS) program. In this work, first, the cross section libraries for ENDF/B-VII.1 and ENDF/B-VIII.0 data were generated using the updated ETOE-2 code. Preliminary verification and validation tests of the ENDF/B-VII.1 MC 2 -3 library were performed with the selected fast reactor benchmark problems. Processing and verifying the libraries suggested that significant efforts would be required for thoroughly verifying the ENDF/B-VII.1 MC 2 -3 library and successfully processing the ENDF/B-VIII.0 MC 2 -3 library. Secondly, the cross section generation capability of MC 2 -3 was updated with the intermediate group lattice calculation and the equivalent Dancoff-factor cell (EDC) method to significantly improve the performance of a twodimensional assembly calculation using the method of characteristics (MOC). This effort was made useful in implementing and verifying the EDC method in the Griffin cross section API. Finally, we analyzed a SFR problem, for which unusually large deviations in core eigenvalues from Monte Carlo solutions were reported, by generating multigroup cross sections with MC 2 -3, performing core calculations with DIF3D-VARIANT, and analyzing cross section and eigenvalue results against Monte Carlo solutions. The analysis confirmed that the MC 2 -3/DIF3D solutions were in good agreement with Monte Carlo solutions, providing the correct process of accurately generating broad-group cross sections with MC 2 -3

97 MATHEMATICS AND COMPUTING↗

Procedure for Creating, Reviewing, and Submitting Input Files into the Benchmark Library

Los Alamos National Laboratory (LANL) has a number of criticality benchmark input files, modeled for use with MCNP, developed and maintained by various organizations including the Nuclear Criticality Safety (NCS) Division, XCP-3, and XCP-5. The purpose of this procedure is to standardize input file creation, review, and maintenance. This procedure incorporates existing practices used by IRSN as documented in the original report and the translation from French in addition to practices used by the LANL NCS Division as documented in. The report relates to input files used for the validation of the continuous energy Monte Carlo code MCNP6 but is general enough to be extended to other codes. This report describes the procedure on how to prepare and use benchmarks (taken mainly from the ICSBEP Handbook) for the validation of calculation routes. In particular, this report describes the procedure to follow in the creation of the input files and their integration in the experimental validation databases.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

Impact of Higher Fidelity Design Iterations on Critical System Criteria

Nuclear criticality experiments are effective at informing the performance of nuclear data libraries across many applications. This work explores the implications of refining critical experiment MCNP models from their low fidelity optimization phase to penultimate neutronic models. Specifically, this work is focused on two series of plutonium fueled experiments funded through internal programs at Los Alamos National Laboratory building off previous efforts under the EUCLID (Experiments Underpinned by Computational Learning for Improvements in Nuclear Data) collaboration. Thales, the first of the two collaborations, is a fast spectrum Ta-reflected plutonium experiment to support operations at PF-4. The second experiment are twin configurations designed to target the intermediate energy cross sections in 239 Pu. Motivation for this experiment stems from the PARallel Approach of Differential and InteGral Measurements (PARADIGM) collaboration which hopes to achieve a significant reduction in 239 Pu cross section uncertainties in the intermediate region.

97 MATHEMATICS AND COMPUTING↗

Singularity-EOS: Performance Portable Equations of State and Mixed Cell Closures

We present Singularity-EOS, a new performance-portable library for equations of state and related capabilities. Singularity-EOS provides a large set of analytic equations of state, such as the Gruneisen equation of state, and tabulated equation of state data under a unified interface. It also provides support capabilities around these equations of state, such as Python wrappers, solvers for finding pressure-temperature equilibrium between multiple equations of state, and a unique modifier framework, allowing the user to transform a base equation of state, for example by shifting or scaling the specific internal energy. All capabilities are performance portable, meaning they compile and run on both CPU and GPU for a wide variety of architectures.

97 MATHEMATICS AND COMPUTING↗

High performance sparse multifrontal solvers on modern GPUs

Here, we have ported the numerical factorization and triangular solve phases of the sparse direct solver STRUMPACK to GPU. STRUMPACK implements sparse LU factorization using the multifrontal algorithm, which performs most of its operations in dense linear algebra operations on so-called frontal matrices of various sizes. Our GPU implementation off-loads these dense linear algebra operations, as well as the sparse scatter–gather operations between frontal matrices. For the larger frontal matrices, our GPU implementation relies on vendor libraries such as cuBLAS and cuSOLVER for NVIDIA GPUs and rocBLAS and rocSOLVER for AMD GPUs. For the smaller frontal matrices we developed custom CUDA and HIP kernels to reduce kernel launch overhead. Overall, high performance is achieved by identifying submatrix factorizations corresponding to sub-trees of the multifrontal assembly tree which fit entirely in GPU memory. The multi-GPU setting uses SLATE (Software for Linear Algebra Targeting Exascale) as a modern GPU-aware replacement for ScaLAPACK. On 4 nodes of SUMMIT the code runs ~10X faster when using all 24 V100 GPUs compared to when it only uses the 168 POWER9 cores. On 8 SUMMIT nodes, using 48 V100 GPUs, the sparse solver reaches over 50TFlop/s. Compared to SuperLU, on a single V100, for a set of 17 matrices our implementation is faster for all but one matrix, and is on average 5X (median 4X) faster

97 MATHEMATICS AND COMPUTING↗

MemHC: An Optimized GPU Memory Management Framework for Accelerating Many-body Correlation

The many-body correlation function is a fundamental computation kernel in modern physics computing applications, e.g., Hadron Contractions in Lattice quantum chromodynamics (QCD). This kernel is both computation and memory intensive, involving a series of tensor contractions, and thus usually runs on accelerators like GPUs. Existing optimizations on many-body correlation mainly focus on individual tensor contractions (e.g., cuBLAS libraries and others). In contrast, this work discovers a new optimization dimension for many-body correlation by exploring the optimization opportunities among tensor contractions. More specifically, it targets general GPU architectures (both NVIDIA and AMD) and optimizes many-body correlation’s memory management by exploiting a set of memory allocation and communication redundancy elimination opportunities: first, GPU memory allocation redundancy: the intermediate output frequently occurs as input in the subsequent calculations; second, CPU-GPU communication redundancy: although all tensors are allocated on both CPU and GPU, many of them are used (and reused) on the GPU side only, and thus, many CPU/GPU communications (like that in existing Unified Memory designs) are unnecessary; third, GPU oversubscription: limited GPU memory size causes oversubscription issues, and existing memory management usually results in near-reuse data eviction, thus incurring extra CPU/GPU memory communications.

97 MATHEMATICS AND COMPUTING↗

Benchmark Calculation for Surry Unit 1 Cycles 1-3 Using the SCALE 6.3/Polaris–PARCS v3.4.2 Code Package

The benchmark calculations were performed for Surry Unit 1 cycles 1–3 to validate the SCALE 6.3/Polaris–Purdue Advanced Reactor Core Simulator (PARCS) v3.4.2 with the ENDF/B–VII.1 56–group library by comparing the simulated results with the measured data. The benchmark results will be used to evaluate uncertainties of the SCALE/Polaris–PARCS code package for pressurized water reactor physics analysis for key nuclear parameters such as reactivity, control bank worth, temperature coefficients, and pin and assembly power peaking factors. This report details plant and fuel design specifications and input data for SCALE/Polaris, GenPMAXS, and PARCS. Additional details are provided for the input and output files produced for the benchmark calculations. The benchmark results were summarized such that they can be used in evaluating uncertainties with other benchmark results for key nuclear parameters.

22 GENERAL STUDIES OF NUCLEAR REACTORS↗

UPC++ v1.0 Programmer’s Guide, Revision 2020.10.0

UPC++ is a C++11 library that provides Partitioned Global Address Space (PGAS) programming. It is designed for writing parallel programs that run efficiently and scale well on distributed-memory parallel computers. The PGAS model is single program, multiple-data (SPMD), with each separate constituent process having access to local memory as it would in C++. However, PGAS also provides access to a global address space, which is allocated in shared segments that are distributed over the processes. UPC++ provides numerous methods for accessing and using global memory. In UPC++, all operations that access remote memory are explicit, which encourages programmers to be aware of the cost of communication and data movement. Moreover, all remote-memory access operations are by default asynchronous, to enable programmers to write code that scales well even on hundreds of thousands of cores.

97 MATHEMATICS AND COMPUTING↗