Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “code portability”

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 199 records · Page 11

Use Computer-Aided Tools to Parallelize Large CFD Applications

Porting applications to high performance parallel computers is always a challenging task. It is time consuming and costly. With rapid progressing in hardware architectures and increasing complexity of real applications in recent years, the problem becomes even more sever. Today, scalability and high performance are mostly involving handwritten parallel programs using message-passing libraries (e.g. MPI). However, this process is very difficult and often error-prone. The recent reemergence of shared memory parallel (SMP) architectures, such as the cache coherent Non-Uniform Memory Access (ccNUMA) architecture used in the SGI Origin 2000, show good prospects for scaling beyond hundreds of processors. Programming on an SMP is simplified by working in a globally accessible address space. The user can supply compiler directives, such as OpenMP, to parallelize the code. As an industry standard for portable implementation of parallel programs for SMPs, OpenMP is a set of compiler directives and callable runtime library routines that extend Fortran, C and C++ to express shared memory parallelism. It promises an incremental path for parallel conversion of existing software, as well as scalability and performance for a complete rewrite or an entirely new development. Perhaps the main disadvantage of programming with directives is that inserted directives may not necessarily enhance performance. In the worst cases, it can create erroneous results. While vendors have provided tools to perform error-checking and profiling, automation in directive insertion is very limited and often failed on large programs, primarily due to the lack of a thorough enough data dependence analysis. To overcome the deficiency, we have developed a toolkit, CAPO, to automatically insert OpenMP directives in Fortran programs and apply certain degrees of optimization. CAPO is aimed at taking advantage of detailed inter-procedural dependence analysis provided by CAPTools, developed by the University of Greenwich, to reduce potential errors made by users. Earlier tests on NAS Benchmarks and ARC3D have demonstrated good success of this tool. In this study, we have applied CAPO to parallelize three large applications in the area of computational fluid dynamics (CFD): OVERFLOW, TLNS3D and INS3D. These codes are widely used for solving Navier-Stokes equations with complicated boundary conditions and turbulence model in multiple zones. Each one comprises of from 50K to 1,00k lines of FORTRAN77. As an example, CAPO took 77 hours to complete the data dependence analysis of OVERFLOW on a workstation (SGI, 175MHz, R10K processor). A fair amount of effort was spent on correcting false dependencies due to lack of necessary knowledge during the analysis. Even so, CAPO provides an easy way for user to interact with the parallelization process. The OpenMP version was generated within a day after the analysis was completed. Due to sequential algorithms involved, code sections in TLNS3D and INS3D need to be restructured by hand to produce more efficient parallel codes. An included figure shows preliminary test results of the generated OVERFLOW with several test cases in single zone. The MPI data points for the small test case were taken from a handcoded MPI version. As we can see, CAPO's version has achieved 18 fold speed up on 32 nodes of the SGI O2K. For the small test case, it outperformed the MPI version. These results are very encouraging, but further work is needed. For example, although CAPO attempts to place directives on the outer- most parallel loops in an interprocedural framework, it does not insert directives based on the best manual strategy. In particular, it lacks the support of parallelization at the multi-zone level. Future work will emphasize on the development of methodology to work in a multi-zone level and with a hybrid approach. Development of tools to perform more complicated code transformation is also needed.

Jin, H.↗

The Aeras Next Generation Global Atmosphere Model

The Next Generation Global Atmosphere Model LDRD project developed a suite of atmosphere models: a shallow water model, an x-z hydrostatic model, and a 3D hydrostatic model, by using Albany, a finite element code. Albany provides access to a large suite of leading-edge Sandia high-performance computing technologies enabled by Trilinos, Dakota, and Sierra. The next-generation capabilities most relevant to a global atmosphere model are performance portability and embedded uncertainty quantification (UQ). Performance portability is the capability for a single code base to run efficiently on diverse set of advanced computing architectures, such as multi-core threading or GPUs. Embedded UQ refers to simulation algorithms that have been modified to aid in the quantifying of uncertainties. In our case, this means running multiple samples for an ensemble concurrently, and reaping certain performance benefits. We demonstrate the effectiveness of these approaches here as a prelude to introducing them into ACME.

