Search NASA⌕ Search

SEARCH · Search NASA

Results for “Programming Models”

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 343 records · Page 19

CRADA Final Report: CRADA Number NFE-14-05227 with Total E&P Research and Technology USA LLC

Cooperative Research and Development Agreement (CRADA) NFE-14-05227 between Oak Ridge National Laboratory (ORNL) and Total E&P Research and Development USA LLC (Total) focused on exploration of programming models and optimization opportunities for two families of seismic imaging algorithms frequently used within the oil and gas sector. Studies involved the use of OpenACC and OpenMP directive-based programming models for GPU accelerators on Reverse Time Migration (RTM), and Time Reverse Time Migration (tRTM) model applications. The work provided insights into both the directive language capabilities and gaps with respect to the needs of these algorithms and how the algorithms can be ported to GPU accelerators using directive languages.

58 GEOSCIENCES↗

A portable MPI-based parallel vector template library

This paper discusses the design and implementation of a polymorphic collection library for distributed address-space parallel computers. The library provides a data-parallel programming model for C++ by providing three main components: a single generic collection class, generic algorithms over collections, and generic algebraic combining functions. Collection elements are the fourth component of a program written using the library and may be either of the built-in types of C or of user-defined types. Many ideas are borrowed from the Standard Template Library (STL) of C++, although a restricted programming model is proposed because of the distributed address-space memory model assumed. Whereas the STL provides standard collections and implementations of algorithms for uniprocessors, this paper advocates standardizing interfaces that may be customized for different parallel computers. Just as the STL attempts to increase programmer productivity through code reuse, a similar standard for parallel computers could provide programmers with a standard set of algorithms portable across many different architectures. The efficacy of this approach is verified by examining performance data collected from an initial implementation of the library running on an IBM SP-2 and an Intel Paragon.

Sheffler, Thomas J.↗

A Portable MPI-Based Parallel Vector Template Library

This paper discusses the design and implementation of a polymorphic collection library for distributed address-space parallel computers. The library provides a data-parallel programming model for C + + by providing three main components: a single generic collection class, generic algorithms over collections, and generic algebraic combining functions. Collection elements are the fourth component of a program written using the library and may be either of the built-in types of c or of user-defined types. Many ideas are borrowed from the Standard Template Library (STL) of C++, although a restricted programming model is proposed because of the distributed address-space memory model assumed. Whereas the STL provides standard collections and implementations of algorithms for uniprocessors, this paper advocates standardizing interfaces that may be customized for different parallel computers. Just as the STL attempts to increase programmer productivity through code reuse, a similar standard for parallel computers could provide programmers with a standard set of algorithms portable across many different architectures. The efficacy of this approach is verified by examining performance data collected from an initial implementation of the library running on an IBM SP-2 and an Intel Paragon.

Sheffler, Thomas J.↗

From PeleC to PeleACC, to PeleC++

PeleC is an Exascale Computing Project application for simulating compressible combustion in complex geometries. It has been built on top of the popular AMReX library. In the beginning of the Exascale Computing Project, PeleC was focused on KNL. It uses a mixture of C++, C, and kernels written in Fortran to obtain performance by focusing on vectorization. Recently we have taken two approaches in deciding PeleC's future for obtaining performance on exascale GPU machines. In the first programming model, we decorated the Fortran kernels with OpenACC directives. This expedited our ability to run at large scales on Summit's GPUs, where we achieved a significant speedup over the CPUs on Summit. The second programming model involved rewriting the Fortran kernels in C++ and using AMReX's Kokkos-like lambda abstractions for running on the GPU. This resulted in similar speedups on Summit's GPUs over merely utilizing the CPUs. Both approaches involved AMReX's management of memory transfers between the device and host. In this work, we compare and contrast the benefits and pitfalls to both programming approaches regarding performance, performance portability, and productivity. We also discuss advantages we have found in taking the time to modernize our code and why have chosen a specific pathway to prepare our code for the future DOE exascale machines.

exascale computing↗

TDCOSMO. IX. Systematic comparison between lens modelling software programs: time delay prediction for WGD 2038-4008

