Search NASA⌕ Search

SEARCH · Search NASA

Results for “Programming model”

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 19 records

Evaluation of OpenAI Codex for HPC Parallel Programming Models Kernel Generation

We evaluate AI-assisted generative capabilities on fundamental numerical kernels in high-performance computing (HPC), including AXPY, GEMV, GEMM, SpMV, Jacobi Stencil, and CG. We test the generated kernel codes for a variety of language-supported programming models, including (1) C++ (e.g., OpenMP [including offload], OpenACC, Kokkos, SyCL, CUDA, and HIP), (2) Fortran (e.g., OpenMP [including offload] and OpenACC), (3) Python (e.g., numpy, Numba, cuPy, and pyCUDA), and (4) Julia (e.g., Threads, CUDA.jl, AMDGPU.jl, and KernelAbstractions.jl). We use the GitHub Copilot capabilities powered by the GPT-based OpenAI Codex available in Visual Studio Code as of April 2023 to generate a vast amount of implementations given simple + + prompt variants. To quantify and compare the results, we propose a proficiency metric around the initial 10 suggestions given for each prompt. Results suggest that the OpenAI Codex outputs for C++ correlate with the adoption and maturity of programming models. For example, OpenMP and CUDA score really high, whereas HIP is still lacking. We found that prompts from either a targeted language such as Fortran or the more general purpose Python can benefit from adding code keywords, while Julia prompts perform acceptably well for its mature programming models (e.g., Threads and CUDA.jl). We expect for these benchmarks to provide a point of reference for each programming model's community. Overall, understanding the convergence of large language models, AI, and HPC is crucial due to its rapidly evolving nature and how it is redefining human-computer interactions.

Godoy, William↗

SeeQ: A Programming Model for Portable Data-Driven Building Applications

This paper introduces SeeQ, a programming model and an abstraction framework that facilitates the development of portable data- driven building applications. Data-driven approaches can provide insights into building operations and guide decision-making to achieve operational objectives. Yet the configuration of such applications per building requires extensive effort and tacit knowledge. In SeeQ, we propose a portable programming model and build a software system that enables self-configuration and execution across diverse buildings. The configuration of each building is captured in a unified data model - in this paper, we work with the Brick ontology without loss of generality. SeeQ focuses on the distinction between the application logic and the configuration of an application against building-specific data inputs and systems. We test the proposed approach by configuring and deploying a diverse range of applications across five heterogeneous real-world buildings. The analysis shows the potential of SeeQ to significantly reduce the efforts associated with the delivery of building analytics.

analytics↗

Mathematical Programming Models for Shale Oil & Gas Development: A Review and Perspective

Here, in this paper, we provide a comprehensive review of mathematical programming models for shale oil & gas development, and we offer a perspective on outstanding research opportunities. We distinguish contributions in five major topic areas, namely: (1) development planning, (2) water management, (3) production optimization, (4) supplies, gathering & processing, and (5) life cycle analysis & sustainability. We highlight how various types of mathematical programming models (i.e., linear programs, nonlinear programs, mixed-integer linear programs, mixed-integer nonlinear programs) have been proposed primarily by the Process Systems Engineering community to address the respective decision-making problems, and we highlight instances of successful deployment in industry. Finally, based on a critical assessment of the existing body of work, we identify opportunities for future research across the major topic areas.

37 INORGANIC, ORGANIC, PHYSICAL, AND ANALYTICAL CH↗

Portable Programming Model Exploration for LArTPC Simulation in a Heterogeneous Computing Environment: OpenMP vs. SYCL

The evolution of the computing landscape has resulted in the proliferation of diverse hardware architectures, with different flavors of GPUs and other compute accelerators becoming more widely available. To facilitate the efficient use of these architectures in a heterogeneous computing environment, several programming models are available to enable portability and performance across different computing systems, such as Kokkos, SYCL, OpenMP and others. As part of the High Energy Physics Center for Computational Excellence (HEP-CCE) project, we investigate if and how these different programming models may be suitable for experimental HEP workflows through a few representative use cases. One of such use cases is the Liquid Argon Time Projection Chamber (LArTPC) simulation which is essential for LArTPC detector design, validation and data analysis. Following up on our previous investigations of using Kokkos to port LArTPC simulation in the Wire-Cell Toolkit (WCT) to GPUs, we have explored OpenMP and SYCL as potential portable programming models for WCT, with the goal to make diverse computing resources accessible to the LArTPC simulations. In this work, we describe how we utilize relevant features of OpenMP and SYCL for the LArTPC simulation module in WCT. We also show performance benchmark results on multi-core CPUs, NVIDIA and AMD GPUs for both the OpenMP and the SYCL implementations. Comparisons with different compilers will also be given where appropriate.

