Published July 30, 2013 | Version v1
Working paper Open

An Interface for Halo Exchange Pattern

Creators

  • 1. Swiss National Supercomputing Centre (CSCS)

Description

Halo exchange patterns are very common in scientific computing, since the solution of PDEs often requires
communication between neighbor points. Although this is a common pattern, implementations are often made by
programmers from scratch, with an accompanying feeling of “reinventing the wheel”. In this paper we describe
GCL, a C++ generic library that implements a flexible and still efficient interface to specify halo-exchange/haloupdate
operations for regular grids. GCL allows to specify data layout, processor mapping, value types, and
other parameters at compile time, while other parameters are specified at run-time. GCL is also GPU enabled
and we show that, somewhat surprisingly, GPU-to-GPU communication can be faster than the traditional CPUto-
CPU communication, making accelerated platforms more appealing for large scale computations.

Files

WP86.pdf

Files (261.4 kB)

Name Size Download all
md5:878c25f4a92afc1736fcbf77a7b2a9ae
261.4 kB Preview Download

Additional details

Funding

PRACE-2IP – PRACE - Second Implementation Phase Project 283493
European Commission