54 ENVIRONMENTAL SCIENCES↗

Portability: A Necessary Approach for Future Scientific Software

Today's world of scientific software for High Energy Physics (HEP) is powered by x86 code, while the future will be much more reliant on accelerators like GPUs and FPGAs. The portable parallelization strategies (PPS) project of the High Energy Physics Center for Computational Excellence (HEP/CCE) is investigating solutions for portability techniques that will allow the coding of an algorithm once, and the ability to execute it on a variety of hardware products from many vendors, especially including accelerators. We think without these solutions, the scientific success of our experiments and endeavors is in danger, as software development could be expert driven and costly to be able to run on available hardware infrastructure. We think the best solution for the community would be an extension to the C++ standard with a very low entry bar for users, supporting all hardware forms and vendors. We are very far from that ideal though. We argue that in the future, as a community, we need to request and work on portability solutions and strive to reach this ideal.

46 INSTRUMENTATION RELATED TO NUCLEAR SCIENCE AND ↗

Fire Extinguisher Training for Fire Watch and Designated Workers, Course 9893

At Los Alamos National Laboratory (LANL), all workers must be aware of LANL fire protection policies and be trained on what to do in the event of a fire. This course, Fire Extinguisher Training for Fire Watch and Designated Workers (#9893), provides awareness-level and hands-on training for fire watch personnel and designated workers. Fire watch personnel and designated workers are appointed by line management and must receive both awareness-level training and hands-on training in the use of portable fire extinguishers to extinguish an incipient-stage fire. This training meets the requirements of the Occupational Safety and Health Administration (OSHA) Code of Federal Regulations (CFR) 29 CFR 1910.157, Portable Fire Extinguishers, and Procedure (P) 101-26, Welding, Cutting, and Other Spark-/Flame-Producing Operations.

99 GENERAL AND MISCELLANEOUS↗

Fire Extinguisher Designated Worker and Fire Watch: Self-Study Course 15672

At Los Alamos National Laboratory (LANL), all workers must be aware of LANL fire protection policies and be trained on what to do in the event of a fire. This course, Fire Extinguisher Training for Fire Watch and Designated Workers (#9893), provides awareness-level and hands-on training for fire watch personnel and designated workers. Fire watch personnel and designated workers are appointed by line management and must receive both awareness-level training and hands-on training in the use of portable fire extinguishers to extinguish an incipient-stage fire. This training meets the requirements of the Occupational Safety and Health Administration (OSHA) Code of Federal Regulations (CFR) 29 CFR 1910.157, Portable Fire Extinguishers, and Procedure (P) 101-26, Welding, Cutting, and Other Spark-/Flame-Producing Operations.

99 GENERAL AND MISCELLANEOUS↗

MatRIS: Multi-level Math Library Abstraction for Heterogeneity and Performance Portability using IRIS Runtime

Vendor libraries are tuned for a specific architecture and are not portable to others. Moreover, they lack support for heterogeneity and multi-device orchestration, which is required for efficient use of contemporary HPC and cloud resources. To address these challenges, we introduce MatRIS—a multilevel math library abstraction for scalable and performance-portable sparse/dense BLAS/LAPACK operations using IRIS runtime. The MatRIS-IRIS co-design introduces three levels of abstraction to make the implementation completely architecture agnostic and provide highly productive programming. We demonstrate that MatRIS is portable without any change in source code and can fully utilize multi-device heterogeneous systems by achieving high performance and scalability on Summit, Frontier, and a CADES cloud node equipped with four NVIDIA A100 GPUs and four AMD MI100 GPUs. A detailed performance study is presented in which MatRIS demonstrates multi-device scalability. When compared, MatRIS provides competitive and even better performance than libraries from vendors and other third parties.

Monil, M. A. H.↗

NimbleSM

NimbleSM is a Lagrangian finite-element code for solid mechanics. Its primary application is the solution of mechanics problems on nonuniform, three-dimensional meshes using either explicit transient dynamic or implicit quasi-static time integration. Additional features include multiscale modeling and the simulation of contact. The NimbleSM code base is designed for performance portability across varying hardware architectures.

Shelton, Timothy↗

LANL SDAV Visualization Update [Slides]

Xeon Phi (MIC) on Stampede: •To demonstrate the portability of our algorithms, the same code was compiled to the Thrust OpenMP backend (including our own OpenMP implementation of scan) and run on a 2563 particle data set on an Intel Xeon Phi SE10P (MIC) Coprocessor on a single node of Stampede at TACC • PISTON version scales to more cores than running the existing serial algorithms with multiple MPI processes. Titan: • This test problem has ~90 million particles per process. • Due to memory constraints on the GPUs, we utilize a hybrid approach, in which the halos are computed on the CPU but the centers on the GPU. • The PISTON MBP center finding algorithm requires much less memory than the halo finding algorithm but provides the large majority of the speed-up, since MBP center finding takes much longer than FOF halo finding with the original CPU code. In-situ Integration in HACC: • Successfully ran 500 time-step, 512 3 particle simulation on Moonlight using our GPU halo and center finders integrated with HACC in-situ • Completed prototype integration with CosmoTools

97 MATHEMATICS AND COMPUTING↗

Experience with the CAIS

Intermetrics' experience is that the Ada package construct, which allows separation of specification and implementation allows specification of a CAIS that is transportable across varying hardware and software bases. Additionally, the CAIS is an excellent basis for providing operating system functionality to Ada applications. By allowing the Byron APSE to be moved easily from system to system, and allowing significant re-writes of underlying code. Ada and the CAIS provide portability as well as transparency to change at the application operating system interface level.

Tighe, Michael F.↗

An Object-Oriented Approach to Writing Computational Electromagnetics Codes

Presently, most computer software development in the Computational Electromagnetics (CEM) community employs the structured programming paradigm, particularly using the Fortran language. Other segments of the software community began switching to an Object-Oriented Programming (OOP) paradigm in recent years to help ease design and development of highly complex codes. This paper examines design of a time-domain numerical analysis CEM code using the OOP paradigm, comparing OOP code and structured programming code in terms of software maintenance, portability, flexibility, and speed.

Zimmerman, Martin↗

Quantitative Holdup Determinations Using Coded-Aperture Gamma-Ray Imaging

Passive gamma-ray imaging can be used to create images of distributed nuclear materials. Inherently quantitative, the images provide a means to directly determine the amount of nuclear material in the imager’s field of view. However, to take advantage of quantitative imaging, one must correct for changes to the imager’s efficiency across the image. This paper presents work on detailed calibration of a coded-aperture imager based on a portable, mechanically cooled, high-purity germanium detector. This enables the use of gamma-ray imaging as a tool to determine nuclear holdup. By applying the calibrations to images of small amounts of distributed 235U, quantity estimates within a few percent of the actual amounts present were obtained, validating the approach.

Ziock, Klaus-Peter↗

ASC Tri-lab Co-design Level 2 Milestone Report 2015

In 2015, the three Department of Energy (DOE) National Laboratories that make up the Advanced Sci- enti c Computing (ASC) Program (Sandia, Lawrence Livermore, and Los Alamos) collaboratively explored performance portability programming environments in the context of several ASC co-design proxy applica- tions as part of a tri-lab L2 milestone executed by the co-design teams at each laboratory. The programming environments that were studied included Kokkos (developed at Sandia), RAJA (LLNL), and Legion (Stan- ford University). The proxy apps studied included: miniAero, LULESH, CoMD, Kripke, and SNAP. These programming models and proxy-apps are described herein. Each lab focused on a particular combination of abstractions and proxy apps, with the goal of assessing performance portability using those. Performance portability was determined by: a) the ability to run a single application source code on multiple advanced architectures, b) comparing runtime performance between \native" and \portable" implementations, and c) the degree to which these abstractions can improve programmer productivity by allowing non-portable implementation details to be hidden from the application developer. This report captures the work that was completed for this milestone, and outlines future co-design work to be performed by application developers, programming environment developers, compiler writers, and hardware vendors.

