Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “Language”

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

Evaluation of the Single-precision Floatingpoint Vector Add Kernel Using the Intel FPGA SDK for OpenCL

Open Computing Language (OpenCL) is a high-level language that enables software programmers to explore Field Programmable Gate Arrays (FPGAs) for application acceleration. The Intel FPGA software development kit (SDK) for OpenCL allows a user to specify applications at a high level and explore the performance of low-level hardware acceleration. In this report, we present the FPGA performance and power consumption results of the single-precision floating-point vector add OpenCL kernel using the Intel FPGA SDK for OpenCL on the Nallatech 385A FPGA board. The board features an Arria 10 FPGA. We evaluate the FPGA implementations using the compute unit duplication and kernel vectorization optimization techniques. On the Nallatech 385A FPGA board, the maximum compute kernel bandwidth we achieve is 25.8 GB/s, approximately 76% of the peak memory bandwidth. The power consumption of the FPGA device when running the kernels ranges from 29W to 42W.

97 MATHEMATICS AND COMPUTING↗

Evaluation of the OpenCL AES Kernel using the Intel FPGA SDK for OpenCL

The OpenCL standard is an open programming model for accelerating algorithms on heterogeneous computing system. OpenCL extends the C-based programming language for developing portable codes on different platforms such as CPU, Graphics processing units (GPUs), Digital Signal Processors (DSPs) and Field Programmable Gate Arrays (FPGAs). The Intel FPGA SDK for OpenCL is a suite of tools that allows developers to abstract away the complex FPGA-based development flow for a high-level software development flow. Users can focus on the design of hardware-accelerated kernel functions in OpenCL and then direct the tools to generate the low-level FPGA implementations. The approach makes the FPGA-based development more accessible to software users as the needs for hybrid computing using CPUs and FPGAs are increasing. It can also significantly reduce the hardware development time as users can evaluate different ideas with high-level language without deep FPGA domain knowledge. In this report, we evaluate the performance of the kernel using the Intel FPGA SDK for OpenCL and Nallatech 385A FPGA board. Compared to the M506 module, the board provides more hardware resources for a larger design exploration space. The kernel performance is measured with the compute kernel throughput, an upper bound to the FPGA throughput. The report presents the experimental results in details. The Appendix lists the kernel source code.

97 MATHEMATICS AND COMPUTING↗

Evaluation of CHO Benchmarks on the Arria 10 FPGA using Intel FPGA SDK for OpenCL

The OpenCL standard is an open programming model for accelerating algorithms on heterogeneous computing system. OpenCL extends the C-based programming language for developing portable codes on different platforms such as CPU, Graphics processing units (GPUs), Digital Signal Processors (DSPs) and Field Programmable Gate Arrays (FPGAs). The Intel FPGA SDK for OpenCL is a suite of tools that allows developers to abstract away the complex FPGA-based development flow for a high-level software development flow. Users can focus on the design of hardware-accelerated kernel functions in OpenCL and then direct the tools to generate the low-level FPGA implementations. The approach makes the FPGA-based development more accessible to software users as the needs for hybrid computing using CPUs and FPGAs are increasing. It can also significantly reduce the hardware development time as users can evaluate different ideas with high-level language without deep FPGA domain knowledge. Benchmarking of OpenCL-based framework is an effective way for analyzing the performance of system by studying the execution of the benchmark applications. CHO is a suite of benchmark applications that provides support for OpenCL [1]. The authors presented CHO as an OpenCL port of the CHStone benchmark. Using Altera OpenCL (AOCL) compiler to synthesize the benchmark applications, they listed the resource usage and performance of each kernel that can be successfully synthesized by the compiler. In this report, we evaluate the resource usage and performance of the CHO benchmark applications using the Intel FPGA SDK for OpenCL and Nallatech 385A FPGA board that features an Arria 10 FPGA device. The focus of the report is to have a better understanding of the resource usage and performance of the kernel implementations using Arria-10 FPGA devices compared to Stratix-5 FPGA devices. In addition, we also gain knowledge about the limitations of the current compiler when it fails to synthesize a benchmark application.

97 MATHEMATICS AND COMPUTING↗

GASNet Specification, v1.8.1

GASNet is a language-independent, low-level networking layer that provides network-independent, high-performance communication primitives tailored for implementing parallel global address space SPMD languages and libraries such as UPC, UPC++, Co-Array Fortran, Legion, Chapel, and many others. The interface is primarily intended as a compilation target and for use by runtime library writers (as opposed to end users), and the primary goals are high performance, interface portability, and expressiveness. GASNet stands for "Global-Address Space Networking".

97 MATHEMATICS AND COMPUTING↗

Final Report from The University of Texas at Austin for DEGAS: Dynamic Global Address Space programming environments

