Search NASA⌕ Search

SEARCH · Search NASA

Results for “COMPILER PROGRAM”

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 253 records · Page 14

The SODA Approach: Leveraging High-Level Synthesis for Hardware/Software Co-design and Hardware Specialization: Invited

Novel "converged" applications combine phases of scientific simulation with data analysis and machine learning. Each computational phase can benefit from specialized accelerators. However, algorithms evolve so quickly that mapping them on existing accelerators is suboptimal or even impossible. This paper presents the SODA (Software Defined Accelerators) framework, a modular, multi-level, open-source, no-human-in-the-loop, hardware synthesizer that enables end-to-end generation of specialized accelerators. SODA is composed of SODA-Opt, a high-level frontend developed in MLIR that interfaces with domain-specific programming frameworks and allows performing system level design, and Bambu, a state-of-the-art high-level synthesis engine that can target different device technologies. The framework implements design space exploration as compiler optimization passes. We show how the modular, yet tight, integration of the high-level optimizer and lower-level HLS tools enables the generation of accelerators optimized for the computational patterns of converged applications. We then discuss some of the research opportunities that such a framework allows, including system-level design, profile driven optimization, and supporting new optimization metrics.

Bohm Agostini, Nicolas↗

miniWeather

The code “miniWeather” solves the 2-D Euler equations with a Finite-Volume method on a regular Cartesian grid with Runge-Kutta time stepping, 4th-order hypervisocisty, and 4th-order spatial accuracy. The code is primarily a parallel programming training mini application in Fortran, C, and C++ with MPI, OpenMP, OpenMP offload, OpenACC, and C++ portability approaches. It can also serve as a mini application for acceptance testing for new machines and compilers for both functionality and performance.

Norman, MatthewR↗

A Report on the Implementation of Smart Grids in Mexico

As part of Mexico's implementation of its constitutional energy reform and the transformation of its electric power industry, Mexico is addressing the central importance of a modernized grid. The energy sector reform laws establish a Smart Grid Program to make Mexico's power grid capable of meeting the country's lofty clean energy goals while improving efficiencies, maintaining system reliability, and increasing its security. Implementing Smart Grids in Mexico required a compilation of data and information from many sources that document Mexico's progress in implementing a Smart Grid. In this report, various knowledge experts contribute with an assessment on the topics of the legislation that created the sectoral transformation now underway; the state of smart grid technology in Mexico's power sector and the efforts undertaken to date; a review of policy in the power sector describing the development of the Smart Grid Implementation Plan by the Ministry of Energy; a review of Mexico's priorities for smart grid deployment; the mapping of several smart grid measures to the specific smart grid drivers; substantial detail from smart grid experts from NREL and from Swedish smart grid research centers describing smart grid measures to assist Mexico's move to a cleaner, more-efficient grid; institutional policies that are recommended for smart grid growth; discussion of some of the barriers to smart grid deployment, including cybersecurity concerns and consumer receptivity.

24 POWER TRANSMISSION AND DISTRIBUTION↗

OpenACC Profiling Support for Clang and LLVM using Clacc and TAU

Since its launch in 2010, OpenACC has evolved into one of the most widely used portable programming models for accelerators on HPC systems today. Clacc is a project funded by the US Exascale Computing Project (ECP) to bring OpenACC support for C and C++ to the popular Clang and LLVM compiler infrastructure. In this paper, we describe Clacc's support for the OpenACC Profiling Interface, a critical component of the OpenACC specification that standardizes an interface that profiling tools and libraries can depend upon across OpenACC implementations. As part of Clacc's general strategy to build OpenACC support upon OpenMP, we describe how Clacc builds OpenACC Profiling Interface support upon an extended version of OMPT. We then describe how a major profiling and tracing toolkit within ECP, the TAU Performance System, takes advantage of this support. We also describe TAU's selective instrumentation support for OpenACC. Finally, using Clacc and TAU, we present example visualizations for several SPEC ACCEL OpenACC benchmarks running on an IBM AC922 node, and we show that the associated performance overhead is negligible.

