Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “Parallel algorithms”

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 775 records · Page 43

Memory-Aware External Facelist Calculation: A Data-Parallel Atomic Hash Counting Approach

Unstructured volumetric meshes serve as fundamental data representations in various scientific simulations and analyses. They play a crucial role in representing complex computational domains and are essential for important numerical techniques, such as finite element analysis. Whenever such a mesh is read from a file, streamed in-situ, or generated by algorithms, scientific visualization libraries rely on calculating the external surface of a geometry, named “external facelist”, to produce a polygonal mesh for rendering. Consequently, external facelist calculation has become one of the most widely used algorithms in the scientific visualization domain, necessitating optimal performance. In this paper, we explore relevant work on external facelist calculation algorithms in two common visualization libraries, VTK and Viskores, assess their performance and memory constraints, and introduce a novel memory-aware external facelist calculation algorithm employing an atomic hash counting approach. This algorithm fully leverages Viskores' data-parallel primitive operations, facilitating its execution across diverse many-core architectures. Our algorithm features the lowest memory footprint on the GPU and the second-lowest on the CPU among all evaluated methods, and it also delivers the fastest performance on both CPU and GPU. It has been made available under an open-source license in the VTK and Viskores visualization systems.

Tsalikis, Spiros [Kitware] (ORCID:0000000151137195↗

Report on local data recovery approaches suitable for weather and climate prediction (Deliverable 1.3) (V.1.0)

Numerical weather and climate prediction rates as one of the scientific applications whose accuracy improvements greatly depend on the growth of the available computing power. As the number of cores in top computing facilities pushes into the millions, increasing average frequency of hardware and software failures forces users to review their algorithms and systems in order to protect simulations from breakdown. This report surveys approaches for fault-tolerance in numerical algorithms and system resilience in parallel simulations from the perspective of numerical weather and climate prediction systems. A selection of existing strategies is analyzed, featuring interpolation-restart and compressed checkpointing for the numerics, in-memory checkpointing, user-level failure mitigation-based and backup-based methods for the systems. Numerical examples showcase the performance of the techniques in addressing faults, with particular emphasis on iterative solvers for linear systems, a staple of atmospheric fluid flow solvers. The potential impact of these strategies is discussed in relation to current development of numerical weather prediction algorithms and systems towards the exascale. Trade-offs between performance, efficiency and effectiveness of resiliency strategies are analyzed and some recommendations outlined for future developments.

97 MATHEMATICS AND COMPUTING↗

Unorthodox parallelization for Bayesian quantum state estimation

Quantum state tomography (QST) allows for the reconstruction of quantum states through measurements and some inference technique under the assumption of repeated state preparations. Bayesian inference provides a promising platform to achieve both efficient QST and accurate uncertainty quantification, yet is generally plagued by the computational limitations associated with long Markov chains. In this work, we present a novel Bayesian QST approach that leverages modern distributed parallel computer architectures to efficiently sample a D-dimensional Hilbert space. Using a parallelized preconditioned Crank–Nicholson Metropolis–Hastings algorithm, we demonstrate our approach on simulated data and experimental results from IBM Quantum systems up to four qubits, showing significant speedups through parallelization. Although highly unorthodox in pooling independent Markov chains, our method proves remarkably practical, with validation ex post facto via diagnostics like the intrachain autocorrelation time. We conclude by discussing scalability to higher-dimensional systems, offering a path toward efficient and accurate Bayesian characterization of large quantum systems.

Bayesian inference↗

VTK-m User's' Guide (V.1.7)

High-performance computing relies on ever finer threading. Advances in processor technology include ever greater numbers of cores, hyperthreading, accelerators with integrated blocks of cores, and special vectorized instructions, all of which require more software parallelism to achieve peak performance. Traditional visualization solutions cannot support this extreme level of concurrency. Extreme scale systems require a new programming model and a fundamental change in how we design algorithms. To address these issues we created VTK-m: the visualization toolkit for multi-/many-core architectures. VTK-m supports a number of algorithms and the ability to design further algorithms through a top-down design with an emphasis on extreme parallelism. VTK-m also provides support for finding and building links across topologies, making it possible to perform operations that determine manifold surfaces, interpolate generated values, and find adjacencies. Although VTK-m provides a simplified high-level interface for programming, its template-based code removes the overhead of abstraction. VTK-m simplifies the development of parallel scientific visualization algorithms by providing a framework of supporting functionality that allows developers to focus on visualization operations. Consider the listings in Figure 1.1 that compares the size of the implementation for the Marching Cubes algorithm in VTK-m with the equivalent reference implementation in the CUDA software development kit. Because VTK-m internally manages the parallel distribution of work and data, the VTK-m implementation is shorter and easier to maintain. Additionally, VTK-m provides data abstractions not provided by other libraries that make code written in VTK-m more versatile.This book includes contributions from the VTK-m community including the VTK-m development team and the user community.

97 MATHEMATICS AND COMPUTING↗

The VTK-m Users' Guide (V.1.9)

High-performance computing relies on ever finer threading. Advances in processor technology include ever greater numbers of cores, hyperthreading, accelerators with integrated blocks of cores, and special vectorized instructions, all of which require more software parallelism to achieve peak performance. Traditional visualization solutions cannot support this extreme level of concurrency. Extreme scale systems require a new programming model and a fundamental change in how we design algorithms. To address these issues we created VTK-m: the visualization toolkit for multi-/many-core architectures. VTK-m supports a number of algorithms and the ability to design further algorithms through a top-down design with an emphasis on extreme parallelism. VTK-m also provides support for finding and building links across topologies, making it possible to perform operations that determine manifold surfaces, interpolate generated values, and find adjacencies. Although VTK-m provides a simplified high-level interface for programming, its template-based code removes the overhead of abstraction. VTK-m simplifies the development of parallel scientific visualization algorithms by providing a framework of supporting functionality that allows developers to focus on visualization operations. Consider the listings in Figure 1.1 that compares the size of the implementation for the Marching Cubes algorithm in VTK-m with the equivalent reference implementation in the CUDA software development kit. Because VTK-m internally manages the parallel distribution of work and data, the VTK-m implementation is shorter and easier to maintain. Additionally, VTK-m provides data abstractions not provided by other libraries that make code written in VTK-m more versatile.

97 MATHEMATICS AND COMPUTING↗

The VTK-m Users' Guide (V.2.0)

High-performance computing relies on ever finer threading. Advances in processor technology include ever greater numbers of cores, hyperthreading, accelerators with integrated blocks of cores, and special vectorized instructions, all of which require more software parallelism to achieve peak performance. Traditional visualization solutions cannot support this extreme level of concurrency. Extreme scale systems require a new programming model and a fundamental change in how we design algorithms. To address these issues we created VTK-m: the visualization toolkit for multi-/many-core architectures. VTK-m supports a number of algorithms and the ability to design further algorithms through a top-down design with an emphasis on extreme parallelism. VTK-m also provides support for finding and building links across topologies, making it possible to perform operations that determine manifold surfaces, interpolate generated values, and find adjacencies. Although VTK-m provides a simplified high-level interface for programming, its template-based code removes the overhead of abstraction. VTK-m simplifies the development of parallel scientific visualization algorithms by providing a framework of supporting functionality that allows developers to focus on visualization operations. Consider the listings in Figure 1.1 that compares the size of the implementation for the Marching Cubes algorithm in VTK-m with the equivalent reference implementation in the CUDA software development kit. Because VTK-m internally manages the parallel distribution of work and data, the VTK-m implementation is shorter and easier to maintain. Additionally, VTK-m provides data abstractions not provided by other libraries that make code written in VTK-m more versatile.

97 MATHEMATICS AND COMPUTING↗

ORNL_AISD_NiPt

This dataset describes the nickel-platinum (NiPt) solid solution binary alloy, where the two constituent elements nickel (Ni) and platinum (Pt) are randomly placed on the face centered cubic (FCC) crystal structure, with the lattice constant of 3.840 angstroms. The dataset comprises data for three different sizes of the crystal structure: 256 atoms, 864 atoms, and 2,048 atoms, each of which contains 1900 configurations. For each size of the crystal structure, the data set was generated for concentrations ranging from 0at% of Pt to 100at% of Pt in the NiPt binary system, with increasing the concentration of Pt in the system every 5at%. For each one of the chemical compositions, 100 random configurations were generated, each with a different random seed. Each of the output files contains the mass, type, atomic coordinates, energy per atom, and forces in x, y, and z directions respectively. For each atomic configuration, the output was collected every 150 steps during the minimization stage and every 1000 steps during the replica exchange stage. Large-scale Atomic/Molecular Massively Parallel Simulator (LAMMPS) [1], which is a molecular dynamics code, was used to generate data for NiPt alloy. The simulation used the interatomic potential for NiPt binary system MEAM_LAMMPS_KimSeolJi_2017_PtNi__MO_020840179467_001 [3] from the OpenKIM library (Open Knowledgebase of Interatomic Models) [2]. This potential was developed based on the second nearest-neighbor modified embedded-atom method (2NN MEAM). The simulation process begins with the generation of the random NiPt structure and follows with the short minimization and replica exchange simulation. The minimization procedure adjusts atomic coordinates and performs energy minimization, which typically leads to a local potential energy minimum. The method used for the minimization was the conjugate gradient algorithm. A short replica exchange (parallel tempering) simulation involves four replicas (ensembles) of a system and follows the minimization stage. Multiple snapshots of the configuration were collected during the minimization and replica exchange stages. NiPt alloy is interesting due to its magnetic and charge transfer properties [4]. The data is provided in three compressed zipped folders: atoms256.zip, atoms864.zip, atoms2048.zip Each zipped folder contains the data that describes crystals of size 256 atoms, 864 atoms, and 2,048 atoms respectively. Each one of the three zipped folders contains the data structured in the following way: -Ni_ground_state.cfg --> atomic configuration for the pure nickel -Pt_ground_state.cfg --> atomic configuration for the pure platinum -Pt#_filtered --> folders containing atomic configurations for #at% concentration of platinum. The folder contains 100 atomic configurations, each saved in a subfolder. Each subfolder named config* is associated with a specific atomic configuration. Each of these subfolders contains files with .cfg format, corresponding to outputs for each atomic configuration The total number of atomic configurations contained in atoms256.zip is 65,046. The total number of atomic configurations contained in atoms864.zip is 63,936. The total number of atomic configurations contained in atoms2048.zip is 61,997. The total number of atomic configurations spanned by the entire dataset is 190,979. References [1] https://www.lammps.org/ [2] https://openkim.org/ [3] https://openkim.org/id/MEAM_LAMMPS_KimSeolJi_2017_PtNi__MO_020840179467_001 [4] El-Gendy, Ahmed A. and Hampel, Silke and Büccchner, Bernd and Klingeler, Rüdiger, Tuneable magnetic properties of carbon-shielded NiPt-nanoalloys, RSC Adv., volume 6, issue 57, pages 52427-52433, 2016, The Royal Society of Chemistry, doi:10.1039/C6RA05910D

36 MATERIALS SCIENCE↗

ORNL_AISD_NiPt_108atoms

This dataset describes the nickel-platinum (NiPt) solid solution binary alloy, where the two constituent elements nickel (Ni) and platinum (Pt) are randomly placed on the face centered cubic (FCC) crystal structure, with the lattice constant of 3.840 angstroms. The dataset comprises data for crystal structures with 108 atoms with 1,900 configurations. The data set was generated for concentrations ranging from 0at% of Pt to 100at% of Pt in the NiPt binary system, with increasing the concentration of Pt in the system every 5at%. For each one of the chemical compositions, 100 random configurations were generated, each with a different random seed. Each of the output files contains the mass, type, atomic coordinates, energy per atom, and forces in x, y, and z directions respectively. For each atomic configuration, the output was collected every 150 steps during the minimization stage and every 1000 steps during the replica exchange stage. Large-scale Atomic/Molecular Massively Parallel Simulator (LAMMPS) [1], which is a molecular dynamics code, was used to generate data for NiPt alloy. The simulation used the interatomic potential for NiPt binary system 'MEAM_LAMMPS_KimSeolJi_2017_PtNi__MO_020840179467_001' [3] from the OpenKIM library (Open Knowledgebase of Interatomic Models) [2]. This potential was developed based on the second nearest-neighbor modified embedded-atom method (2NN MEAM). The simulation process begins with the generation of the random NiPt structure and follows with the short minimization and replica exchange simulation. The minimization procedure adjusts atomic coordinates and performs energy minimization, which typically leads to a local potential energy minimum. The method used for the minimization was the conjugate gradient algorithm. A short replica exchange (parallel tempering) simulation involves four replicas (ensembles) of a system and follows the minimization stage. Multiple snapshots of the configuration were collected during the minimization and replica exchange stages. NiPt alloy is interesting due to its magnetic and charge transfer properties [4]. The data is provided in a compressed zipped folders atoms108.zip. The zipped folder contains the data structured in the following way: - Ni_ground_state.cfg --> atomic configuration for the pure nickel - Pt_ground_state.cfg --> atomic configuration for the pure platinum - Pt#_filtered --> folders containing atomic configurations for #at% concentration of platinum. The folder contains 100 atomic configurations, each saved in a subfolder - Each subfolder named config* is associated with a specific atomic configuration. Each of these subfolders contains files with .cfg format, corresponding to outputs for each atomic configuration The total number of atomic configurations contained in atoms108.zip is 66,132. This dataset is an extension to the dataset ORNL_AISD_NiPt [5] that has been previously released with crystal structures of 256 atoms, 864 atoms, and 2,048 atoms, with the same methodology for data collection. References [1] https://www.lammps.org/ [2] https://openkim.org/ [3] https://openkim.org/id/MEAM_LAMMPS_KimSeolJi_2017_PtNi__MO_020840179467_001 [4] El-Gendy, Ahmed A. and Hampel, Silke and Büchner, Bernd and Klingeler, Rüdiger, Tuneable magnetic properties of carbon-shielded NiPt-nanoalloys, RSC Adv., volume 6, issue 57, pages 52427-52433, 2016, The Royal Society of Chemistry, doi:10.1039/C6RA05910D [5] M. Karabin, M. Lupo Pasini, and M. Eisenbach. ORNL_AISD_NiPt. United States: N. p., 2023. Web. doi:10.13139/OLCF/1958172.

36 MATERIALS SCIENCE↗

Segmentation of remotely sensed data using parallel region growing

The improved spatial resolution of the new earth resources satellites will increase the need for effective utilization of spatial information in machine processing of remotely sensed data. One promising technique is scene segmentation by region growing. Region growing can use spatial information in two ways: only spatially adjacent regions merge together, and merging criteria can be based on region-wide spatial features. A simple region growing approach is described in which the similarity criterion is based on region mean and variance (a simple spatial feature). An effective way to implement region growing for remote sensing is as an iterative parallel process on a large parallel processor. A straightforward parallel pixel-based implementation of the algorithm is explored and its efficiency is compared with sequential pixel-based, sequential region-based, and parallel region-based implementations. Experimental results from on aircraft scanner data set are presented, as is a discussioon of proposed improvements to the segmentation algorithm.

Tilton, J. C.↗

Soft-output decoding algorithms in iterative decoding of turbo codes

In this article, we present two versions of a simplified maximum a posteriori decoding algorithm. The algorithms work in a sliding window form, like the Viterbi algorithm, and can thus be used to decode continuously transmitted sequences obtained by parallel concatenated codes, without requiring code trellis termination. A heuristic explanation is also given of how to embed the maximum a posteriori algorithms into the iterative decoding of parallel concatenated codes (turbo codes). The performances of the two algorithms are compared on the basis of a powerful rate 1/3 parallel concatenated code. Basic circuits to implement the simplified a posteriori decoding algorithm using lookup tables, and two further approximations (linear and threshold), with a very small penalty, to eliminate the need for lookup tables are proposed.

Benedetto, S.↗

Soft-Output Decoding Algorithms in Iterative Decoding of Turbo Codes

In this article, we present two versions of a simplified maximum a posteriori decoding algorithm. The algorithms work in a sliding window form, like the Viterbi algorithm, and can thus be used to decode continuously transmitted sequences obtained by parallel concatenated codes, without requiring code trellis termination. A heuristic explanation is also given of how to embed the maximum a posteriori algorithms into the iterative decoding of parallel concatenated codes (turbo codes). The performances of the two algorithms are compared on the basis of a powerful rate 1/3 parallel concatenated code. Basic circuits to implement the simplified a posteriori decoding algorithm using lookup tables, and two further approximations (linear and threshold), with a very small penalty, to eliminate the need for lookup tables are proposed.

Benedetto, S.↗

Quantum multi-programming for Grover’s search

Quantum multi-programming is a method utilizing contemporary noisy intermediate-scale quantum computers by executing multiple quantum circuits concurrently. Despite early research on it, the research remains on quantum gates or small-size quantum algorithms without correlation. In this paper, we propose a quantum multi-programming (QMP algorithm for Grover's search. Our algorithm decomposes Grover's algorithm by the partial diffusion operator and executes the decomposed circuits in parallel by QMP. We proved that this new algorithm increases the rotation angle of the Grover operator which, as a result, increases the success probability. The new algorithm is implemented on IBM quantum computers and compared with the canonical Grover's algorithm and other variations of Grover's algorithms. So, the empirical tests validate that our new algorithm outperforms other variations of Grover's algorithms as well as the canonical Grover's algorithm.

97 MATHEMATICS AND COMPUTING↗

Dynamic load balancing with enhanced shared-memory parallelism for particle-in-cell codes

Furthering our understanding of many of today’s interesting problems in plasma physics – including plasma based acceleration and magnetic reconnection with pair production due to quantum electrodynamic effects – requires large-scale kinetic simulations using particle-in-cell (PIC) codes. However, these simulations are extremely demanding, requiring that contemporary PIC codes be designed to efficiently use a new fleet of exascale computing architectures. To this end, the key issue of parallel load balance across computational nodes must be addressed. We discuss the implementation of dynamic load balancing by dividing the simulation space into many small, self-contained regions or ‘‘tiles,’’ along with shared-memory (e.g., OpenMP) parallelism both over many tiles and within single tiles. The load balancing algorithm can be used with three different topologies, including two space-filling curves. Here, we tested this implementation in the code Osiris and show low overhead and improved scalability with OpenMP thread number on simulations with both uniform load and severe load imbalance. Compared to other load-balancing techniques, our algorithm gives order-of-magnitude improvement in parallel scalability for simulations with severe load imbalance issues.

97 MATHEMATICS AND COMPUTING↗

Variable-Complexity Multidisciplinary Optimization on Parallel Computers

This report covers work conducted under grant NAG1-1562 for the NASA High Performance Computing and Communications Program (HPCCP) from December 7, 1993, to December 31, 1997. The objective of the research was to develop new multidisciplinary design optimization (MDO) techniques which exploit parallel computing to reduce the computational burden of aircraft MDO. The design of the High-Speed Civil Transport (HSCT) air-craft was selected as a test case to demonstrate the utility of our MDO methods. The three major tasks of this research grant included: development of parallel multipoint approximation methods for the aerodynamic design of the HSCT, use of parallel multipoint approximation methods for structural optimization of the HSCT, mathematical and algorithmic development including support in the integration of parallel computation for items (1) and (2). These tasks have been accomplished with the development of a response surface methodology that incorporates multi-fidelity models. For the aerodynamic design we were able to optimize with up to 20 design variables using hundreds of expensive Euler analyses together with thousands of inexpensive linear theory simulations. We have thereby demonstrated the application of CFD to a large aerodynamic design problem. For the predicting structural weight we were able to combine hundreds of structural optimizations of refined finite element models with thousands of optimizations based on coarse models. Computations have been carried out on the Intel Paragon with up to 128 nodes. The parallel computation allowed us to perform combined aerodynamic-structural optimization using state of the art models of a complex aircraft configurations.

Grossman, Bernard↗

Optimal parallel solution of sparse triangular systems

A method for the parallel solution of triangular sets of equations is described that is appropriate when there are many right-handed sides. By preprocessing, the method can reduce the number of parallel steps required to solve Lx = b compared to parallel forward or backsolve. Applications are to iterative solvers with triangular preconditioners, to structural analysis, or to power systems applications, where there may be many right-handed sides (not all available a priori). The inverse of L is represented as a product of sparse triangular factors. The problem is to find a factored representation of this inverse of L with the smallest number of factors (or partitions), subject to the requirement that no new nonzero elements be created in the formation of these inverse factors. A method from an earlier reference is shown to solve this problem. This method is improved upon by constructing a permutation of the rows and columns of L that preserves triangularity and allow for the best possible such partition. A number of practical examples and algorithmic details are presented. The parallelism attainable is illustrated by means of elimination trees and clique trees.

Alvarado, Fernando L.↗

Distributed Multi-GPU Community Detection on Exascale Computing Platforms

Community detection is a fundamental operation in graph mining, and by uncovering hidden structures and patterns within complex systems it helps solve fundamental problems pertaining to social networks, such as information diffusion, epidemics, and recommender systems. Scaling graph algorithms for massive networks becomes challenging on modern distributed-memory multi-GPU (Graphics Processing Unit) systems due to limitations such as irregular memory access patterns, load imbalances, higher communication-computation ratios, and cross-platform support. We present a novel algorithm HiPDPL-GPU (distributed parallel Louvain) to address these challenges. We conduct experiments involving different partitioning techniques to achieve optimized performance of HiPDPL-GPU on the two largest supercomputers: Frontier and Summit. Remarkably, HiPDPL-GPU processes a graph with 4.2 billion edges in less than 3 minutes using 1024 GPUs. Qualitatively performance of HiPDPL-GPU is similar or better compared to other state-of-the-art CPU- and GPU-based implementations. While prior GPU implementations have predominantly employed CUDA, our first-of-its-kind implementation for community detection is cross-platform, accommodating both AMD and NVIDIA GPUs.

graph algorithms, high performance comptuing↗

Using parallel banded linear system solvers in generalized eigenvalue problems

Subspace iteration is a reliable and cost effective method for solving positive definite banded symmetric generalized eigenproblems, especially in the case of large scale problems. This paper discusses an algorithm that makes use of two parallel banded solvers in subspace iteration. A shift is introduced to decompose the banded linear systems into relatively independent subsystems and to accelerate the iterations. With this shift, an eigenproblem is mapped efficiently into the memories of a multiprocessor and a high speed-up is obtained for parallel implementations. An optimal shift is a shift that balances total computation and communication costs. Under certain conditions, we show how to estimate an optimal shift analytically using the decay rate for the inverse of a banded matrix, and how to improve this estimate. Computational results on iPSC/2 and iPSC/860 multiprocessors are presented.

Zhang, Hong↗

Using parallel banded linear system solvers in generalized eigenvalue problems

Subspace iteration is a reliable and cost effective method for solving positive definite banded symmetric generalized eigenproblems, especially in the case of large scale problems. This paper discusses an algorithm that makes use of two parallel banded solvers in subspace iteration. A shift is introduced to decompose the banded linear systems into relatively independent subsystems and to accelerate the iterations. With this shift, an eigenproblem is mapped efficiently into the memories of a multiprocessor and a high speedup is obtained for parallel implementations. An optimal shift is a shift that balances total computation and communication costs. Under certain conditions, we show how to estimate an optimal shift analytically using the decay rate for the inverse of a banded matrix, and how to improve this estimate. Computational results on iPSC/2 and iPSC/860 multiprocessors are presented.

DISTRIBUTED MEMORY MULTIPROCES↗