Title: A Scala prototype to generate multigrid solver implementations for different problems and target multi-core platforms
Authors: Harald Köstler; Christian Schmitt; Sebastian Kuckuk; Stefan Kronawitter; Frank Hannig; Jürgen Teich; Ulrich Rüde; Christian Lengauer
Addresses: Department Informatik, Technische Fakultät, Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), Germany ' Department Informatik, Technische Fakultät, Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), Germany ' Department Informatik, Technische Fakultät, Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), Germany ' Department of Informatics and Mathematics, University of Passau, Germany ' Department Informatik, Technische Fakultät, Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), Germany ' Department Informatik, Technische Fakultät, Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), Germany ' Department Informatik, Technische Fakultät, Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU), Germany ' Department of Informatics and Mathematics, University of Passau, Germany
Abstract: Many problems in computational science and engineering involve partial differential equations and thus require the numerical solution of large, sparse (non)linear systems of equations. Multigrid is known to be one of the most efficient methods for this purpose. However, the concrete multigrid algorithm and its implementation depend highly on the underlying problem and hardware. Therefore, changes in the code or many different variants are necessary to cover all relevant cases. We report on a prototype implementation in Scala for a framework that enables abstract descriptions of PDEs, their discretisation, and their numerical solution via multigrid algorithms. From these, data structures and implementations of multigrid components required to solve elliptic PDEs on structured grids can be generated automatically. Two different test problems illustrate the potential of our approach for both CPU and GPU target platforms.
Keywords: code generation; domain-specific language; Scala prototype; multigrid solver implementations; multi-core platforms; partial differential equations; PDEs; discretisation.
DOI: 10.1504/IJCSE.2017.082879
International Journal of Computational Science and Engineering, 2017 Vol.14 No.2, pp.150 - 163
Received: 01 Aug 2014
Accepted: 01 Mar 2015
Published online: 15 Mar 2017 *