Coti, Camille↗

Verification and Analysis of Spent Fuel Safety Information Database in Korea - 18252

The Public Engagement Commission on SNF management (PECOS) published the recommendation report on the spent fuel management of Korea in June, 2015. Based on this report, the national basic policy for high level radioactive waste management of Korea was established and promulgated, taking into consideration the national/international trends on policy and technology development. According to the national plan, the siting for deep geological disposal facility of high level radioactive waste will be proceeded by 2028. Once the site is selected at somewhere, centralized spent fuel storage facility will be constructed by 2035 at the same site while research program is ongoing to determine the compatibility of the site for disposal facility. According to the enforcement decree of the nuclear safety act, the definition of 'interim storage' is that a safe storage of spent fuel which is received from NPP operator for a specified period, until it is processed or permanently disposed of. It means that spent fuels should be taken over with integrated information of spent fuel from NPP operator to the KORAD (Korea Radioactive waste agency). The aim of this study is to confirm and analyze present and future spent fuel data in order to provide the basic information to the safety research on the transport and storage of spent fuel in Korea. AMORES (Automatic Multi-batch ORIGEN Runner for Evaluation of Spent fuel) was used for the aim of this study. All 16,160 bundles of PWR spent fuel database as of the end of 2015 and the expected spent fuel which will be generated from 2016 to 2053 are evaluated and verified based on national basic plan. Through scenario analysis, it was estimated that approximately 15,000 MTU of spent fuel will be transported to intermediate storage facilities by 2052. Therefore, 44%, 6%, and 33% of spent fuel will be left in Kori, Hanbit and Hanul sites, respectively. (authors)

12 MANAGEMENT OF RADIOACTIVE AND NON-RADIOACTIVE W↗

The Kokkos OpenMPTarget Backend: Implementation and Lessons Learned

As the supercomputing landscape diversifies, solutions such as Kokkos to write vendor agnostic applications and libraries have risen in popularity. Kokkos provides a programming model designed for performance portability, which allows developers to write a single source implementation that can run efficiently on various architectures. At its heart, Kokkos maps parallel algorithms to architecture and vendor specific backends written in lower level programming models such as CUDA and HIP. Another approach to writing vendor agnostic parallel code is using OpenMP’s directives based approach, which lets developers annotate code to express parallelism. It is implemented at the compiler level and is supported by all major high performance computing vendors, as well as the primary Open Source toolchains GNU and LLVM. Since its inception, Kokkos has used OpenMP to parallelize on CPU architectures. In this paper, we explore leveraging OpenMP for a GPU backend and discuss the challenges we encountered when mapping the Kokkos APIs and semantics to OpenMP target constructs. As an exemplar workload we chose a simple conjugate gradient solver for sparse matrices. We find that performance on NVIDIA and AMD GPUs varies widely based on details of the implementation strategy and the chosen compiler. Furthermore, the performance of the OpenMP implementations decreases with increasing complexity of the investigated algorithms.

Gayatri, Rahulkumar↗

NbTaV_BCC_SolidSolution_128atoms_VASP6