The importance of alternative methods for measuring the Hubble constant, such as time-delay cosmography, is highlighted by the recent Hubble tension. It is paramount to thoroughly investigate and rule out systematic biases in all measurement methods before we can accept new physics as the source of this tension. In this study, we perform a check for systematic biases in the lens modelling procedure of time-delay cosmography by comparing independent and blind time-delay predictions of the system WGD 2038-4008 from two teams using two different software programs: GLEE and LENSTRONOMY. The predicted time delays from the two teams incorporate the stellar kinematics of the deflector and the external convergence from line-of-sight structures. The un-blinded time-delay predictions from the two teams agree within 1.2σ, implying that once the time delay is measured the inferred Hubble constant will also be mutually consistent. However, there is a ~4σ discrepancy between the power-law model slope and external shear, which is a significant discrepancy at the level of lens models before the stellar kinematics and the external convergence are incorporated. We identify the difference in the reconstructed point spread function (PSF) to be the source of this discrepancy. When the same reconstructed PSF was used by both teams, we achieved excellent agreement, within ~0.6σ<, indicating that potential systematics stemming from source reconstruction algorithms and investigator choices are well under control. We recommend that future studies supersample the PSF as needed and marginalize over multiple algorithms or realizations for the PSF reconstruction to mitigate the systematics associated with the PSF. A future study will measure the time delays of the system WGD 2038-4008 and infer the Hubble constant based on our mass models.

79 ASTRONOMY AND ASTROPHYSICS↗

Portability for GPU-accelerated molecular docking applications for cloud and HPC: can portable compiler directives provide performance across all platforms?

High-throughput structure-based screening of drug-like molecules has become a common tool in biomedical research. Recently, acceleration with graphics processing units (GPUs) has provided a large performance boost for molecular docking programs. Both cloud and high-performance computing (HPC) resources have been used for large screens with molecular docking programs; while NVIDIA GPUs have dominated cloud and HPC resources, new vendors such as AMD and Intel are now entering the field, creating the problem of software portability across different GPUs. Ideally, software productivity could be maximized with portable programming models that are able to maintain high performance across architectures. While in many cases compiler directives have been used as an easy way to offload parallel regions of a CPU-based program to a GPU accelerator, they may also be an attractive programming model for providing portability across different GPU vendors, in which case the porting process may proceed in the reverse direction: from low-level, architecture-specific code to higher-level directive-based abstractions. MiniMDock is a new mini-application (miniapp) designed to capture the essential computational kernels found in molecular docking calculations, such as are used in phar-maceutical drug discovery efforts, in order to test different solutions for porting across GPU architectures. Here we extend MiniMDock to GPU offloading with OpenMP directives, and compare to performance of kernels using CUDA and HIP on NVIDIA and AMD GPUs, respectively, as well as across different compilers, exploring performance bottlenecks. We document this reverse-porting process, from highly optimized device code to a higher-level version using directives, compare code structure, and describe barriers that were overcome in this effort.

Thavappiragasam, Mathialakan↗

Comparison of different simulation programs in modeling the energy savings of cool roofs

The Roof Savings Calculator is a web-based application first developed in 2010 that uses detailed building energy simulations to calculate the energy savings of cool roofs for different building types in over 200 U.S. locations. Although modeling the heat flows of a roof may be straightforward at first glance, modeling the energy savings due to changes in the roof albedo is complicated because it involves modeling the interzone heat transfer between the attic and the conditioned space below. Since direct measurement of energy savings is also problematic, the authors have decided to compare what several independent detailed simulation programs show for the energy savings from cool roof strategies.

Huang, Yu (Joe)↗

Vectoring Single Expansion Ramp Nozzle (VSERN) static model test program

A variable throat-area, side-vectoring single expansion ramp nozzle (VSERN) concept's internal performance characteristics are studied with a view to controlling the bypass flow of an unmixed turbofan engine. Static tests have been conducted on VSERN at NASA-Langley using a variety of parametric models giving attention to the effects of upstream bend angle, ramp geometry, area ratio, and nozzle pressure ratio on static thrust and flow performance. Advantages of VSERN over the conventional vectoring axisymmetric convergent side-nozzles typified by those of the Harrier's Pegasus engine.

Eames, D. J. H.↗

Initial CEED API (CEED-MS10)

