Search NASA⌕ Search

Engineering topics

Richardson, Brad

Publications and source records attributed to Richardson, Brad.

At least 19 records

Lowering and Runtime Support for Fortran’s Multi-Image Parallel Features using LLVM Flang, PRIF, and Caffeine

This paper provides an overview of the multi-image parallel features in Fortran 2023 and their implementation in the LLVM flang compiler and the Caffeine parallel runtime library. The features of interest support a Single-Program, Multiple-Data (SPMD) programming model based on executing multiple “images”, each of which is a program instance. The features also support a Partitioned Global Address Space (PGAS) in the form of “coarray” distributed data structures. The paper discusses the lowering of multi-image features to the Parallel Runtime Interface for Fortran (PRIF) and the implementation of PRIF in the Caffeine parallel runtime library. This paper also provides an early view into the design of a new multi-image dialect of the LLVM Multi-Level Intermediate Representation (MLIR). We describe validation and testing of the resulting software stack, and demonstrate that performance compares favorably to another open-source compiler and runtime library: GNU Compiler Collection (GCC) gfortran and OpenCoarrays, respectively.

Bonachea, Dan↗

Automatically parallelizing batch inference on deep neural networks using Fiats and Fortran 2023 `do concurrent`

This paper introduces novel programming strategies that leverage features of the Fortran 2023 standard of the International Standards Organization (ISO) to automatically parallelize computations on deep neural networks. The paper focuses on the interplay of object-oriented, parallel, and functional programming paradigms in the Fiats deep learning library. We demonstrate how several infrequently used language features play a role in enabling efficient, parallel execution. Specifically, the ability to explicitly declare that a procedure is pure facilitates inference in the context of the language’s loop-parallelism construct `do concurrent`. Also, explicitly prohibiting the overriding of a parent type’s type-bound procedures eliminates the need for dynamic dispatch in performance-critical code. Finally, this paper uses batch inference calculations on a neural network surrogate for atmospheric aerosol dynamics to demonstrate that LLVM Flang compiler’s automatic parallelization of `do concurrent` achieves roughly the same performance and scalability as achieved by OpenMP compiler directives. We also demonstrate that double-precision inference costs 37–72% longer runtime than default-real precision with most values in the range 57-60%.

Rouson, Damian↗

Parallel Runtime Interface for Fortran (PRIF): A Multi-Image Solution for LLVM Flang

Fortran compilers that provide support for Fortran’s native parallel features often do so with a runtime library that depends on details of both the compiler implementation and the communication library, while others provide limited or no support at all. This paper introduces a new generalized interface that is both compiler- and runtime-library-agnostic, providing flexibility while fully supporting all of Fortran’s parallel features. The Parallel Runtime Interface for Fortran (PRIF) was developed to be portable across shared- and distributed-memory systems, with varying operating systems, toolchains and architectures. It achieves this by defining a set of Fortran procedures corresponding to each of the parallel features defined in the Fortran standard that may be invoked by a Fortran compiler and implemented by a runtime library. PRIF aims to be used as the solution for LLVM Flang to provide parallel Fortran support. This paper also briefly describes our PRIF prototype implementation: Caffeine.

Bonachea, Dan↗

A Full-Stack Exploration of Language-Based Parallelism in Fortran 2023

This poster explores native parallel features in Fortran 2023 through the lens of supporting applications with libraries, compilers, and parallel runtimes. The language revision informally named Fortran 2008 introduced parallelism in the form of Single Program Multiple Data (SPMD) execution with two broad feature sets: (1) loop-level parallelism via do concurrent and (2) a Partitioned Global Address Space (PGAS) comprised of distributed “coarray” data structures. Fortran’s native parallelism has demonstrated high performance [1] and reduced the burden of inserting what sometimes amounts to more directives than code. Several compilers support both feature sets, typically by translating do concurrent into serial do loops annotated by parallel directives and by translating SPMD/PGAS features into direct calls to a communication library. Our research focuses primarily on two questions: (1) can the compiler’s parallel runtime library be developed in the language being compiled (Fortran) and (2) can we define an interface to the runtime that liberates compilers from being hardwired to one runtime and vice versa. We are answering these questions by developing the Parallel Runtime Interface for Fortran (PRIF) [2] and the Co-Array Fortran Framework of Efficient Interfaces to Network Environments (Caffeine) [3]. Caffeine is initially targeting adoption by LLVM Flang, a new open-source Fortran compiler developed by a broad community in industry, academia, and government labs. We are also exploring the use of these features in Inference-Engine, a deep learning library designed to facilitate neural network training and inference for high-performance computing applications written in modern Fortran.

Rasmussen, Katherine↗

Parallel Runtime Interface for Fortran (PRIF) Specification (Rev. 0.4)