We performed density functional theory (DFT) calculations for body-centered-cubic (BCC) structures with 128 lattices sites of solid solution ternary alloys niobium-tantalum-vanadium (Nb-Ta-V). The first-principle code that has been used to run the calculations is the closed-source Vienna Ab-Initio Simulation Package (VASP). The calculations have been collected by sampling chemical compositions across the entire compositional range. The chemical compositions have been sampled by progressively changing the number of atoms per constituent by 8. For each chemical composition of binaries and ternaries, the first-principle calculations have been run for 100 randomized arrangements of the constituents on the BCC lattice sites. We collected data for a total of 10,500 randomized atomic structures over 105 chemical compositions. The calculations have been collected on NERSC-Perlmutter using the VASP 6.3.2. The VASP calculations for every atomic structure have been performed in 2 main steps: 1. Starting from an ideal body-centered-cubic (BCC) structure, geometry optimization with low precision has been executed to perform a preliminary optimization of the atomic structure. The output for this calculations is available in the files 0.CONTCAR, 0.OUTCAR, rlx1.out. 2. Using the atomic structure resulting from the preliminary geometry optimization, a second geometry optimization has been performed using normal precision. The output for this calculations is available in the files CONTCAR, OUTCAR, rlx2.out, vaspout.h5, and vasprun.xml. Every chemical composition sampled across the composition range in the dataset has its own directory. The convention used to name the directories for ternary alloys is AXBYCZ, where A, B, and C refer to the constituents, and X, Y, and Z are positive integers that represent the number of atoms for each constituent and their values still sum up to 128. Each atomic structure associated with a specific chemical composition has its own sub-directory within the directory of the corresponding chemical composition. The sub-directories for each atomic structure for each chemical composition are named 'case-*', where * is a positive integer that spans all the values from 1 through 100, extremes included. The files contained in each sub-directory 'case-*' for each atomic structure are as follows: 1. INCAR: input file that contains various parameters and settings for controlling the behavior of the electronic structure calculations 2. 0.POSCAR: input file that defines the atomic structure of a system 3. 0.CONTCAR: output file that provides the atomic positions and cell parameters after the first geometry optimization has been run with the precision variable set to PREC=Low in the INCAR file 4. 0.OUTCAR: output file that contains detailed information about the progress of a calculation after the first geometry optimization has been run with the precision variable set to PREC=Low in the INCAR file 5. rlx1.out: file with diagnostic information about the execution of the first geometry optimization with precision variable set to PREC=Low in the INCAR file 6. POSCAR: input file that defines the atomic structure of a system after the first geometry optimization has been run at low precision. This represents the input for the second geometry optimization run with the precision variable set to PREC=Normal in the INCAR file 7. CONTCAR: output file that provides the atomic positions and cell parameters after the second geometry optimization has been run with the precision variable set to PREC=Normal in the INCAR file 8. OUTCARL: output file that contains detailed information about the progress of a calculation after the second geometry optimization has been run with the precision variable set to PREC=Normal in the INCAR file 9. rlx2.out: file with diagnostic information about the execution of the second geometry optimization with precision variable set to PREC=Normal in the INCAR file 10. vaspout.h5: hierarchical HDF5 file containing the inputs and outputs of a VASP calculation. To analyze the data in this file we recommend using py4vasp. This file is only produced if the VASP version used is compiled with HDF5 support 11. vasprun.xml: contains similar information to OUTCAR, but in an xml format. This research is sponsored by the Artificial Intelligence Initiative as part of the Laboratory Directed Research and Development (LDRD) Program of Oak Ridge National Laboratory, managed by UT-Battelle, LLC, for the US Department of Energy under contract DE-AC05-00OR22725. This work used resources of the Oak Ridge Leadership Computing Facility, which is supported by the Office of Science of the U.S. Department of Energy under Contract No. DE-AC05-00OR22725, under Directorate Discretionary awards MAT025 (Materials Science) and LRN026 (Machine Learning), and INCITE award MAT201. This work also used resources of the National Energy Research Scientific Computing Center, which is supported by the Office of Science of the U.S. Department of Energy under Contract No. DE-AC02-05CH11231, under award ERCAP0025216.

36 MATERIALS SCIENCE↗

REBUS-PC v1.5 Verification Test Summary