Key components of CEED software development involve fast finite element operator storage and evaluation, architecture optimizations, performant algorithms for all orders, global kernels for finite element operators, efficient use of the memory sub-system, optimal data locality and motion, enhanced scalability and parallelism, and fast tensor contractions. As ultimate goals of the project, CEED is exploring and identifying the best algorithms for the full range of discretizations and applying algorithmic and software development to support ECP applications’ needs. In this milestone, we initiated the development and implementation of a common CEED API consisting of two main components: low-level and high-level APIs. We accomplished the goal of having the low-level component ready for the release of CEED v1.0 in the next quarter, see CEED-MS13. In this report we also provide a highlight from CEED’s integration with the MARBL app and the corresponding Laghos miniapp. A main theme in this work has been the systematic transition of advanced algorithms, developed and tested in Laghos, to the large-scale multi-physics settings of the MARBL code. The low-level CEED API provides a set of FE kernels and components for writing new low-level kernels. Examples include: vector and sparse linear algebra, element matrix assembly over a batch of elements, partial assembly and action for efficient high-order operators like mass, diffusion, advection, etc. The main goal of the low-level API is to establish the basis for the high-level API. Also, identifying such low-level kernels and providing a reference implementation for them serves as the basis for collaboration with vendors and STs. Another goal for the low-level API is to make it easy for applications with their own discretization infrastructure, who do not want to switch directly to using the high-level CEED API, to still evaluate and use the core operations provided by the low-level API. One of the challenges with high-order methods is that a global sparse matrix is no longer a good representation of a high-order linear operator, both with respect to the FLOPs needed for its evaluation, as well as the memory transfer needed for a matvec. Thus, another important question we tried to address while developing the low-level API is: is it possible to abstract out in a natural and efficient way the different implementations and data structures that arise when dealing with various computational device types: CPUs, GPUs, etc. Fully answering this question is beyond the scope of this particular milestone, since that requires longer time as we develop and expand the devices we support. The future high-level API will be the frontend provided by CEED consisting of high-level abstractions such as meshes, finite element spaces and solutions, bilinear forms, solvers, etc. At this high-level, an important aspect of the API will be to provide a uniform abstraction layer for writing code in a portable manner. To achieve that, we plan to utilize the MPI programming model combined with a device abstraction layer (DAL) for finite element computations that we will develop. The DAL will serve as the bridge between the low- and the high-level APIs, allowing a variety of programming models to be used for the low-level kernel implementations. The software artifacts delivered as part of this milestone include an initial CEED API software implementation (libCEED) provided through the CEED website, http://ceed.exascaleproject.org and the CEED GitHub organization, http://github.com/ceed. In addition to details and results from the above R&D efforts, in this document we are also reporting on other project-wide activities performed in Q1 of FY18, including: the Nek5000 v17.0 MFEM v3.3.2 and PETSc v3.8 releases, collaborations with ECP/ST and SciDAC projects, the inaugural Nek5000 hackathon and various outreach activities.

97 MATHEMATICS AND COMPUTING↗

Contributions of the NASA Langley Transonic Dynamics Tunnel to Launch Vehicle and Spacecraft Development

The NASA Langley Transonic Dynamics Tunnel (TDT) has provided wind-tunnel experimental validation and research data for numerous launch vehicles and spacecraft throughout its forty year history. Most of these tests have dealt with some aspect of aeroelastic or unsteady-response testing, which is the primary purpose of the TDT facility. However, some space-related test programs that have not involved aeroelasticity have used the TDT to take advantage of specific characteristics of the wind-tunnel facility. In general. the heavy gas test medium, variable pressure, relatively high Reynolds number and large size of the TDT test section have made it the preferred facility for these tests. The space-related tests conducted in the TDT have been divided into five categories. These categories are ground wind loads, launch vehicle dynamics, atmospheric flight of space vehicles, atmospheric reentry. and planetary-probe testing. All known TDT tests of launch vehicles and spacecraft are discussed in this report. An attempt has been made to succinctly summarize each wind-tunnel test, or in the case of multiple. related tests, each wind-tunnel program. Most summaries include model program discussion, description of the physical wind-tunnel model, and some typical or significant test results. When available, references are presented to assist the reader in further pursuing information on the tests.

Cole, Stanley R.↗

Optimizing green infrastructure placement under precipitation uncertainty

Increased urbanization, infrastructure degradation, and climate change threaten to overwhelm stormwater systems across the nation, rendering them ineffective. Green Infrastructure (GI) practices are low cost, low regret strategies that can contribute to urban runoff management. However, questions remain as to how to best distribute GI practices through urban watersheds given precipitation uncertainty and the variable hydrological responses to them. We develop stochastic programming models to determine the optimal placement of GI practices across a set of candidate locations in a watershed to minimize the total expected runoff under medium-term precipitation uncertainties. Specifically, we first develop a two-stage stochastic programming model. Next, we reformulate this model using perturbed parameters to reduce the requisite computational time and extend it to multi-stage. In addition, we introduce constraints that allow for incorporating sub-catchment-level runoff reduction considerations. Furthermore, we account for hydrological connectivity in the watershed using an underlying acyclic connectivity graph of sub-catchments and incorporate various practical considerations into the models. In addition, we develop a systemic approach to downscale the existing daily precipitation projections into hourly units and efficiently estimate the corresponding hydrological responses. These advancements are brought together in a case study for an urban watershed in a mid-sized city in the U.S., where we perform sensitivity analyses, evaluate the importance of the considered constraints, and provide insights.

54 ENVIRONMENTAL SCIENCES↗

A modeling analysis program for the JPL table mountain Io sodium cloud data

A detailed review of 110 of the 263 Region B/C images of the 1981 data set is undertaken and a preliminary assessment of 39 images of the 1976-79 data set is presented. The basic spatial characteristics of these images are discussed. Modeling analysis of these images after further data processing will provide useful information about Io and the planetary magnetosphere. Plans for data processing and modeling analysis are outlined. Results of very preliminary modeling activities are presented.