The Dynamic, Exascale Global Address Space programming environment (DEGAS) project will develop the next generation of programming models and runtime systems to meet the challenges of Exascale computing. Our approach is to provide an efficient and scalable programming model that can be adapted to application needs through the use of dynamic runtime features and domain-specific languages for computational kernels. We address the following technical challenges: Programmability: Rich set of programming constructs based on a Hierarchical Partitioned Global Address Space (HPGAS) model, demonstrated in UPC++. Scalability: Hierarchical locality control, lightweight communication (extended GASNet), and ef- ficient synchronization mechanisms (Phasers). Performance Portability: Just-in-time specialization (SEJITS) for generating hardware-specific code and scheduling libraries for domain-specific adaptive runtimes (Habanero). Energy Efficiency: Communication-optimal code generation to optimize energy efficiency by re- ducing data movement. Resilience: Containment Domains for flexible, domain-specific resilience, using state capture mechanisms and lightweight, asynchronous recovery mechanisms. Interoperability: Runtime and language interoperability with MPI and OpenMP to encourage broad adoption.

97 MATHEMATICS AND COMPUTING↗

Construction of an Object-Oriented Interface to an Enhanced EGS Monte Carlo Code

The version of SLAC’s EGS Code System (known as EGS4) was clearly recognized throughout the world as a “gold standard” for solving physics and engineering problems related to the transport of electrons and photons in any element, compound, or mixture. However, EGS4 was written in a computer language called Mortran3 and the learning curve for this rather obscure language was difficult and steep. One major objective of this project was to convert the EGS4 Mortran3 coding into Fortran77, making it much simpler for first-time users to understand and appreciate. In addition, since the introduction of EGS4 in 1985, a number of enhancements in electron-photon transport, as well as a growing need for additional physics processes, had been developed, and the new code (called EGS5) would incorporate more than 20 of these improvements. Of course, many key benchmark simulations had to be made during its development in order to prove that EGS5 was just as credible as its predecessor, EGS4. All of the above was tasked to SLAC, with outside support coming from colleagues at the University of Michigan (Nuclear Engineering Department) and at the High Energy Accelerator Research Organization (KEK) in Japan.

97 MATHEMATICS AND COMPUTING↗

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↗

Development and Validation of a Geant4 Radiation Shielding Simulation Framework

