Designing a high-performance boundary element library with OpenCL and Numba
Department of Mathematics, University College London
University College London, 2021
@article{betcke2021designing,
title={Designing a high-performance boundary element library with OpenCL and Numba},
author={Betcke, Timo and Scroggs, Matthew},
journal={Computing in Science & Engineering},
year={2021},
publisher={IEEE}
}
The Bempp boundary element library is a well known library for the simulation of a range of electrostatic, acoustic and electromagnetic problems in homogeneous bounded and unbounded domains. It originally started as a traditional C++ library with a Python interface. Over the last two years we have completely redesigned Bempp as a native Python library, called Bempp-cl, that provides computational backends for OpenCL (using PyOpenCL) and Numba. The OpenCL backend implements kernels for GPUs and CPUs with SIMD optimization. In this paper, we discuss the design of Bempp-cl, provide performance comparisons on different compute devices, and discuss the advantages and disadvantages of OpenCL as compared to Numba.
July 18, 2021 by hgpu