97 MATHEMATICS AND COMPUTING↗

Milestone Completion Report STCO04-1 AAPS: engagements with code teams, vendors, collaborators, developers

The Advanced Architecture and Portability Specialists team (AAPS) worked with a select set of LLNL application teams to develop and/or implement a portability strategy for next-generation architectures. The team also investigated new and updated programming models and helped develop programming abstractions targeting maintainability and performance portability. Significant progress was made on both fronts in FY17, resulting in multiple applications being significantly more prepared for the nextgeneration machines than before.

97 MATHEMATICS AND COMPUTING↗

Examples of Use of SINBAD Database for Nuclear Data and Code Validation

Benchmark experiments can serve several purposes and the availability of suitable experimental data is fundamental to ensure that modelling tools meet the requirements of nuclear industry and licensing needs. Essentially, they are used for: - validation of nuclear cross-section data, - validation of nuclear codes and models used, - qualification and training of users through benchmarking and code comparison exercises. The Shielding Integral Benchmark Archive and Database (SINBAD) project was started in the early 1990's at the OECD Nuclear Energy Agency Data Bank (NEA DB) and the Radiation Safety Information Computational Center (RSICC) as a collection of quality experiments for validating and benchmarking computer codes and data for radiation transport and shielding applications. Currently, the SINBAD database comprises over 100 benchmark compilations and evaluations of relevance to: - reactor shielding, pressure vessel dosimetry (48); - fusion blanket neutronics (31); - accelerator shielding (23). In order to facilitate their use, the data are organized in the standardized format structure. The index and the master document (called abstract) use the Hyper Text Markup Language (HTML) format with links to text files, figures, Portable Document Format (pdf) documents and computer code inputs. The format allows easy access and forward/backward navigation among the data and has proved to be suitable, general enough and above all easy (and low-cost) to maintain. In addition to the characterization of the radiation source, description of the shielding set-up, the instrumentation and the relevant detector measurements, most sets in SINBAD contain also the deterministic or Monte Carlo radiation transport computer model used for the interpretation of the experiment and, where available, results from uncertainty analysis. The set of primary documents used for the benchmark compilation and evaluation are provided in computer readable form. The database is intended for different types of users, including nuclear data evaluators, computer code developers, experiment designers and university students. SINBAD is available from the NEA Data Bank and RSICC (see https://www.oecdnea.org/science/wprs/shielding/sinbad/). Up to now several hundreds of SINBAD packages were distributed from the NEA DB and RSICC. Since 2011 the maintenance and further development of the database is coordinated in the scope of the OECD NEA Nuclear Science Committee (NSC) Working Party on Scientific Issues of Reactor Systems (WPRS) Expert Group on Radiation Transport and Shielding (EGRTS). A key objective of the group is to identify, evaluate and preserve experimental data on shielding benchmarks. The Expert Group maintains close links with the International Reactor Physics Experiment Evaluation (IRPhE) and International Criticality Safety Benchmark Evaluation (ICSBEP) projects, as well as in co-ordination with the JEFF and EFF NEA Data Bank projects and with the SATIF community of accelerator shielding specialists. In the last years, much effort was devoted to the quality review of the available benchmark information.