Geant4 (`Geometry and Tracking') is a C++ Monte- Carlo simulation toolkit developed by the Geant4 Collaboration under CERN and is used to describe inter- actions between particles and matter. It has been shown, through significant benchmarking against physical experiments and other software, to be remarkably accurate at simulating interactions between particles and matter. Currently, Geant4 is being used on world-wide projects such as ATLAS, CMS, Muon g-2, and ILC, largely due to being accurate, open-source, and written in a modern language. This openness and modernity is striking when compared to other Monte-Carlo simulation toolkits such as the Fortran toolkit MCNP (Monte-Carlo N-Particle code), which is restricted in acquisition and use by the US government. Despite barriers in the use of MCNP and having been written in an antiquated language, MCNP is still considered industry-standard for many fields, including radiation shielding. This paper details the development and validation of a radiation shielding simulation framework in Geant4 aimed at flexibility and ease of simulations with the goal of replacing MCNP scripts.

43 PARTICLE ACCELERATORS↗

High Fidelity Computational Model for Fluidized Bed Experiments (Final Report)

MFiX was integrated with preconditioners and linear solver packages in Trilinos via MFIX, Fortran, C, and C++ wrappers. The MFIX wrapper interpreted the structure of the matrix and vector from MFiX while the Fortran wrapper transfers this information to a low-level language, C. C-wrapper transforms the memory semantic between Fortran and C++ language. C++ wrapper passes the matrix and vector to a Trilinos package and gets the solution. This solution was transferred to MFiX via C++, C, Fortran, MFIX wrapper. The framework is used to integrate first, second and third generation linear solvers in Trilinos with MFiX.

97 MATHEMATICS AND COMPUTING↗

A Case Study with the HACCmk Kernel in SYCL

The SYCL standard specifies a cross-platform abstraction layer that enables programming of heterogeneous computing systems using standard C++ [1]. In the Open Computing Language (OpenCL) programming model, host and device codes are written in different languages [2 ]. To improve development productivity and performance portability, the SYCL programming model combines host and device codes for an application in a type-safe way. In this report, we are interested in applying the SYCL programming model to a computationally intensive routine derived from the Hardware Accelerated Cosmology Code (HACC) framework for a study on performance portability on a heterogeneous computing device. We use Intel® OneAPI toolkit [3] to build the OpenCL and SYCL programs, and evaluate the performance of both implementations on Intel® integrated GPUs. We find that the SYCL implementation can achieve the same performance as the OpenCL implementation after we specify a target backend for the compiler to build the SYCL program in offline compilation. Without the specification of a target backend, the runtime will have to compile intermediate device codes for a target platform. Such runtime overhead may become significant compared to the execution of a kernel on a target device. As the kernel routine is compute-bound, we evaluate the impact of the number of compute units upon the kernel’s raw performance using two GPUs. When the hardware resource is not underutilized, we can obtain almost linear performance speedup from 48 compute units to 72 compute units in offline compilation, which indicates that the number of compute units on a GPU are important to improving the raw performance of a compute-bound kernel. The experimental results show that SYCL is a promising programming model for heterogeneous computing. The remainder of the report is organized as follows: In Section II, we describe the SYCL programming model, the steps to map an OpenCL program to a SYCL program, and the architecture of an integrated GPU. Section III introduces the kernel routine, and presents the OpenCL and SYCL implementations of the kernel. In Section IV, we evaluate the performance of the implementations on the GPUs. Section V concludes the report.

97 MATHEMATICS AND COMPUTING↗

Improving the Performance of Medical Imaging Applications using SYCL

In this report, we are interested in applying the SYCL programming model to medical imaging applications for a study on performance portability and programming productivity. The SYCL standard specifies a cross-platform abstraction layer that enables programming of heterogeneous computing systems using standard C++. As opposed to the Open Computing Language (OpenCL) programming model, in which host and device code are generally written in different programming languages [1], SYCL can combine host and device code for an application in a type-safe way to improve development productivity and performance portability.

97 MATHEMATICS AND COMPUTING↗

High Fidelity Computational Model for Fluidized Bed Experiments (Final Report)

MFiX was integrated with preconditioners and linear solver packages in Trilinos via MFIX, Fortran, C, and C++ wrappers. The MFIX wrapper interpreted the structure of the matrix and vector from MFiX while the Fortran wrapper transfers this information to a low-level language, C. C-wrapper transforms the memory semantic between Fortran and C++ language. C++ wrapper passes the matrix and vector to a Trilinos package and gets the solution. This solution was transferred to MFiX via C++, C, Fortran, MFIX wrapper. The framework is used to integrate first, second and third generation linear solvers in Trilinos with MFiX.

20 FOSSIL-FUELED POWER PLANTS↗

High Fidelity Computational Model for Fluidized Bed Experiments

MFiX was integrated with preconditioners and linear solver packages in Trilinos via MFiX, Fortran, C, and C++ wrappers. The MFiX wrapper interpreted the structure of the matrix and vector from MFiX while the Fortran wrapper transfered this information to a low-level language, C. The C-wrapper transformed the memory semantic between Fortran and C++ language. The C++ wrapper passed the matrix and vector to a Trilinos package and got the solution. This solution was transferred to MFiX via C++, C, Fortran, MFiX wrapper. The framework was used to integrate first, second, and third generation linear solvers in Trilinos with MFiX.

20 FOSSIL-FUELED POWER PLANTS↗

Improving the performance of medical imaging applications using SYCL

As opposed to the Open Computing Language (OpenCL) programming model, in which host and device codes are generally written in different programming languages, SYCL can combine host and device codes for an application in a type-safe way to improve development productivity and performance portability. Hence, this report shows the experimental results of applying the SYCL programming model to medical imaging applications for a study on performance portability and programming productivity between OpenCL and SYCL. Rodinia is a widely used open-source benchmark suite for heterogeneous computing. We choose two medical imaging applications (Heart Wall and Particle Filter) in the benchmark suite, migrate the OpenCL implementations of the applications to the SYCL implementations, and evaluate their performance and productivity on Intel® microprocessors that contain a central processing unit (CPU) and an integrated graphics processing unit (GPU). The maturing SYCL compilers, which are based on a conformant implementation of the SYCL 1.2.1 Khronos specification, have been actively optimized for Intel® computing platforms. The experimental results are promising in terms of the raw performance and productivity. Although the SYCL implementation of the Heart Wall application does not execute successfully on a CPU, the SYCL implementations of the application can achieve comparable or better performance than the OpenCL implementation on Intel® integrated GPUs. For the Particle Filter application, the performance difference between the SYCL and OpenCL implementations is comparable on the GPUs for most cases, but the SYCL implementations are on average 4X faster than the OpenCL implementations on Intel® Xeon® CPUs. For programming productivity, we arguably use lines of code as a way to measure programming productivity in software. The SYCL programs reduce the lines of code of the OpenCL programs by 52% and 38% for the Heart Wall and Particle Filter, respectively. The results indicate that SYCL is a promising programming model for heterogeneous computing with the maturing compilers. We organize the remainder of the report as follows. Section II introduces the SYCL programming model, compares the major differences between an OpenCL program and a SYCL program, and describes the characteristics of the two applications. Section III describes the SYCL programming model in more details, and shows the SYCL implementation of a kernel function in the Particle Filter application as an example. In Section IV, we evaluate the performance of the applications on the CPUs and GPUs. Section V concludes the report.

59 BASIC BIOLOGICAL SCIENCES↗

The Rodinia Benchmark Suite in SYCL

As opposed to the Open Computing Language (OpenCL) programming model in which host and device codes are generally written in different programming languages, SYCL can combine host and device codes for an application in a type-safe way to improve development productivity and performance portability. Rodinia is a widely used benchmark suite for heterogeneous computing. Hence, we port the OpenCL implementations of the benchmark suite to SYCL manually. The SYCL benchmark suite is an opensource project for tracking the development of the mainstream SYCL compilers, and for developers and researchers interested in programming productivity, performance analysis, and portability across different computing platforms. We organize the remainder of the report as follows. Section II introduces the SYCL programming model, shows the major differences between an OpenCL program and a SYCL program, and gives a summary of the benchmark suite. In Section III, we describe our SYCL implementations in more details. We evaluate the SYCL benchmarks on the Intel® central processing units (CPUs) and graphics processing units (GPUs) in Section IV. Section V concludes the report.

97 MATHEMATICS AND COMPUTING↗

The 2018 U.S. Nuclear Posture Review, NATO's Brussels Summit and Beyond

The NATO allies must react to the nuclear policy and posture choices of the Trump administration. In some respects, there are good reasons why the Alliance should move closer to the Trump Administration. In other cases, Allies should seek agreement on slightly different policies. While it is unrealistic to expect that the NATO allies will be able to resolve all the questions posed by the 2018 Nuclear Posture Review at the Summit in Brussels, there are several things that they should be able to agree upon. This includes more specific language about the Russia nuclear challenges, general recognition of U.S. efforts to bolster NATO nuclear deterrence posture, a clear language on the value of nuclear sharing arrangements, and reaffirmation of some of NATO’s statements on arms control and disarmament. Yet, a signal in Brussels of NATO’s efforts to build a new nuclear consensus would be stronger if heads of state and government initiated a broader process aimed at developing a comprehensive deterrence and defense strategy that would treat nuclear deterrence as an integral part of a multi-domain approach.

98 NUCLEAR DISARMAMENT, SAFEGUARDS, AND PHYSICAL P↗

Hardware Evaluation: Abstract Machine Models and Proxy Architectures for Exascale Computing

The strategic and economic impacts of high performance computing (HPC) systems, over the last several decades, have enabled dramatic improvements in manufacturing, design, development, and research, across almost every sector of the U.S. economy, including genetic analysis for agriculture and medicine, oil exploration, electronics, aircraft, and automotive design, and of course national defense technologies. HPC has repeatedly compounded reductions in time-to-solution and time-to-market in each of these areas. In recognition of these strategic and economic impacts, the Department of Energy (DOE) created the Exascale Computing Project (ECP) as a broad-based technology project focusing on simultaneously co-evolving high-performance computing architecture, system software, and application software. While many details of the exascale architectures are undefined, communicating the form and direction of this co-evolution of advances, in each of these three components, across the project, presents a need for a common language through which these advances can be shared. In this document we present a series of abstract representations designed to allow application developers to focus on the aspects of the machine that are important or relevant to performance and code structure. These abstract machine models (AMMs) describe the proposed architectures at the component and system level and are intended as communication aids between application developers and hardware architects during the co-design process. In addition to providing a common language for communication, the constraints of protecting the intellectual property of ECP’s vendor partners requires that the architectural advances be presented in an abstract sense, rather than exposing the specifics of an individual vendor’s designs, while still providing enough detail such that application developers will be able to reason about the performance trade-offs in the design space of their applications.

97 MATHEMATICS AND COMPUTING↗

PV-RPM V2.0 beta - SAM Implementation. DRAFT User Instructions

This user manual is intended to provide instructions to volunteer beta testers on how to use Sandia National Laboratories (SNL) PV Reliability Performance Model (PV-RPM) features in the National Renewable Energy Laboratory (NREL) System Advisor Model (SAM) version 2017.1.17 r4 (NREL, 2017). This new feature is provided in SAM to allow users with reliability data the ability to develop and run scenarios where PV performance and costs are impacted from components that can fail stochastically. This is intended to be an advanced user feature as it requires knowledge and data regarding different PV component failure modes. It also relies heavily on the SAM LK scripting language, which is not utilized by a majority of SAM users. NREL has published a SAM LK users guide (Dobos, 2017) and has multiple online help topics and videos to get users familiar with the scripting language and what it can do. This user instruction manual will provide some background on how data collected from a PV system can be used as inputs in the PV-RPM model, which will give data owners the ability to develop their own reliability and repair distributions outside of the example provided here.

14 SOLAR ENERGY↗