Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “Code”

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 1,585 records · Page 88

Real-time Implementation of Grid Code Compliant Grid Edge Energy Management System

Integrated distributed energy resources (DER) in a distribution system need to follow grid codes to avoid violations that result in DER/circuit segment disconnection. To comply with grid code requirements at the grid edge level, network constrained grid edge energy management system (EMS) can be deployed. The objective of grid edge EMS is to provide economic solution for active and reactive power DER setpoints at each dispatch interval and ensure voltage regulation to support secure interconnection of the grid edge segment to the distribution system with multiple inverter based DER units. In this work, real-time simulation of grid code compliant grid edge EMS is deployed in a realistic feeder circuit segment. For real-time simulation, communication between the grid edge EMS and DERs is done exploiting IEC 61850-7-420. It enables interoperability among different DERs and grid edge EMS. No prior art has deployed IEC 61850-7-420 GOOSE communication protocol for grid edge EMS. Conversion of IEC 61850 GOOSE messages to Modbus communication protocol is also performed to communicate with grid edge EMS in commodity-off the shelf embedded boards in this work. The real-time simulation in OPAL-RT real-time digital simulator shows the out-performance of grid edge EMS by reducing the voltage violation in the distribution circuit.

Energy management system↗

Visualization and Analysis Requirements for In Situ Processing for a Large-Scale Fusion Simulation Code

In situ techniques have become a very active research area since they have been shown to be an effective way to combat the issues associated with the ever growing gap between computation and I/O bandwidth. In order to take full advantage of in situ techniques with a large-scale simulation code, it is critical to understand the breadth and depth of its analysis requirements. In this paper, we present the results of a survey done with members of the XGC1 fusion simulation code team in order to gather their requirements for analysis and visualization. We look at these requirements from the perspective of in situ processing and present a list of XGC1 analysis tasks performed by its physicists, engineers, and visualization specialists. This analysis of the specific needs and use cases of a single code is important in understanding the nature of the needs that simulations have in terms of data movement and usage for visualization and analysis, now and in the future.

Kress, James M.↗

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↗

Proposed Material Properties, Allowable Stresses, and Design Curves of Diffusion Bonded Alloy 800H for the ASME Code Section III Division 5

Abstract Increased interest in compact heat exchangers (CHXs) to serve as intermediate heat exchangers of very high temperature reactors resulted in significant research and development on their design, analysis, and construction. Printed circuit heat exchangers are a type of CHXs with high thermal efficiency and compactness achieved through diffusion bonding a stack of etched plates with millimeter scaled channels. The diffusion bonding process changes the microstructural and mechanical properties of the wrought metal plates. The current nonnuclear design code ASME section VIII, division 1 captures the material property change through a “joint efficiency factor.” However, the current nuclear design code ASME section III, division 5 does not address or support the diffusion bonded material properties. Hence, there is a need to develop allowable stresses, isochronous curves, and fatigue life curves for various diffusion bonded alloys. In this study, Alloy 800H material was selected to establish the diffusion bonded material properties under tension, creep, fatigue, and creep-fatigue loads at elevated temperatures in the range 550–760 °C. A set of tests on diffusion bonded Alloy 800H (DB 800H) were performed and the acquired data are used in developing allowable stresses Sy, Su, Sr, Sm, St, Smt, So, isochronous curves and fatigue life curves according to the ASME section III, division 5 requirements. This paper also presents detailed procedures used in developing the ASME code section III division 5 design provisions for diffusion bonded Alloy 800H.

Engineering↗

Application of C ( t )-Integral Solutions in Extending ASME BPVC Section XI Division 2 Code Case N-934 for Transient Creep Crack Growth

Creep crack growth is a phenomenon which arises in damaged metallic structures under combined primary and secondary loads in the creep regime. The High Temperature Flaw Evaluation Code Committee of the American Society of Mechanical Engineers Boiler and Pressure Vessel Code (BPVC) is evaluating methods in extending Code Case N-934 to capture transient creep crack growth. Here, this paper provides context and basic examples on the selected approach to transient creep crack growth methods based on the C(t)-integral. The basis for selected C(t)-integral solution as analytical method is established, including an overview of its derivation. Practical assessments of a crack growing under creep conditions in a realistic component are conducted to illustrate the analytical approach. Additional considerations in the application of the analytical methods and limitations are discussed.

36 MATERIALS SCIENCE↗

SU-E-T-590: Optimizing Magnetic Field Strengths with Matlab for An Ion-Optic System in Particle Therapy Consisting of Two Quadrupole Magnets for Subsequent Simulations with the Monte-Carlo Code FLUKA

