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

Lukas Spies, Amanda Bienz, David Moulton, Luke Olson, Andrew Reisner

Research output: Contribution to journalArticlepeer-review

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. 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.

Original languageEnglish (US)
Article number102973
JournalParallel Computing
Volume114
DOIs
StatePublished - Dec 2022

Keywords

  • C++
  • Cuda
  • Exchange
  • Halo
  • Heterogeneous
  • Mpi
  • Opencl
  • Performance
  • Tausch

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computer Networks and Communications
  • Computer Graphics and Computer-Aided Design
  • Artificial Intelligence

Fingerprint

Dive into the research topics of 'Tausch: A halo exchange library for large heterogeneous computing systems using MPI, OpenCL, and CUDA'. Together they form a unique fingerprint.

Cite this