Motivated in part by its usage for analysis of the University of Missouri Research Reactor (MURR), the verification of the REBUS-PC software for θ-R-Z geometries is discussed and displayed in this manuscript. Of particular importance is to show that the eigenvalue, flux, power, and burnup outputs of the software given a user problem is correct. REBUS-PC contains many features and MURR only makes use of some of those aspects. As an example, the use of region specific cross section sets, interpolation of the cross section data with respect to burnup, and automatic movement of control rods during the fuel cycle is discussed and displayed. To demonstrate the accuracy, 22 verification tests based upon 7 physical geometries are discussed. Geometry descriptions are provided in Section 2 and the REBUS-PC results for each verification test are discussed in Section 3. These verification tests consist of both analytic problems with known solutions and a more complicated input consistent with usage of REBUS-PC on the MURR reactor itself called STRZ. In this verification test summary report, the REBUS-PC software is repeatedly demonstrated to reproduce, or closely match, the eigenvalue, flux, and power distributions from analytic test problem solutions, demonstrating that the implemented finite difference approximation in θ-R-Z is working as intended. Several additional REBUS-PC features are tested, such as control rod movement by detailed comparisons of the results against reference solutions obtained using an auxiliary implemented MatLab program. As expected, the REBUS-PC software produces results that are 100% consistent with the stated capabilities and thus the verification exercise is completed. These verification tests should be executed with each re-compilation of the REBUS-PC source and after any source code changes. All output results from any such new work should be rigorously compared against the stored output of the 22 verification tests cited in this report that forms the basis of the verification process.

97 MATHEMATICS AND COMPUTING↗

Geochemical data package for performance assessment calculations related to the Savannah River Site

The Savannah River Site (SRS) disposes of low-level radioactive waste (LLW) and stabilizes high-level radioactive waste (HLW) tanks in the subsurface environment. Calculations used to establish the radiological limits of these facilities are referred to as Performance Assessments (PAs), Special Analyses (SAs), and Composite Analyses (CAs). The purpose of this document is to revise the existing geochemical data package used for these calculations (Kaplan, 2016). This work builds on earlier compilations of geochemical data, referred to a geochemical data packages (Kaplan, 2007; Kaplan, 2010; Kaplan, 2016; McDowell-Boyer et al., 2000). This work is being conducted as part of the on-going maintenance program of the SRS PA programs that periodically updates calculations and data packages when new information becomes available.

12 MANAGEMENT OF RADIOACTIVE AND NON-RADIOACTIVE W↗

Performance of an Astrophysical Radiation Hydrodynamics Code under Scalable Vector Extension Optimization

We present results of a performance study of an astrophysical radiation hydrodynamics code, V2D, on the Arm-based A64FX processor developed by Fujitsu. The code solves sparse linear systems, a task for which the A64FX architecture should be well suited. Here, we performed the performance analysis study on Ookami, an Apollo 80 platform utilizing the A64FX processor. We explored several compilers and performance anal-ysis packages and found the code did not perform as expected under scalable vector extension optimization, suggesting that a “deeper dive” into analyzing the code is worthwhile. However, a simple driver program that exercised basic sparse linear algebra routines used by V2D did show significant speedup with the use of the scalable vector extension optimization. We present the initial results from the study which used V2D on a relatively simple test problem that emphasized the repeated solution of sparse linear systems.

79 ASTRONOMY AND ASTROPHYSICS↗

SIMD Programming for the SMASH Shock Physics Code

Many modern CPUs that are available to the NNSA as mission computing resources support vector instruction sets. Making good use of vector instructions, referred to as “vectorization”, is often critical to getting the best performance from these CPUs. While other codes choose to rely on compiler auto-vectorization, the SMASH shock physics code chooses to leverage APIs for explicit vectorization. These APIs are similar to directly calling the CPU vendor’s vector intrinsics, with the additional benefit of being vendor-agnostic. This document explains what the SIMD APIs are and how to use them in developing SMASH.

97 MATHEMATICS AND COMPUTING↗

CI/CD Efforts for Validation, Verification and Benchmarking OpenMP Implementations

Software developers must adapt to keep up with the changing capabilities of platforms so that they can utilize the power of High-Performance Computers (HPC), including exascale systems. OpenMP, a directive-based parallel programming model, allows developers to include directives to existing C, C++, or Fortran code to allow node level parallelism without compromising performance. This paper describes our CI/CD efforts to provide easy evaluation of the support of OpenMP across different compilers using existing testsuites and benchmark suites on HPC platforms. Our main contributions include (1) the set of a Continuous Integration (CI) and Continuous Development (CD) workflow that captures bugs and provides faster feedback to compiler developers, (2) an evaluation of OpenMP (offloading) implementations supported by AMD, HPE, GNU, LLVM, and Intel, and (3) evaluation of the quality of compilers across different heterogeneous HPC platforms. With the comprehensive testing through the CI/CD workflow, we aim to provide a comprehensive understanding of the current state of OpenMP (offloading) support in different compilers and heterogeneous platforms consisting of CPUs and GPUs from NVIDIA, AMD, and Intel.