Purpose: Aim of this study was to optimize the magnetic field strengths of two quadrupole magnets in a particle therapy facility in order to obtain a beam quality suitable for spot beam scanning. Methods: The particle transport through an ion-optic system of a particle therapy facility consisting of the beam tube, two quadrupole magnets and a beam monitor system was calculated with the help of Matlab by using matrices that solve the equation of motion of a charged particle in a magnetic field and field-free region, respectively. The magnetic field strengths were optimized in order to obtain a circular and thin beam spot at the iso-center of the therapy facility. These optimized field strengths were subsequently transferred to the Monte-Carlo code FLUKA and the transport of 80 MeV/u C12-ions through this ion-optic system was calculated by using a user-routine to implement magnetic fields. The fluence along the beam-axis and at the iso-center was evaluated. Results: The magnetic field strengths could be optimized by using Matlab and transferred to the Monte-Carlo code FLUKA. The implementation via a user-routine was successful. Analyzing the fluence-pattern along the beam-axis the characteristic focusing and de-focusing effects of the quadrupole magnets could be reproduced. Furthermore the beam spot at the iso-center was circular and significantly thinner compared to an unfocused beam. Conclusion: In this study a Matlab tool was developed to optimize magnetic field strengths for an ion-optic system consisting of two quadrupole magnets as part of a particle therapy facility. These magnetic field strengths could subsequently be transferred to and implemented in the Monte-Carlo code FLUKA to simulate the particle transport through this optimized ion-optic system.

62 RADIOLOGY AND NUCLEAR MEDICINE↗

Turbulent-convective block for the ASTRA transport code

A physical model for the enhanced transport code is presented, which explicitly takes into account the contribution of turbulent convection to the processes of particle and heat transport in the hot core of the tokamak plasma. The model is based on the specially developed CONTRA-A turbulent block, while an adapted version of the existing ASTRA transport code is used as a transport envelope. The CONTRA-A turbulent block, based on the adiabatically reduced quasi-2D magnetohydrodynamic equations, calculates the generation and self-consistent evolution of low-frequency turbulence, including the spatiotemporal structure of turbulent fluctuations of the plasma velocity, density, and temperatures of electrons and ions. Using the obtained data on fluctuations, the CONTRA-A block calculates the turbulent-convective particle and heat fluxes and transfers them to the modified ASTRA code, which computes the evolution of quasi-equilibrium plasma parameters. To illustrate the capabilities of the enhanced transport model, the results of simulations of turbulent plasma evolution in two discharge scenarios with nonstationary auxiliary plasma heating in the T-10 and T-15MD tokamaks are presented.

70 PLASMA PHYSICS AND FUSION TECHNOLOGY↗

A new relativistic viscous hydrodynamics code and its application to the Kelvin–Helmholtz instability in high-energy heavy-ion collisions

Here, we construct a new relativistic viscous hydrodynamics code optimized in the Milne coordinates. We also split the conservation equations into an ideal part and a viscous part, using the Strang spitting method. In the code a Riemann solver based on the two-shock approximation is utilized for the ideal part and the Piecewise Exact Solution (PES) method is applied for the viscous part. Furthemore, we check the validity of our numerical calculations by comparing analytical solutions, the viscous Bjorken’s flow and the Israel–Stewart theory in Gubser flow regime. Using the code, we discuss possible development of the Kelvin–Helmholtz instability in high-energy heavy-ion collisions.

72 PHYSICS OF ELEMENTARY PARTICLES AND FIELDS↗

Soft syndrome iterative decoding of quantum LDPC codes and hardware architectures

In practical quantum error correction implementations, the measurement of syndrome information is an unreliable step—typically modeled as a binary measurement outcome flipped with some probability. However, the measured syndrome is in fact a discretized value of the continuous voltage or current values obtained in the physical implementation of the syndrome extraction. In this paper, we use this “soft” or analog information to benefit iterative decoders for decoding quantum low-density parity-check (QLDPC) codes. Syndrome-based iterative belief propagation decoders are modified to utilize the soft syndrome to correct both data and syndrome errors simultaneously. We demonstrate the advantages of the proposed scheme not only in terms of comparison of thresholds and logical error rates for quasi-cyclic lifted-product QLDPC code families but also with faster convergence of iterative decoders. Additionally, we derive hardware (FPGA) architectures of these soft syndrome decoders and obtain similar performance in terms of error correction to the ideal models even with reduced precision in the soft information. The total latency of the hardware architectures is about 600 ns (for the QLDPC codes considered) in a 20 nm CMOS process FPGA device, and the area overhead is almost constant—less than 50% compared to min-sum decoders with noisy syndromes.

72 PHYSICS OF ELEMENTARY PARTICLES AND FIELDS↗

Helium: lifting high-performance stencil kernels from stripped x86 binaries to halide DSL code

