A stencil-based implementation of Parareal in the C++ domain specific embedded language STELLA
Center for Climate System and Modeling, ETH Zurich, Universitatstrasse 16, CH-8092 Zurich, Switzerland
arXiv:1409.8563 [cs.DC], (30 Sep 2014)
@article{2014arXiv1409.8563A,
author={Arteaga}, A. and {Ruprecht}, D. and {Krause}, R.},
title={"{A stencil-based implementation of Parareal in the C++ domain specific embedded language STELLA}"},
journal={ArXiv e-prints},
archivePrefix={"arXiv"},
eprint={1409.8563},
primaryClass={"cs.DC"},
keywords={Computer Science – Distributed, Parallel, and Cluster Computing, Mathematics – Numerical Analysis},
year={2014},
month={sep},
adsurl={http://adsabs.harvard.edu/abs/2014arXiv1409.8563A},
adsnote={Provided by the SAO/NASA Astrophysics Data System}
}
In view of the rapid rise of the number of cores in modern supercomputers, time-parallel methods that introduce concurrency along the temporal axis are becoming increasingly popular. For the solution of time-dependent partial differential equations, these methods can add another direction for concurrency on top of spatial parallelization. The paper presents an implementation of the time-parallel Parareal method in a C++ domain specific language for stencil computations (STELLA). STELLA provides both an OpenMP and a CUDA backend for a shared memory parallelization, using the CPU or GPU inside a node for the spatial stencils. Here, we intertwine this node-wise spatial paralelism with the time-parallel Parareal. This is done by adding an MPI-based implementation of Parareal, which allows us to parallelize in time across nodes. The performance of Parareal with both backends is analyzed in terms of speedup, parallel efficiency and energy-to-solution for an advection-diffusion problem with a time-dependent diffusion coefficient.
October 3, 2014 by hgpu