Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “software library”

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 793 records · Page 44

Providing performance portable numerics for Intel GPUs

Summary With discrete Intel GPUs entering the high‐performance computing landscape, there is an urgent need for production‐ready software stacks for these platforms. In this article, we report how we enable the Ginkgo math library to execute on Intel GPUs by developing a kernel backed based on the DPC++ programming environment. We discuss conceptual differences between the CUDA and DPC++ programming models and describe workflows for simplified code conversion. We evaluate the performance of basic and advanced sparse linear algebra routines available in Ginkgo's DPC++ backend in the hardware‐specific performance bounds and compare against routines providing the same functionality that ship with Intel's oneMKL vendor library.

97 MATHEMATICS AND COMPUTING↗

Warp-X: A new exascale computing platform for beam–plasma simulations

Turning the current experimental plasma accelerator state-of-the-art from a promising technology into mainstream scientific tools depends critically on high-performance, high-fidelity modeling of complex processes that develop over a wide range of space and time scales. As part of the U.S. Department of Energy's Exascale Computing Project, a team from Lawrence Berkeley National Laboratory, in collaboration with teams from SLAC National Accelerator Laboratory and Lawrence Livermore National Laboratory, is developing a new plasma accelerator simulation tool that will harness the power of future exascale supercomputers for high-performance modeling of plasma accelerators. We present the various components of the codes such as the new Particle-In-Cell Scalable Application Resource (PICSAR) and the redesigned adaptive mesh refinement library AMReX, which are combined with redesigned elements of the Warp code, in the new WarpX software. Lastly, the code structure, status, early examples of applications and plans are discussed.

43 PARTICLE ACCELERATORS↗

Solidify, An LLVM pass to compile LLVM IR into Solidity

The software currently compiles LLVM IR into Solidity (Ethereum’s dominant programming language) using LLVM’s pass library. Specifically, his compiler allows us to convert an arbitrary DSL into Solidity. We focus specifically on converting Domain Specific Languages into Solidity due to their ease of use, and provable properties. By creating a toolchain to compile lightweight domain-specific languages into Ethereum's dominant language, Solidity, we allow non-specialists to effectively develop safe and useful smart contracts. For example lawyers from a certain firm can have a proprietary DSL that codifies basic laws safely converted to Solidity to be securely executed on the blockchain. In another example, a simple provenance tracking language can be compiled and securely executed on the blockchain.

Kothapalli, Abhiram↗

Many-Body Adaptive Configuration Interaction Suite (MACIS) v0.1.0

The Many-Body Adaptive Configuration Interaction Suite (MACIS) is a modern C++ software infrastructure for the development of selected-configuration interaction (sCI) methods for the fermionic many-body problem in quantum chemistry and materials science. MACIS provides a high-performance, parallel implementation of the Adaptive Sampling Configuration Interaction (ASCI) method as related solvers such as self-consistent orbital optimization and the evaluation of excited states and spectral functions. Unlike existing sCI software, MACIS is developed as a modular software infrastructure which allows it to exist both as a standalone sCI solver and as a library to integrate into existing many-body codes. This modularity allows MACIS to be quickly extensible, including its integration with other sCI methods and high-performance solvers.

Williams-Young, David↗

Polaris Studio

SF-24-040 Polaris-studio is the Python entry point/front end for using the Polaris transportation simulator. The package contains the code used to create new models from open and user-provided data, an extensive range of convenience tools for data preparation and result analysis and the ability of designing, launching and tracking studies combining multiple individual Polaris simulations from a Python terminal. The Polaris Studio software contains several modules for accomplishing the above tasks, including the PolarisLib - the Polaris object model, Polaris Manager - code for setting up and running Polaris studies, QPOLARIS - an add-on for the QGis software to allow model files to be created and edited, PolarisVis - a juptyer-based postprocessing library, and Polaris Tools - a useful collection of supplemental tools for interacting with Polaris files.