Highly optimized programs are prone to bit rot, where performance quickly becomes suboptimal in the face of new hardware and compiler techniques. In this paper we show how to automatically lift performance-critical stencil kernels from a stripped x86 binary and generate the corresponding code in the high-level domain-specific language Halide. Using Halide's state-of-the-art optimizations targeting current hardware, we show that new optimized versions of these kernels can replace the originals to rejuvenate the application for newer hardware. The original optimized code for kernels in stripped binaries is nearly impossible to analyze statically. Instead, we rely on dynamic traces to regenerate the kernels. We perform buffer structure reconstruction to identify input, intermediate and output buffer shapes. Here, we abstract from a forest of concrete dependency trees which contain absolute memory addresses to symbolic trees suitable for high-level code generation. This is done by canonicalizing trees, clustering them based on structure, inferring higher-dimensional buffer accesses and finally by solving a set of linear equations based on buffer accesses to lift them up to simple, high-level expressions. Helium can handle highly optimized, complex stencil kernels with input-dependent conditionals. We lift seven kernels from Adobe Photoshop giving a 75 % performance improvement, four kernels from Irfan View, leading to 4.97 x performance, and one stencil from the mini GMG multigrid benchmark netting a 4.25 x improvement in performance. We manually rejuvenated Photoshop by replacing eleven of Photoshop's filters with our lifted implementations, giving 1.12 x speedup without affecting the user experience.

97 MATHEMATICS AND COMPUTING↗

GPU code optimization using abstract kernel emulation and sensitivity analysis

In this paper, we develop a novel approach to GPU kernel optimization by focusing on identification of bottleneck resources and determining optimization parameters that can alleviate the bottleneck. Performance modeling for GPUs is done by abstract kernel emulation along with latency/gap modeling of resources. Sensitivity analysis with respect to resource latency/gap parameters is used to predict the bottleneck resource for a given kernel's execution. Here, the utility of the bottleneck analysis is demonstrated in two contexts: 1) Enhancing the OpenTuner auto-tuner with the new bottleneck-driven optimization strategy. Experimental results on all kernels from the Rodinia suite and GPU tensor contraction kernels from the NWChem computational chemistry suite demonstrate effectiveness. 2) Manual code optimization: two case studies illustrate the use of the bottleneck analysis to iteratively improve performance of code from state-of-the-art DSL code generators.

97 MATHEMATICS AND COMPUTING↗

Optimization and Portability of a Fusion OpenACC-based FORTRAN HPC Code from NVIDIA to AMD GPUs

NVIDIA has been the main provider of GPU hardware in HPC systems for over a decade. Most applications that benefit from GPUs have thus been developed and optimized for the NVIDIA software stack. Recent exascale HPC systems are, however, introducing GPUs from other vendors, e.g. with the AMD GPU-based OLCF Frontier system just becoming available. AMD GPUs cannot be directly accessed using the NVIDIA software stack, and require a porting effort by the application developers. This paper provides an overview of our experience porting and optimizing the CGYRO code, a widely-used fusion simulation tool based on FORTRAN with OpenACC-based GPU acceleration. While the porting from the NVIDIA compilers was relatively straightforward using the CRAY compilers on the AMD systems, the performance optimization required more fine-tuning. In the optimization effort, we uncovered code sections that had performed well on NVIDIA GPUs, but were unexpectedly slow on AMD GPUs. After AMD-targeted code optimizations, performance on AMD GPUs has increased to meet our expectations. Modest speed improvements were also seen on NVIDIA GPUs, which was an unexpected benefit of this exercise.

Sfiligoi, Igor↗

Performance-Portable GPU Acceleration of the EFIT Tokamak Plasma Equilibrium Reconstruction Code

This paper presents the steps followed to GPU-offload parts of the core solver of EFIT-AI, an equilibrium reconstruction code suitable for tokamak experiments and burning plasmas. For this work, we will focus on the fitting procedure that consists of a Grad–Shafranov (GS) equation inverse solver that calculates equilibrium reconstructions on a grid. We will show profiling results of the original code (CPU-baseline), as well as the directives used to GPU-offload the most time-consuming function, initially to compare OpenACC and OpenMP on NVIDIA and AMD GPUs and later on to assess OpenMP performance portability on NVIDIA, AMD and Intel GPUs. We will make a performance comparison for different spatial grid sizes and show the speedup achieved on NVIDIA A100 (Perlmutter-NERSC), AMD MI250X (Frontier-OLCF) and Intel PVC GPUs (Sunspot-ALCF). Finally, we will draw some conclusions and recommendations to achieve high-performance portability for an equilibrium reconstruction code on the new HPC architectures

GPU↗

Porting a 3D seismic modeling code (SW4) to CORAL machines