Jarmusch, Aaron↗

Electron Target Cooling Analyses of the KIPT ADS Using MCNP and Ansys Fluent

This study presents multiphysics analyses of the electron target cooling system of the accelerator-driven system (ADS) of the Kharkiv Institute of Physics and Technology (KIPT) using MCNP and Fluent computer programs. MCNP has been used to transport electrons, gammas, and neutrons, and to calculate the energy deposition in the target materials. The MCNP mesh-tally data have been imported into Fluent by a C subroutine that has been compiled and linked to Fluent as a user-defined function.The KIPT ADS is located in Ukraine and was in operation until February 2022. The Fluent model is based on the computer-aided design files from the manufacturing process of the target assembly. Here, the Fluent results for the reference case match very well the literature results obtained by STAR-CCM+ during the design phase. Other cases that differ from the reference one have been analyzed; in these cases, it is assumed a malfunction of the electron accelerator or of the water cooling system. The target cooling system operates normally for all the analyzed cases except when the inlet water mass flow rate is decreased. The transient analysis showed that the target cooling system can operate for 180 s with full power when the inlet water mass flow rate is decreased down by 75%.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

Extending XACC for Quantum Optimal Control

Quantum computing vendors are beginning to open up application programming interfaces for direct pulse-level quantum control. With this, programmers can begin to describe quantum kernels of execution via sequences of arbitrary pulse shapes. This opens new avenues of research and development with regards to smart quantum compilation routines that enable direct translation of higher-level digital assembly representations to these native pulse instructions. In this work, we present an extension to the XACC system-level quantum-classical software framework that directly enables this compilation lowering phase via user-specified quantum optimal control techniques. This extension enables the translation of digital quantum circuit representations to equivalent pulse sequences that are optimal with respect to the backend system dynamics. Our work is modular and extensible, enabling third party optimal control techniques and strategies in both C++ and Python. We demonstrate this extension with familiar gradient-based methods like gradient ascent pulse engineering (GRAPE), gradient optimization of analytic controls (GOAT), and Krotov's method. Our work serves as a foundational component of future quantum-classical compiler designs that lower high-level programmatic representations to low-level machine instructions.

Nguyen, Thien↗

LANL Regular Employee Population and Demographics, FY15-21

This document summarizes an effort to compile and analyze the LANL regular employee population’s demographic attributes and trends between FY15-FY21 using MicroStrategy, a web-based data analytics and visualization tool. LANL’s HR Division collected and prepared data for the Weapons Program’s annual reporting activities for the 2017 through 2023 NNSA Stockpile Stewardship and Management Plan (SSMP). Los Alamos workforce data represent the fiscal year-end snapshot of the permanent employee population who are categorized by the Common Occupational Classification System (COCS). This work enables further analyses, including trends for all workforce attributes presented in the SSMPs as well as a definition of a crosswalk between COCS categorization and the internal laboratory job classification hierarchy. Data for other sites and the federal workforce, as shown in the SSMPs, are included and corresponding figures can be visualized within the MicroStrategy tool. A portable, Excel-based version of the tool was developed and shared with the multi-site workforce working group. This summary highlights selected aspects of the LANL regular workforce. The data analyses and visualizations communicate insights within three major themes regarding permanent LANL employees: 1) demographic transformation, 2) attrition, and 3) skills. Regarding demographic transformation, and consistent with the general trend across the enterprise, early career regular employees are the fastest growing group, with growth ranging between 12-34% year-to-year over the seven-year period analyzed. The data also reflect effects of internal and external factors on attrition; the large spike in separations in FY18 aligns with the contract transition from LANS to Triad and the dip in attrition between FY20-FY21 is likely a result of the global pandemic. The population of regular employees in general management, engineer, and operator COCS categories have the fastest growth rates amongst all the occupational categories. The MicroStrategy and Excel tools provide additional details and trends.