42 ENGINEERING↗

System Synchronizes Recordings from Separated Video Cameras

A system of electronic hardware and software for synchronizing recordings from multiple, physically separated video cameras is being developed, primarily for use in multiple-look-angle video production. The system, the time code used in the system, and the underlying method of synchronization upon which the design of the system is based are denoted generally by the term "Geo-TimeCode(TradeMark)." The system is embodied mostly in compact, lightweight, portable units (see figure) denoted video time-code units (VTUs) - one VTU for each video camera. The system is scalable in that any number of camera recordings can be synchronized. The estimated retail price per unit would be about $350 (in 2006 dollars). The need for this or another synchronization system external to video cameras arises because most video cameras do not include internal means for maintaining synchronization with other video cameras. Unlike prior video-camera-synchronization systems, this system does not depend on continuous cable or radio links between cameras (however, it does depend on occasional cable links lasting a few seconds). Also, whereas the time codes used in prior video-camera-synchronization systems typically repeat after 24 hours, the time code used in this system does not repeat for slightly more than 136 years; hence, this system is much better suited for long-term deployment of multiple cameras.

Nail, William↗

Case Study of Using Kokkos and SYCLs Performance-Portable Frameworks for Milc-Dslash Benchmark on NVIDIA, AMD and Intel GPUs