Auld, Joshua↗

Status Report on NEAMS System Analysis Module Development

Under the Reactor Product Line (RPL) of DOE-NE’s Nuclear Energy Advanced Modeling and Simulation (NEAMS) program, an advanced SFR System Analysis Module (SAM) is being developed at Argonne National Laboratory. The goal of the SAM development is to provide fast-running, improved-fidelity, whole-plant transient analyses capabilities. SAM utilizes an object-oriented application framework MOOSE), and its underlying meshing and finite-element library libMesh, as well as linear and non-linear solvers PETSc, to leverage modern advanced software environments and numerical methods. It also incorporates advances in physical and empirical models and seeks closure models based on information from high-fidelity simulations and experiments. This report provides an update on the SAM development, and summarizes the activities performed in FY15 and the first quarter of FY16. The tasks include: (1) implement the support of 2nd-order finite elements in SAM components for improved accuracy and computational efficiency; (2) improve the conjugate heat transfer modeling and develop pseudo 3-D full-core reactor heat transfer capabilities; (3) perform verification and validation tests as well as demonstration simulations; (4) develop the coupling requirements for SAS4A/SASSYS-1 and SAM integration.

21 SPECIFIC NUCLEAR REACTORS AND ASSOCIATED PLANTS↗

Simulation-based Testing of Control Software

It is impossible to adequately test complex software by examining its operation in a physical prototype of the system monitored. Adequate test coverage can require millions of test cases, and the cost of equipment prototypes combined with the real-time constraints of testing with them makes it infeasible to sample more than a small number of these tests. Model based testing seeks to avoid this problem by allowing for large numbers of relatively inexpensive virtual prototypes that operate in simulation time at a speed limited only by the available computing resources. In this report, we describe how a computer system emulator can be used as part of a model based testing environment; specifically, we show that a complete software stack including operating system and application software - can be deployed within a simulated environment, and that these simulations can proceed as fast as possible. To illustrate this approach to model based testing, we describe how it is being used to test several building control systems that act to coordinate air conditioning loads for the purpose of reducing peak demand. These tests involve the use of ADEVS (A Discrete Event System Simulator) and QEMU (Quick Emulator) to host the operational software within the simulation, and a building model developed with the MODELICA programming language using Buildings Library and packaged as an FMU (Functional Mock-up Unit) that serves as the virtual test environment.

97 MATHEMATICS AND COMPUTING↗

Using OpenMP for HEP Framework Algorithm Scheduling [Slides]

The OpenMP standard is the primary mechanism used at high performance computing facilities to allow intra-process parallelization. In contrast, many HEP specific software (such as CMSSW, GaudiHive, and ROOT) make use of Intel's Threading Building Blocks (TBB) library to accomplish the same goal. In this talk we will discuss our work to compare TBB and OpenMP when used for scheduling algorithms to be run by a HEP style data processing framework (i.e. running hundreds of interdependent algorithms at most once for each event read from the detector). This includes both scheduling of different algorithms to be run concurrently as well as scheduling concurrent work within one algorithm. As part of the discussion we present an overview of the OpenMP threading model. We also explain how we used OpenMP when creating a simplified HEP-like processing framework. Using that simplified framework, and a similar one written using TBB, we will present performance comparisons between TBB and different compiler versions of OpenMP.

73 NUCLEAR PHYSICS AND RADIATION PHYSICS↗

Space Environments and Effects: Trapped Proton Model

An improved model of the Earth's trapped proton environment has been developed. This model, designated Trapped Proton Model version 1 (TPM-1), determines the omnidirectional flux of protons with energy between 1 and 100 MeV throughout near-Earth space. The model also incorporates a true solar cycle dependence. The model consists of several data files and computer software to read them. There are three versions of the mo'del: a FORTRAN-Callable library, a stand-alone model, and a Web-based model.

Huston, S. L.↗

SATPLOT for Analysis of SECCHI Heliospheric Imager Data

