Finite element assembly strategies on multi-core and many-core architectures
Article first published online: 19 JAN 2012
Copyright © 2012 John Wiley & Sons, Ltd.
International Journal for Numerical Methods in Fluids
Volume 71, Issue 1, pages 80–97, 10 January 2013
How to Cite
Markall, G. R., Slemmer, A., Ham, D. A., Kelly, P. H. J., Cantwell, C. D. and Sherwin, S. J. (2013), Finite element assembly strategies on multi-core and many-core architectures. Int. J. Numer. Meth. Fluids, 71: 80–97. doi: 10.1002/fld.3648
- Issue published online: 4 DEC 2012
- Article first published online: 19 JAN 2012
- Manuscript Accepted: 21 DEC 2011
- Manuscript Revised: 13 DEC 2011
- Manuscript Received: 23 JUN 2011
We demonstrate that radically differing implementations of finite element methods (FEMs) are needed on multi-core (CPU) and many-core (GPU) architectures, if their respective performance potential is to be realised. Our numerical investigations using a finite element advection–diffusion solver show that increased performance on each architecture can only be achieved by committing to specific and diverse algorithmic choices that cut across the high-level structure of the implementation. Making these commitments to achieve high performance for a single architecture leads to a loss of performance portability. Data structures that include redundant data but enable coalesced memory accesses are faster on many-core architectures, whereas redundancy-free data structures that are accessed indirectly are faster on multi-core architectures. The Addto algorithm for global assembly is optimal on multi-core architectures, whereas the Local Matrix Approach is optimal on many-core architectures despite requiring more computation than the Addto algorithm. These results demonstrate the value in making the correct choice of algorithm and data structure when implementing FEMs, spectral element methods and low-order discontinuous Galerkin methods on modern high-performance architectures. Copyright © 2012 John Wiley & Sons, Ltd.