72 PHYSICS OF ELEMENTARY PARTICLES AND FIELDS↗

Evaluating performance and portability of high-level programming models: Julia, Python/Numba, and Kokkos on exascale nodes

We explore the performance and portability of the high-level programming models: the LLVM-based Julia and Python/Numba, and Kokkos on high-performance computing (HPC) nodes: AMD Epyc CPUs and MI250X graphical processing units (GPUs) on Frontier’s test bed Crusher system and Ampere’s Arm-based CPUs and NVIDIA’s A100 GPUs on the Wombat system at the Oak Ridge Leadership Computing Facilities. We compare the default performance of a hand-rolled dense matrix multiplication algorithm on CPUs against vendor-compiled C/OpenMP implementations, and on each GPU against CUDA and HIP. Rather than focusing on the kernel optimization per-se, we select this naive approach to resemble exploratory work in science and as a lower-bound for performance to isolate the effect of each programming model. Julia and Kokkos perform comparably with C/OpenMP on CPUs, while Julia implementations are competitive with CUDA and HIP on GPUs. Performance gaps are identified on NVIDIA A100 GPUs for Julia’s single precision and Kokkos, and for Python/Numba in all scenarios. We also comment on half-precision support, productivity, performance portability metrics, and platform readiness. We expect to contribute to the understanding and direction for high-level, high-productivity languages in HPC as the first-generation exascale systems are deployed.

Godoy, William↗

Critical Role of the Public Theory & Modeling Program for Commercial Fusion Energy

This white paper contributes input from the Executive Committee of the Theory Coordinating Committee to the 2024 FESAC Decadal Plan Subcommittee. It is argued that the public Theory and Modeling program plays a critical role in the pursuit of commercial fusion energy. A new mechanism for fostering engagement between the fusion industry and the public Theory and Modeling program could provide better alignment between the goals of the public program and the needs of private industry.

70 PLASMA PHYSICS AND FUSION TECHNOLOGY↗

Sparse Deep Neural Network Inference using different Programming Models

Sparse deep neural networks have gained increasing attention recently in achieving speedups on inference with reduced memory footprints. However, the real-world applications are little shown with specialized optimizations, yet a wide variety of DNN tasks remain dense without exploiting the advantages of sparsity in networks. Recent work presented by MIT/IEEE/Amazon GraphChallenge has demonstrated significant speedups and various techniques. Still, we find that there is limited investigation of the impact of various Python and C\slash C++ based programming models to explore new opportunities in general cases. In this work, we provide performance evaluation through different programming models using CuPy, cuSPARSE, and OpenMP to discuss the advantages and disadvantages of our sparse implementations on single-GPU and multiple GPUs of NVIDIA DGX-A100 40GB/80GB platforms.

machine learning, HPC↗

kokkosSZ (kSZ) A Portable Cellerator Implementation of SZ using Kokkos Programming Model

kSZ is a Kokkos-based implementation of the world-widely used SZ lossy compressor. We use Kokkos because it provides abstractions for both parallel execution of code and data management, which can be used to support portable implementation across different accelerator technologies. Kokkos can support OpenMP/OpenMPTarget, oneAPI, Pthreads, and CUDA as backend programming models.

ECP↗

Performance Evaluation of Different Parallel Programming Models in SCALE-Shift Sequences for Criticality and Shielding Applications [Abstract]

The SCALE code system has been widely used for nuclear criticality safety, reactor physics, radiation shielding, source term generation, and inventory analyses by researchers, industry, and regulatory bodies. Although limited support for shared- and distributed-memory parallel processing was introduced via C++ threading, OpenMP, and MPI, a hybrid parallel programming model with both distributed- and shared-memory parallelism has not been fully supported in the SCALE code system.