Determining trajectories of solar transients such as coronal mass ejections is not always easy. White light images from SECCHI's (Sun Earth Connection Coronal and Heliospheric Investigation) heliospheric imagers are difficult to interpret because they represent a line-of-sight projection of optically thin solar wind structures. A structure's image by itself gives no information about its angle of propagation relative to the Sunspacecraft line, and an image may show a superposition of several structures, all propagating at different angles. Analyzing SECCHI heliospheric imager data using plots of elongation (angle from the Sun) versus time at fixed position angle (aka Jplots ) has proved extremely useful in understanding the observed solar wind structures. This technique has been used to study CME (coronal mass ejection) propagation, CIRs (corotating interaction regions), and blobs. SATPLOT software was developed to create and analyze such elongation versus time plots. The tool uses a library of cylindrical maps of the data for each spacecraft s panoramic field-of-view. Each map includes data from three SECCHI white-light telescopes (the COR2 coronagraph and both heliospheric imagers) at one time for one spacecraft. The maps are created using a Plate Carree projection, optimized for creating the elongation versus time plots. The tool can be used to analyze the observed tracks of features seen in the maps, and the tracks are then used to extract information, for example, on the angle of propagation of the feature.

Hall, Jeffrey R.↗

Environment Modeling Using Runtime Values for JPF-Android

Software applications are developed to be executed in a specific environment. This environment includes external native libraries to add functionality to the application and drivers to fire the application execution. For testing and verification, the environment of an application is simplified abstracted using models or stubs. Empty stubs, returning default values, are simple to generate automatically, but they do not perform well when the application expects specific return values. Symbolic execution is used to find input parameters for drivers and return values for library stubs, but it struggles to detect the values of complex objects. In this work-in-progress paper, we explore an approach to generate drivers and stubs based on values collected during runtime instead of using default values. Entry-points and methods that need to be modeled are instrumented to log their parameters and return values. The instrumented applications are then executed using a driver and instrumented libraries. The values collected during runtime are used to generate driver and stub values on- the-fly that improve coverage during verification by enabling the execution of code that previously crashed or was missed. We are implementing this approach to improve the environment model of JPF-Android, our model checking and analysis tool for Android applications.

Verification↗

CRISTAL V2: New package for criticality calculations

A new release of the CRISTAL French criticality calculation package, named CRISTAL V2, has been developed and intensively validated by IRSN and CEA, in collaboration with AREVA. This package was designed to cover the needs of criticality practitioners in the fields of nuclear fuel cycle facilities and transportation of fissile materials. Based on an optimized modular architecture in an updated software development environment, the design of CRISTAL package V2 integrates new generation of cross-section libraries, new calculation schemes consistent with new applications, and up-to-date calculation codes capabilities. Four calculation routes are currently available allowing multi-group and continuous energy calculations. The validation database is composed of more than 3000 critical experiments, in order to cover a wide range of configurations. The CRISTAL V2 package also includes customer services covering a large scope of activities like documentations, hotline, maintenance and training courses. A significant promotion and an increased recognition referred both nationally and internationally are foreseen, including the provision of the CRISTAL V2 package to the OECD / NEA Data Bank. (authors)

11 NUCLEAR FUEL CYCLE AND FUEL MATERIALS↗

Best practices for documenting a scientific Python project

Documentation is a crucial component of software development that helps users with installation and usage of the software. Documentation also helps onboard new developers to a software project with contributing guidelines and API information. The INTERSECT project is an open federated hardware/software library to facilitate the development of au- tonomous laboratories. A documentation strategy using Sphinx has been utilized to help developers contribute to source code and to help users understand the INTERSECT Python interface. Docstrings as well as reStructuredText files are used by Sphinx to automatically compile HTML and PDF files which can be hosted online as API documentation and user guides. The resulting documentation website is automatically built and deployed using GitLab runners to create Docker containers with NGINX servers. The approach discussed in this paper to automatically deploy documentation for a Python project can improve the user and developer experience for many scientific projects.