Six of the top ten supercomputers in the TOP500 list from June 2021 rely on NVIDIA GPUs to achieve their peak compute bandwidth. With the announcement of Aurora, Frontier, and El Capitan, Intel and AMD have also entered the domain of providing GPUs for scientific computing. A consequence of the increased diversity in the GPU landscape is the emergence of portable programming models such as Kokkos, SYCL, OpenCL, and OpenMP, which allow application developers to maintain a single-source code across a diverse range of hardware architectures. While the portable frameworks try to optimize the compute resource usage on a given architecture, it is the programmers responsibility to expose parallelism in an application that can take advantage of thousands of processing elements available on GPUs. In this paper, we introduce a GPU-friendly parallel implementation of Milc-Dslash that exposes multiple hierarchies of parallelism in the algorithm. Milc-Dslash was designed to serve as a benchmark with highly optimized matrix-vector multiplications to measure the resource utilization on the GPU systems. The parallel hierarchies in the Milc-Dslash algorithm are mapped onto a target hardware using Kokkos and SYCL programming models. We present the performance achieved by Kokkos and SYCL implementations of Milc-Dslash on NVIDIA A100 GPU, AMD MI100 GPU, and Intel Gen9 GPU. Additionally, we compare the Kokkos and SYCL performances with those obtained from the versions written in CUDA and HIP programming models on NVIDIA A100 GPU and AMD MI100 GPU, respectively.

Dufek, Amanda S↗

Performance portability for the CMS Reconstruction with Alpaka

For CMS, Heterogeneous Computing is a powerful tool to face the computational challenges posed by the upgrades of the LHC, and will be used in production at the High Level Trigger during Run 3. In principle, to offload the computational work on non-CPU resources, while retaining their performance, different implementations of the same code are required. This would introduce code-duplication which is not sustainable in terms of maintainability and testability of the software. Performance portability libraries allow to write code once and run it on different architectures with close-to-native performance. The CMS experiment is evaluating performance portability libraries for the near term future.

46 INSTRUMENTATION RELATED TO NUCLEAR SCIENCE AND ↗

Manycore Performance-Portability: Kokkos Multidimensional Array Library

Large, complex scientific and engineering application code have a significant investment in computational kernels to implement their mathematical models. Porting these computational kernels to the collection of modern manycore accelerator devices is a major challenge in that these devices have diverse programming models, application programming interfaces (APIs), and performance requirements. The Kokkos Array programming model provides library-based approach to implement computational kernels that are performance-portable to CPU-multicore and GPGPU accelerator devices. This programming model is based upon three fundamental concepts: (1) manycore compute devices each with its own memory space, (2) data parallel kernels and (3) multidimensional arrays. Kernel execution performance is, especially for NVIDIA® devices, extremely dependent on data access patterns. Optimal data access pattern can be different for different manycore devices – potentially leading to different implementations of computational kernels specialized for different devices. The Kokkos Array programming model supports performance-portable kernels by (1) separating data access patterns from computational kernels through a multidimensional array API and (2) introduce device-specific data access mappings when a kernel is compiled. An implementation of Kokkos Array is available through Trilinos [Trilinos website, http://trilinos.sandia.gov/, August 2011].

Edwards, H. Carter↗