29 ENERGY PLANNING, POLICY, AND ECONOMY↗

Industrial Assessment Center Program Final Progress Report

This final progress report details the work completed between Fiscal Years 2017 and 2021, including a no-cost extension partially through FY2022. Dr. Bryan Rasmussen served as the center director (2017-2022), with James Eggebrecht (2017-2022) and Heather Lewis (2021-2022) as Assistant Directors. The results in this report were compiled by Dr. Rasmussen from available records, and are correct to the best of our knowledge. The following should only be considered a partial listing of center activities.

32 ENERGY CONSERVATION, CONSUMPTION, AND UTILIZATI↗

PowerMappeR: Power-Optimized Mapping of SNNs onto ReRAM Crossbars coupled via Packet-Switched NoCs

Many recent efforts in developing hardware-accelerated spiking neural networks (SNNs) are characterized by deep co-design between algorithms, architectures, and devices. Architectural advances overcome device constraints by coupling together many small resistive-RAM (ReRAM) crossbars via a network-on-chip (NoC) for neuromorphic component operation. Concurrently, improved SNN training methods increase accuracy and structural sparsity in networks despite growing problem sizes. Finally, compilers leverage these attributes to minimize area and inter-crossbar communication while mapping large SNNs to sophisticated architectures. However, for compiler-driven co-design to realize increasingly complex and profitable optimizations, a compile-time view of power consumption is critical. We present PowerMappeR to express and optimize over mapping-, architecture-, and device-specific power consumption information. By modeling the dynamic power of well-established components, we develop an integer linear programming (ILP)-based, encoding-agnostic, parametric power estimation model. Using this model, we demonstrate practical improvements in area and inter-crossbar communication by 0%–9.5% and 1.4%–5.1%, respectively. We also limit hotspot formation during optimization, achieving comparable or better results in targeted metrics with up to 96.4%–97.1% restriction of hotspot magnitude. Finally, we introduce profile-guided formulations to reduce worst-case and expected-case hotspot magnitude by 40.7%–69.5% and 40.6%–56.3%, respectively. Optimizing worst-case hotspot magnitude incidentally improves expected-case magnitude by 10.85%–33.45%. Reciprocally, optimizing expected-case magnitude incidentally improves worst-case magnitude by 4.33%–39.87%. Validation against hardware simulators confirms that PowerMappeR can decrease dynamic power consumption by 12.6%–27.3%.

Pohl, Devin [ORNL] (ORCID:0009000040149027)↗

Automatic Code Generation for High-Performance Graph Algorithms

Graph problems are common across fields of scientific computing and social sciences. However, despite their importance, implementing graph algorithms effectively on modern computing systems is a challenging task that requires significant programming effort and generally results in customized implementations. Current computing and memory hierarchies are not architected for irregular computations resulting in challenges for graph algorithms to achieve high performance on those architectures. In this paper, we present GraphX, a novel compiler framework and DSL designed to simplify the development of efficient graph algorithms and achieve high performance on modern computing systems. GraphX consists of a DSL for efficient implementation of graph algorithms, various optimizations, such as support for sparse linear algebra and workspace transformations, optimized graph primitives, including semiring and masking, and a high-performance code generation engine. Using GraphX, users can implement graph algorithms using a semantically-rich language with graph-oriented operators. GraphX uses these semantics to automatically generate efficient code for target architectures, increasing performance and portability across architectures. The composable nature of GraphX makes it possible to extend the set of optimizations and architectures without modifying the source code. We demonstrate GraphX outperforms state-of-the-art graph libraries, such as LAGraph, up to $3.7 speedup in semiring operations, $2.19 speedup in an important sparse computational kernel, and $9.05 speedup in graph processing algorithms.

compiler, graph algorithms, semiring, masking, wor↗