This document specifies an interface to support the parallel features of Fortran, named the Parallel Runtime Interface for Fortran (PRIF). PRIF is a proposed solution in which the runtime library is responsible for coarray allocation, deallocation and accesses, image synchronization, atomic operations, events, and teams. In this interface, the compiler is responsible for transforming the invocation of Fortran-level parallel features into procedure calls to the necessary PRIF procedures. The interface is designed for portability across shared- and distributed-memory machines, different operating systems, and multiple architectures. Implementations of this interface are intended as an augmentation for the compiler's own runtime library. With an implementation-agnostic interface, alternative parallel runtime libraries may be developed that support the same interface. One benefit of this approach is the ability to vary the communication substrate. A central aim of this document is to define a parallel runtime interface in standard Fortran syntax, which enables us to leverage Fortran to succinctly express various properties of the procedure interfaces, including argument attributes.

97 MATHEMATICS AND COMPUTING↗

Scheduling and Performance of Asynchronous Tasks in Fortran 2018 with FEATS

Most parallel scientific programs contain compiler directives (pragmas) such as those from OpenMP (Hermanns in Parallel programming in Fortran 95 using openMP, 2002. School of Aeronautical Engineering, Universidad Politécnica de Madrid, España, 2011), explicit calls to runtime library procedures such as those implementing the Message Passing Interface (MPI) (in A message-passing interface standard version 4.0, 2021. https://www.mpi-forum.org/docs/mpi-4.0/mpi40-report.pdf), or compiler-specific language extensions such as those provided by CUDA (Ruetsch and Fatica in CUDA Fortran for scientists and engineers: best practices for efficient CUDA Fortran programming, Elsevier, 2013). By contrast, the recent Fortran standards empower developers to express parallel algorithms without directly referencing lower-level parallel programming models (Numrich in Parallel programming with co-arrays, CRC Press, 2018, and Curcic in Modern Fortran: building efficient parallel applications, Manning Publications, 2020). Fortran’s parallel features place the language within the Partitioned Global Address Space (PGAS) class of programming models. When writing programs that exploit data parallelism, application developers often find it straightforward to develop custom parallel algorithms. Problems involving complex, heterogeneous, staged calculations, however, pose much greater challenges. Such applications require careful coordination of tasks in a manner that respects dependencies prescribed by a directed acyclic graph. When rolling one’s own solution proves difficult, extending a customizable framework becomes attractive. Further, the paper presents the design, implementation, and use of the Framework for Extensible Asynchronous Task Scheduling (FEATS), which we believe to be the first task scheduling tool written in modern Fortran. We describe the benefits and compromises associated with choosing Fortran as the implementation language, and we propose ways in which future Fortran standards can best support the use case in this paper.

97 MATHEMATICS AND COMPUTING↗

Parallel Runtime Interface for Fortran (PRIF) Design Document (Rev. 0.2)

This design document proposes an interface to support the parallel features of Fortran, named the Parallel Runtime Interface for Fortran (PRIF). PRIF is a proposed solution in which the runtime library is responsible for coarray allocation, deallocation and accesses, image synchronization, atomic operations, events, and teams. In this interface, the compiler is responsible for transforming the invocation of Fortran-level parallel features into procedure calls to the necessary PRIF procedures. The interface is designed for portability across shared- and distributed-memory machines, different operating systems, and multiple architectures. Implementations of this interface are intended as an augmentation for the compiler's own runtime library. With an implementation-agnostic interface, alternative parallel runtime libraries may be developed that support the same interface. One benefit of this approach is the ability to vary the communication substrate. A central aim of this document is to define a parallel runtime interface in standard Fortran syntax, which enables us to leverage Fortran to succinctly express various properties of the procedure interfaces, including argument attributes.

97 MATHEMATICS AND COMPUTING↗

Framework for Extensible, Asynchronous Task Scheduling (FEATS) in Fortran

Most parallel scientific programs contain compiler directives (pragmas) such as those from OpenMP, explicit calls to runtime library procedures such as those implementing the Message Passing Interface (MPI), or compiler-specific language extensions such as those provided by CUDA. By contrast, the recent Fortran standards empower developers to express parallel algorithms without directly referencing lower-level parallel programming models. Fortran’s parallel features place the language within the Partitioned Global Address Space (PGAS) class of programming models. When writing programs that exploit data-parallelism, application developers often find it straightforward to develop custom parallel algorithms. Problems involving complex, heterogeneous, staged calculations, however, pose much greater challenges. Such applications require careful coordination of tasks in a manner that respects dependencies prescribed by a directed acyclic graph. When rolling one’s own solution proves difficult, extending a customizable framework becomes attractive. The paper presents the design, implementation, and use of the Framework for Extensible Asynchronous Task Scheduling (FEATS), which we believe to be the first task-scheduling tool written in modern Fortran. We describe the benefits and compromises associated with choosing Fortran as the implementation language, and we propose ways in which future Fortran standards can best support the use case in this paper.

Richardson, Brad↗

Caffeine v0.1.0

Caffeine is the CoArray Fortran Framework of Efficient Interfaces to Network Environments. Caffeine aims to produce a parallel runtime library that will support Fortran compilers with a programming-model-agnostic application binary interface (ABI) to various lower-level communication libraries. The current version of Caffeine uses the GASNet-EX networking middleware, also developed at Berkeley Lab. On many combinations of applications and platforms, GASNet-EX outperforms the widely used Message Passing Interface (MPI). Through GASNet-EX's support for communicating between graphics processing units (GPU), GASNet-EX has features that specifically target the emerging, leading-edge exascale computing platforms.

Rouson, Damian↗

Iterative hybrid manufacture of a titanium alloy component

Here, this paper describes an iterative hybrid (additive + subtractive) manufacturing approach for a titanium alloy (Ti6Al4V) part using a laser hotwire directed energy deposition system (LHWDED) and a traditional four-axis milling machine tool. The term iterative hybrid manufacturing is used to described hybrid manufacturing where the additive and subtractive operations occur in multiple stages rather than sequentially. It is currently common to produce an entire part by sequential hybrid manufacturing by additively manufacturing (AM) an entire preform geometry that then requires post processing by another machine tool to create final part features. By contrast, a part produced by iterative hybrid manufacturing (IHM) does not produce the entire preform geometry in a single AM process. Instead, a portion of the entire preform geometry is manufactured by an AM process, then that portion is transferred to another machine tool which creates features in that portion, and then that machined portion is transferred back to the AM machine to complete another AM process. There is no limit to the number of iterations that an IHM process can have. IHM offers several advantages over sequential hybrid manufacturing such as the use of shorter and stiffer subtractive tooling, better access to part geometries that require subtractive processes, and the separation of the AM heat source from the subtractive machine tool. A titanium alloy demonstration part was successfully manufactured by IHM with three iterations using a shared pallet system between the AM machine tool and the subtractive machine tool.

Hybrid manufacturing↗

Accelerating Large-Format Metal Additive Manufacturing: How Controls R&D is Driving Speed, Scale, and Efficiency

This article highlights work at Oak Ridge National Laboratory’s Manufacturing Demonstration Facility to develop closed-loop, feedback control for laser-wire based Directed Energy Deposition, a form of metal Big Area Additive Manufacturing (m-BAAM), a process being developed in partnership with GKN Aerospace specifically for the production of Ti-6Al-4V pre-forms for aerospace components. A large-scale structural demonstrator component is presented as a case-study in which not just control, but the entire 3D printing workflow for m-BAAM is discussed in detail, including design principles for large-format metal AM, toolpath generation, parameter development, process control, and system operation, as well as post-print net-shape geometric analysis and finish machining. In terms of control, a multi-sensor approach has been utilized to measure both layer height and melt pool size, and multiple modes of closed-loop control have been developed to manipulate process parameters (laser power, print speed, deposition rate) to control these variables. Layer height control and melt pool size control have yielded excellent local (intralayer) and global (component-level) geometry control, and the impact of melt pool size control in particular on thermal gradients and material properties is the subject of continuing research. Further, these modes of control have allowed the process to advance to higher deposition rates (exceeding 7.5 lb/hr), larger parts (1-meter scale), shorter build times, and higher overall efficiency. The control modes are examined individually, highlighting their development, demonstration, and lessons learned, and it is shown how they operate concurrently to enable the printing of a large-scale, near net shape Ti-6Al-4V component.

Gibson, Brian↗

Effect of Interlayer Cooling Time, Constraint and Tool Path Strategy on Deformation of Large Components Made by Laser Metal Deposition with Wire

Laser metal deposition with wire (LMD-w) is a developing additive manufacturing (AM) technology that has a high deposition material rate and efficiency and is suitable for fabrication of large aerospace components. However, control of material properties, geometry, and residual stresses is needed before LMD-w technology can be widely adopted for the construction of critical structural components. In this study, we investigated the effect of interlayer cooling time, clamp constraints, and tool path strategy on part distortion and residual stresses in large-scale laser additive manufactured Ti-6Al-4V components using finite element method (FEM). The simulations were validated with the temperature and the distortion measurements obtained from a real LMD-w process. We found that a shorter interlayer cooling time, full clamping constraints on the build plates, and a bidirectional tool path with 180° rotation minimized part distortion and residual stresses and resulted in symmetric stress distribution.

36 MATERIALS SCIENCE↗

Additively Manufactured Single-Use Molds and Reusable Patterns for Large Automotive and Hydroelectric Components

Additive manufacturing (AM) has the potential to reduce costs in the casting industry, particularly for large parts (i.e., components with any dimension > 12 in.). In this study, pilot-scale production case studies of hydroelectric and automotive parts were used to evaluate two AM-enabled casting methods: the direct printing of sand molds by binder jet and printing of reusable cope and drag patterns for sand casting. An additional benefit was found when additively manufactured patterns were used in combination with heat-treat free aluminum alloys, to produce castings of complex hydrodynamic surfaces. These parts previously required production via subtractive machining due to part distortion induced by the quench step of heat treatments. The machine types used for the three case studies are sand-binder jet, high-resolution polymer fused deposition modeling (FDM), and big area additive manufacturing (BAAM) FDM in combination with CNC machining. Each method demonstrated distinct advantages over traditional casting practices in particular use cases. Single-use molds show great reductions in start-up cost to produce one-off or legacy parts, and additively manufactured impression patterns show promise for innovating the tooling design process for complex geometry and large castings.

36 MATERIALS SCIENCE↗

MELT POOL MONITORING FOR CONTROL AND DATA ANALYTICS IN LARGE-SCALE METAL ADDITIVE MANUFACTURING

Laser-wire based Directed Energy Deposition (DED) processes are being developed at Oak Ridge National Laboratory’s Manufacturing Demonstration Facility, in collaboration with GKN Aerospace, for large volume metal additive manufacturing of metallic structures. The technology has the potential to deliver reduced costs and lead times when compared to conventional methods of manufacturing in several industries. While complex structures are being produced with relatively high deposition rates and at near-net shape, issues persist with achieving consistent geometric accuracy and thermal stability. A significant research effort is focused on developing coordinated, multi-modal sensing and control for addressing these issues. An introduction to this large-volume metal process will be provided, followed by investigations into real-time thermal monitoring capabilities that support control and data analytics frameworks. Studies focused on melt pool monitoring via infrared thermography, thermal and geometric effects on melt pool size measurement, and interactions between process variables and thermal monitoring metrics are presented.

Gibson, Brian↗

Introduction to the design rules for Metal Big Area Additive Manufacturing

Wire feed metal additive manufacturing offers advantages, such as large build volumes and high build rates, over powder bed and blown powder techniques, but it has its own disadvantages, i.e., lower feature resolution and bead morphology control issues. A new wire feed metal additive manufacturing process called Metal Big Area Additive Manufacturing (mBAAM) uses a Gas Metal Arc Weld system on an articulated robot arm to increase build volume and deposition rate in comparison to powder bed techniques. The high deposition rate implies a low-resolution process; therefore, parts designed for mBAAM must incorporate the use of machining to achieve certain features. Here, this paper presents an introduction to how design rules, such as overhang constraint, large weld bead thickness, and support structure, for mBAAM interact in the context of an excavator arm case study, which was designed using topology optimization.

42 ENGINEERING↗

Correlations of Interlayer Time with Distortion of Large Ti-6Al-4V Components in Laser Metal Deposition with Wire

Laser metal deposition with wire (LMD-w) is one of the emerging additive manufacturing (AM) technologies for large-scale aerospace components due to high deposition rates and material efficiency. However, it often results in undesired stresses and distortions due to non-uniform expansion and contraction of material during the printing. Controlling of inter-layer time, preheating and clamping is the effective method to mitigate the thermally induced stress and deformation. In this study, the effect of inter-layer time on the part distortion is investigated using finite element method (FEM). The model accounts for actual tool path, power and cooling conditions. The results show that the model effectively captures the fluctuation of the Ti-6Al-4V plate during printing. Also, it shows an asymmetric distortion on the plate edges. Ultimately, the sequentially coupled thermal-stress simulation provided a quantitative understanding of the inter-layer cooling time on the Ti plate distortion for the large-scale LMD-w process.

Lee, Yousub↗

Effect of Inter-layer Cooling Time on Distortion and Mechanical Properties in Metal Additive Manufacturing (AM)

Laser Metal Deposition with wire (LMD-w) is one of the novel Direct Energy Deposition (DED) processes that is gaining attention in aerospace industry due to the potential cost and lead time reductions for large-scale components. However, improving process parameters (for example, laser power, wire feed rate, robotic travel speed, inter-layer cooling time, etc.) is still under development. These parameters affect thermal gradients that cause residual stresses that in-turn influence distortion. These parameters also affect mechanical properties. Inter-layer cooling time, specifically, is one of the main factors for total production time, and it is used to help mitigate distortion. Therefore, this paper investigated the effects of different inter-layer cooling times on both distortion and mechanical properties. Distortion of deposited Ti-6Al-4V walls was measured automatically using a laser scanner. Finally, suitable recommendations are discussed to optimize the inter-layer cooling time to fabricate components with desired mechanical properties.

Bandari, Yashwanth Kumar↗