Seismic waves fourth order (SW4) solves the seismic wave equations on Cartesian and curvilinear grids using large compute clusters with O (100,000) cores. In this article we discuss the porting of SW4 to run on the CORAL architecture using the RAJA performance portability abstraction layer. The performances of key kernels using RAJA and CUDA are compared to estimate the performance penalty of using the portability abstraction layer. Code changes required for efficiency on GPUs and minimizing time spent in Message Passing Interface (MPI) are discussed. This article describes a path for efficiently porting large code bases to GPU-based machines while avoiding the pitfalls of a new architecture in the early stages of its deployment. Current bottlenecks in the code are discussed along with possible architectural or software mitigations. SW4 runs 28× faster on one 4-GPU CORAL node than on a CTS-1 node (Dual Intel Xeon E5-2695 v4). SW4 is now in routine use on problems of unprecedented resolution (203 billion grid points) and scale on 1,200 nodes of Summit.

97 MATHEMATICS AND COMPUTING↗

Verification of the global gyrokinetic stellarator code XGC-S for linear ion temperature gradient driven modes

XGC (X-point Gyrokinetic Code) is a whole-volume, total-f gyrokinetic particle-in-cell code developed for modelling tokamaks.In recent work, XGC has been extended to model more general 3D toroidal magnetic configurations, such as stellarators.These improvements have resulted in the XGC-S version.In this paper, XGC-S is benchmarked in the reduced delta-f limit for linear electrostatic ion temperature gradient-driven microinstabilities, which can underlie turbulent transport in stellarators.An initial benchmark of XGC-S in tokamak geometry shows good agreement with the XGC1, ORB5, and global GENE codes.A benchmark between XGC-S and the EUTERPE global gyrokinetic code for stellarators has also been performed, this time in geometry of the optimised stellarator Wendelstein 7-X.Good agreement has been found for the mode number spectrum, mode structure, and growth rate.

M, Cole↗

OpenMP 4.5 and CUDA C++ and FORTRAN code samples

Brief Description for Public Release: A collection of general code samples demonstrating issues encountered with using OpenMP4.5 (and some CUDA) during efforts to port codes to a GPU platform using IBM XL. These independent examples include both C++ and FORTRAN language usage, along with attempts to use OpenMP and CUDA in an interoperable manner. This suite of code samples is meant to supplement the examples provided by openmp.org at https://github.com/OpenMP/Examples, especially in regards to FORTRAN language support and OpenMP/CUDA interoperability.

Black, AaronC.↗

H2OI95: A Stand-Alone Fortran Code for Evaluating the IAPWS-95 Equation-of-State Model for Water

H2OI95 is a stand-alone Fortran code for evaluating the IAPWS-95 equation-of-state model (Wagner and Pruss, 2002) for the thermodynamic properties of water. It further evaluates the corresponding thermochemical properties of water consistent with the CODATA recommendations (Cox et al., 1989). The IAPWS-95 model is based on a model equation for the dimensionless Helmholtz energy for which the primary variables are the inverse reduced temperature and reduced density. Here is the absolute temperature (K), is density (kg/m3), and the subscript refers to the critical point of water (647.096 K and 22.064 MPa pressure in this model, for which is 322 kg/m3). The code solves four basic types of problems, distinguished by the specified inputs: 1, Temperature (K) and density (kg/m3) or reduced density 2. Temperature (K) and pressure (MPa). 3. Temperature (K) on the saturation (liquid-vapor equilibrium) curve 4. Pressure (MPa) on the saturation curve Each type of problem is run using a corresponding input (text) file. All but the first type of problem require iteration. For example, to solve for desired temperature and pressure, the reduced density must be adjusted to give the desired pressure. Iteration is accomplished using the Newton-Raphson method, though the secant method is also used in solving the fourth type of problem. H2OI95 has been used to conduct numerical studies of convergence and the problem of multiple numerical solutions, only some of which correspond to valid results. Obtaining valid results depends mainly on appropriate choice of starting values. The default values in H2OI95 appear to consistently lead to generally desired results. With modification (not addressed here), H2OI95 can be used to support SUPCRT92 (Johnson et al., 1992) and similar codes that compute chemical thermodynamic properties of species and reactions over a wide range of temperature and pressure (273.16-1273K and 0-1000 MPa).

Wolery, ThomasJ.↗

CSlib, a library to couple codes via Client/Server messaging

The CSlib is a small, portable library which enables two (or more) independent simulation codes to be coupled, by exchanging messages with each other. Both codes link to the library when they are built, and can them communicate with each other as they run. The messages contain data or instructions that the two codes send back-and-forth to each other. The messaging can take place via files, sockets, or MPI. The latter is a standard distributed-memory message-passing library.

Plimpton, Steve↗