Wiggins, Gavin↗

Speeding up software with VecCore

Portable and efficient vectorization is a significant challenge in large software projects such as GeantV, ROOT, and experiments’ frameworks. Nevertheless, fully exploiting SIMD parallelism will be a required step in order to bridge the widening gap between the needs and availability of computing resouces for data analysis and processing in particle physics. Although there are SIMD libraries that wrap compiler intrinsics into a convenient interface, they do not always support all available architectures, or they only perform well in some of them. The VecCore library was created to address some of these performance and portability issues by providing a unified abstraction layer on top of existing libraries, such as Vc or UME::SIMD. In this article, we discuss VecCore’s programming model for SIMD code and some use cases in HEP software packages such as VecGeom and GeantV.

Amadio, G.↗

Applications of square-root information filtering and smoothing in spacecraft orbit determination

The JPL (Jet Propulsion Laboratory) Orbit Determination Software System is a set of computer programs developed for the primary purpose of determining the flight path of deep-space mission spacecraft in NASA's Planetary Program and highly elliptical orbiting spacecraft in Earth orbit. The filtering processes available within the JPL Orbit Determination Software are discussed, and several examples are presented. In particular, solutions obtained by the Square Root Information Filter (SRIF) using Bierman's Estimation Subroutine Library (ESL) are discussed and compared with the solutions obtained by the singular value decomposition (SVD) technique. It is concluded that the SRIF filtering and smoothing algorithms are efficient and numerically stable for well-conditioned systems. The use of Bierman's ESL simplifies the task of maintaining the orbit determination software by providing efficient, tested filtering tools. For solving a large well-conditioned system (rank higher than 120), SRIF is approximately four times faster than SVD; however, for solving an ill-conditioned system, SVD is recommended.

Wang, Tseng-Chan↗

Earthbound applications for NASA's physician workstation

The dream of a space probe to Mars or an astronaut colony on the moon persists. Despite years of setbacks and delays, NASA continues to lay the foundation for a new frontier in space. The necessity of a self contained health maintenance facility is an integral part of this stellar venture. As a subsystem of this health maintenance facility, the physician or astronaut workstation was envisioned as the vehicle of interface between the computer resources of the space station and the care provider. Our efforts to define and build this interface have resulted in a series of programs which can now be tested and refined using earth-based applications. The modules which have dual-use application from the NASA workstation include: patient scheduling and master patient index, pharmacy, laboratory, medical library, problem list/progress notes, and digital medical records. Our current plan is to develop these tools as objects that can be assembled in a variety of configurations. This will allow the technology to be used by the private sector where each doctor can select the starting point of his outpatient office system and add modules as he makes progress in system integration and training.

NASA Discipline Number 70-30↗

Development of nuclear data processing code FRENDY version 2

Nuclear data processing is an important interface between an evaluated nuclear data library and neutronics calculation codes. JAEA has been developed the new nuclear data processing code FRENDY from 2013. FRENDY version 1 generates the ACE files used for the continuous-energy Monte Carlo codes including PHITS, Solomon, Serpent,and MCNP and it was released as the open-source software under the 2-clause BSD license in 2019.After we released FRENDY version 1, many functions, e.g., the multi-group neutron cross-section library generation, the statistical uncertainty quantification of the probability tables for unresolved resonance cross-section, the 'perturbation' of the ACE file for uncertainty quantification, and the modification of the ENDF-6 formatted nuclear data file, have been developed. We released FRENDY version 2 including these functions. The present paper gives an overview of FRENDY and presents features of new functions implemented in FRENDY version 2. (authors)

22 GENERAL STUDIES OF NUCLEAR REACTORS↗

Software product description

An overview of the MultiNet system is presented. Services, supported configurations, remote printer services, netstat, netcontrol, DECnet interoperability services, and programming libraries are briefly described.

Source record↗