Nuclear Criticality Safety Program (NCSP)↗

A multi-stage stochastic programming model for adaptive biomass processing operation under uncertainty

Variations of physical and chemical characteristics of biomass reduce equipment utilization and increase operational costs of biomass processing. Biomass processing facilities use sensors to monitor the changes in biomass characteristics. Integrating sensory data into the operational decisions in biomass processing will increase its flexibility to the changing biomass conditions. In this paper, we propose a multi-stage stochastic programming model that minimizes the expected operational costs by identifying the initial inventory level and creating an operational decision policy for equipment speed settings. These policies take the sensory information data and the current biomass inventory level as inputs to dynamically adjust inventory levels and equipment settings according to the changes in the biomass' characteristics. We ensure that a prescribed target reactor utilization is consistently achieved by penalizing the violation of the target reactor feeding rate. A case study is developed using real-world data collected at Idaho National Laboratory's biomass processing facility. We show the value of multi-stage stochastic programming from an extensive computational experiment. Our sensitivity analysis indicates that updating the infeed rate of the system, the processing speed of equipment, and bale sequencing based on the moisture level of biomass improves the processing rate of the reactor and reduces operating costs.

09 BIOMASS FUELS↗

Tri-Level Linear Programming Model for Automatic Load Shedding Using Spectral Clustering

Traditional load shedding schemes can be inadequate in grids with high renewable penetration, leading to unstable events and unnecessary grid islanding. Although for both manual and automatic operating modes load shedding areas have been predefined by grid operators, they have remained fixed, and may be sub-optimal due to dynamic operating conditions. In this work, a distributed tri-level linear programming model for automatic load shedding to avoid system islanding is presented. Preventing islanding is preferred because it reduces the need for additional load shedding besides the disconnection of transmission lines between islands. This is crucial as maintaining the local generation-demand balance is necessary to preserve frequency stability. Furthermore, uneven distribution of generation resources among islands can lead to increased load shedding, causing economic and reliability challenges. This issue is further compounded in modern power systems heavily dependent on non-dispatchable resources like wind and solar. The upper-level model uses complex power flow measurements to determine the system areas to shed load depending on actual operating conditions using a spectral clustering approach. The mid-level model estimates the area system state, while the lower-level model determines the locations and load values to be shed. The solution is practical and promising for real-world applications.

Baquedano-Aguilar, Mario D.↗

Porting ATLAS Fast Calorimeter Simulation to GPUs with Performance Portable Programming Models

FastCaloSim is a parameterized simulation of the particle energy response and of the energy distribution in the ATLAS calorimeter. It is a relatively small and self-contained package with massive inherent parallelism and captures the essence of GPU offloading via important operations like data transfer, memory initialization, floating point operations, and reduction. It was identified by the High Energy Physics Center for Computational Excellence project as a good testbed for evaluating the performance and ease of portability of programming models. In this paper, we will discuss the results of our evaluation of the porting process to Kokkos, SYCL, Alpaka, OpenMP and std::par (nvc++), and compare performance on NVIDIA, AMD and Intel GPUs, as well as multicore CPUs.

97 MATHEMATICS AND COMPUTING↗

Evaluation of Portable Programming Models to Accelerate LArTPC Detector Simulations

The Liquid Argon Time Projection Chamber (LArTPC) technology is widely used in high energy physics experiments, including the upcoming Deep Underground Neutrino Experiment (DUNE). Accurately simulating LArTPC detector responses is essential for analysis algorithm development and physics model interpretations. Accurate LArTPC detector response simulations are computationally demanding, and can become a bottleneck in the analysis workflow. Compute devices such as General-Purpose Graphics Processing Units (GPGPUs) have the potential to substantially accelerate simulations compared to traditional CPU-only processing. The software development that requires often carries the cost of specialized code refactorization and porting to match the target hardware architecture. With the rapid evolution and increased diversity of the computer architecture landscape, it is highly desirable to have a portable solution that also maintains reasonable performance. We report our ongoing effort in evaluating Kokkos as a basis for this portable programming model using LArTPC simulations in the context of the Wire-Cell Toolkit, a C++ library for LArTPC simulations, data analysis, reconstruction and visualization.

