DOE PAGES title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Tausch: A halo exchange library for large heterogeneous computing systems using MPI, OpenCL, and CUDA

Abstract

Exchanging halo data is a common task in modern scientific computing applications and efficient handling of this operation is critical for the performance of the overall simulation. Tausch is a novel header-only library that provides a simple API for efficiently handling these types of data movements. Tausch supports both simple CPU-only systems, but also more complex heterogeneous systems with both CPUs and GPUs. It currently supports both OpenCL and CUDA for communicating with GPGPU devices, and allows for communication between GPGPUs and CPUs. The API allows for drop-in replacement in existing codes and can be used for the communication layer in new codes. This paper provides an overview of the approach taken in Tausch, and a performance analysis that demonstrates expected and achieved performance. Here, we highlight the ease of use and performance with three applications: First Tausch is compared to the halo exchange framework from two Mantevo applications, HPCCG and miniFE, and then it is used to replace a legacy halo exchange library in the flexible multigrid solver framework Cedar.

Authors:
ORCiD logo [1]; ORCiD logo [2]; ORCiD logo [3]; ORCiD logo [1]; ORCiD logo [3]
  1. Univ. of Illinois at Urbana-Champaign, IL (United States)
  2. Univ. of New Mexico, Albuquerque, NM (United States)
  3. Los Alamos National Lab. (LANL), Los Alamos, NM (United States)
Publication Date:
Research Org.:
Los Alamos National Laboratory (LANL), Los Alamos, NM (United States)
Sponsoring Org.:
USDOE National Nuclear Security Administration (NNSA); National Science Foundation (NSF)
OSTI Identifier:
1890986
Alternate Identifier(s):
OSTI ID: 1890549
Report Number(s):
LA-UR-21-28891
Journal ID: ISSN 0167-8191
Grant/Contract Number:  
89233218CNA000001; NA0002374; OCI-0725070; ACI-1238993
Resource Type:
Accepted Manuscript
Journal Name:
Parallel Computing
Additional Journal Information:
Journal Volume: 114; Journal ID: ISSN 0167-8191
Publisher:
Elsevier
Country of Publication:
United States
Language:
English
Subject:
97 MATHEMATICS AND COMPUTING; Halo; Exchange; Tausch; Mpi; Opencl; Cuda; C++; Heterogeneous; Performance

Citation Formats

Spies, Lukas, Bienz, Amanda, Moulton, John David, Olson, Luke, and Reisner, Andrew Ray. Tausch: A halo exchange library for large heterogeneous computing systems using MPI, OpenCL, and CUDA. United States: N. p., 2022. Web. doi:10.1016/j.parco.2022.102973.
Spies, Lukas, Bienz, Amanda, Moulton, John David, Olson, Luke, & Reisner, Andrew Ray. Tausch: A halo exchange library for large heterogeneous computing systems using MPI, OpenCL, and CUDA. United States. https://doi.org/10.1016/j.parco.2022.102973
Spies, Lukas, Bienz, Amanda, Moulton, John David, Olson, Luke, and Reisner, Andrew Ray. Fri . "Tausch: A halo exchange library for large heterogeneous computing systems using MPI, OpenCL, and CUDA". United States. https://doi.org/10.1016/j.parco.2022.102973. https://www.osti.gov/servlets/purl/1890986.
@article{osti_1890986,
title = {Tausch: A halo exchange library for large heterogeneous computing systems using MPI, OpenCL, and CUDA},
author = {Spies, Lukas and Bienz, Amanda and Moulton, John David and Olson, Luke and Reisner, Andrew Ray},
abstractNote = {Exchanging halo data is a common task in modern scientific computing applications and efficient handling of this operation is critical for the performance of the overall simulation. Tausch is a novel header-only library that provides a simple API for efficiently handling these types of data movements. Tausch supports both simple CPU-only systems, but also more complex heterogeneous systems with both CPUs and GPUs. It currently supports both OpenCL and CUDA for communicating with GPGPU devices, and allows for communication between GPGPUs and CPUs. The API allows for drop-in replacement in existing codes and can be used for the communication layer in new codes. This paper provides an overview of the approach taken in Tausch, and a performance analysis that demonstrates expected and achieved performance. Here, we highlight the ease of use and performance with three applications: First Tausch is compared to the halo exchange framework from two Mantevo applications, HPCCG and miniFE, and then it is used to replace a legacy halo exchange library in the flexible multigrid solver framework Cedar.},
doi = {10.1016/j.parco.2022.102973},
journal = {Parallel Computing},
number = ,
volume = 114,
place = {United States},
year = {Fri Sep 23 00:00:00 EDT 2022},
month = {Fri Sep 23 00:00:00 EDT 2022}
}

Works referenced in this record:

An overview of the Trilinos project
journal, September 2005

  • Heroux, Michael A.; Phipps, Eric T.; Salinger, Andrew G.
  • ACM Transactions on Mathematical Software, Vol. 31, Issue 3
  • DOI: 10.1145/1089014.1089021

Kokkos: Enabling manycore performance portability through polymorphic memory access patterns
journal, December 2014

  • Carter Edwards, H.; Trott, Christian R.; Sunderland, Daniel
  • Journal of Parallel and Distributed Computing, Vol. 74, Issue 12
  • DOI: 10.1016/j.jpdc.2014.07.003

Scalable line and plane relaxation in a parallel structured multigrid solver
journal, December 2020


Scaling Structured Multigrid to 500K+ Cores Through Coarse-Grid Redistribution
journal, January 2018

  • Reisner, Andrew; Olson, Luke N.; Moulton, J. David
  • SIAM Journal on Scientific Computing, Vol. 40, Issue 4
  • DOI: 10.1137/17M1146440