Smyth, W. H.↗

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↗

Performance Portability of Molecular Docking Miniapp On Leadership Computing Platforms

Rapidly changing computer architectures, such as those found at high-performance computing (HPC) facilities, present the need for mini-applications (miniapps) that capture essential algorithms used in large applications to test program performance and portability, aiding transitions to new systems. The COVID-19 pandemic has fueled a flurry of activity in computational drug discovery, including the use of supercomputers and GPU acceleration for massive virtual screens for therapeutics. Recent work targeting COVID-19 at the Oak Ridge Leadership Computing Facility (OLCF) used the GPU-accelerated program AutoDock-GPU to screen billions of compounds on the Summit supercomputer. In this paper we present the development of a new miniapp, miniAutoDock-GPU, that can be used to evaluate the performance and portability of GPU-accelerated protein-ligand docking programs on different computer architectures. These tests are especially relevant as facilities transition from petascale systems and prepare for upcoming exascale systems that will use a variety of GPU vendors. The key calculations, namely, the Lamarckian genetic algorithm combined with a local search using a Solis-Wets based random optimization algorithm, are implemented. We developed versions of the miniapp using several different programming models for GPU acceleration, including a version using the CUDA runtime API for NVIDIA GPUs, and the Kokkos middle-ware API which is facilitated by C++ template libraries. A third version, currently in progress, uses the HIP programming model. These efforts will help facilitate the transition to exascale systems for this important emerging HPC application, as well as its use on a wide range of heterogeneous platforms.

Thavappiragasam, Mathialakan↗

Kokkos v.4.0

SAND2023-07883O Kokkos software implements C++ performance portability programming models, tools and math libraries, which enables science and engineering software developers to use single-source codes for a wide range of computer architectures. Kokkos also provides implementations of existing and proposed C++ standard features that support programming model and math libraries that are used for implementing performance-portable scientific and engineering applications. The Kokkos libraries provide algorithms, data structures, and tools to enable high-performance computing developers to write performance-portable code. Capabilities fall into three broad categories: Kokkos Core, Kokkos Kernels, and Kokkos Tools. Sandia National Laboratories is a multimission laboratory managed and operated by National Technology & Engineering Solutions of Sandia, LLC, a wholly owned subsidiary of Honeywell International Inc., for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-NA0003525.

SciDAC↗

GASNet-EX RMA Communication Performance on Recent Supercomputing Systems

Partitioned Global Address Space (PGAS) programming models, typified by systems such as Unified Parallel C (UPC) and Fortran coarrays, expose one-sided Remote Memory Access (RMA) communication as a key building block for High Performance Computing (HPC) applications. Architectural trends in supercomputing make such programming models increasingly attractive, and newer, more sophisticated models such as UPC++, Legion and Chapel that rely upon similar communication paradigms are gaining popularity. GASNet-EX is a portable, open-source, high-performance communication library designed to efficiently support the networking requirements of PGAS runtime systems and other alternative models in emerging exascale machines. The library is an evolution of the popular GASNet communication system, building upon 20 years of lessons learned. We present microbenchmark results which demonstrate the RMA performance of GASNet-EX is competitive with MPI implementations on four recent, high-impact, production HPC systems. These results are an update relative to previously published results on older systems. The networks measured here are representative of hardware currently used in six of the top ten fastest supercomputers in the world, and all of the exascale systems on the U.S. DOE road map.

Hargrove, Paul H↗

A modeling analysis program for the JPL table mountain Io sodium cloud

Progress and achievements in the first year are discussed in three main areas: (1) review and assessment of the massive JPL Table Mountain Io sodium cloud data set, (2) formulation and execution of a plan to perform further processing of this data set, and (3) initiation of modeling activities. The complete 1976-79 and 1981 data sets are reviewed. Particular emphasis is placed on the superior 1981 Region B/C images which provide a rich base of information for studying the structure and escape of gases from Io as well as possible east-west and magnetic longitudinal asymmetries in the plasma torus. A data processing plan is developed and is undertaken by the Multimission Image Processing Laboratory of JPL for the purpose of providing a more refined and complete data set for our modeling studies in the second year. Modeling priorities are formulated and initial progress in achieving these goals is reported.

Smyth, W. H.↗

NASA's Earth Observations Commercialization Applications Program: A model for government promotion of commercial space opportunities

The role of government in promoting space commerce is a topic of discussion in every spacefaring nation. This article describes a new approach to government intervention which, based on its five-year track record, appears to have met with success. The approach, developed in NASA's Earth Observations Commercialization Application Program (EOCAP), offer several lessons for effective government sponsorship of commercial space development in general and of commercial remote sensing in particular.

Macauley, Molly K.↗