46 INSTRUMENTATION RELATED TO NUCLEAR SCIENCE AND ↗

Evaluation of Portable Programming Models to Accelerate LArTPC Detector Simulations

The Liquid Argon Time Projection Chamber (LArTPC) technology is widely used in high energy physics experiments, including the upcoming Deep Underground Neutrino Experiment (DUNE). Accurately simulating LArTPC detector responses is essential for analysis algorithm development and physics model interpretations. Accurate LArTPC detector response simulations are computationally demanding, and can become a bottleneck in the analysis workflow. Compute devices such as General-Purpose Graphics Processing Units (GPGPUs) have the potential to substantially accelerate simulations compared to traditional CPU-only processing. The software development for these compute accelerators often carries the cost of specialized code refactorization and porting to match the target hardware architecture. With the rapid evolution and increased diversity of the computer architecture landscape, it is highly desirable to have a portable solution that also maintains reasonable performance. We report our ongoing effort in evaluating Kokkos as a basis for this portable programming model using LArTPC simulations in the context of the Wire-Cell Toolkit, a C++ library for LArTPC simulations, data analysis, reconstruction and visualization.

47 OTHER INSTRUMENTATION↗

Bi-Level Linear Programming Model for Automatic Load Shedding: A Distributed Wide-Area Measurement System-based Solution

Load shedding is currently implemented as a two-step based approach. In the first step, manual load shedding is taken place, were system operators, using estimates, inform distribution utilities of predicted stressful conditions. Information provided include the potential use of energy reserves, as well as load shedding amount. In a second step, automatic load shedding is done. The latter is realized using protection relays. While considering frequency variation, pre-defined values of load to be shed and correspondent number of stages for such to be realized are transformed into relay settings. Under-frequency protection relays use only local measurements towards decision making, thus operate in a decentralized architecture. Decision making is done in milliseconds plus breaker time. While this approach has provided much system reliability, considering the new smart grid paradigm, where system dynamics are much faster due to increasing renewable resources penetration, in some operating conditions it will generate sub-optimal solutions, such as islanding. Phasor measurement units provide a source of information which can be useful for this problem. Centralized architecture-based solutions for automatic load shedding, as present in the state-of-the-art, require though total processing times which are not acceptable for real-life implementation. In this work, considering the above, a bi-level linear programming model is presented. The model is implemented considering a distributed architecture while leveraging phasor measurement units data. The upper-level model estimates the current system state. Results of this model are embedded in a lower-level model, which decision variables are the location and load value to be shed. Easy-to-implement model, built-on the classic weighted least squares solution, highlight potential aspects towards real-life applications.

Bretas, Arturo Suman↗

GASNet-EX Memory Kinds: Support for Device Memory in PGAS Programming Models

There is an emerging need for adaptive, lightweight communication in irregular HPC applications at exascale, where GPU accelerators provide the majority of available compute cycles. To address this need, Lawrence Berkeley National Lab is developing a programming system to support distributed-memory HPC application development using the Partitioned Global Address Space (PGAS) model. This work includes two major components: UPC++ and GASNet-EX. UPC++ is a C++ template library providing Remote Memory Access (RMA) and Remote Procedure Call (RPC) communication interfaces. GASNet-EX is a portable, high-performance communication middleware library, used by the implementations of UPC++ and many other PGAS programming models. We describe recent advances in GASNet-EX to efficiently implement zero-copy Remote Memory Access (RMA) communication to and from memory on accelerator devices such as GPUs. We demonstrate performance improvements via benchmark results from UPC++ (on Summit) and the Legion programming system (on DGX-1), both using GASNet-EX for communication.

Hargrove, Paul H↗

State and Alternative Fuel Provider Fleet Program, Model Year 2023 Annual Report

The Energy Policy Act of 1992 (EPAct) was enacted in part to reduce the nation's dependence on imported petroleum. Provisions of EPAct require certain fleets to acquire alternative fuel vehicles (AFVs). The U.S. Department of Energy administers these requirements through its State and Alternative Fuel Provider Fleet Program, Federal Fleet Requirements, and Alternative Fuel Designation Authority. This report summarizes activities under the program during model year 2023.

33 ADVANCED PROPULSION SYSTEMS↗