Title: A Scala prototype to generate multigrid solver implementations for different problems and target multi-core platforms

 

Author: 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

 

Journal: Int. J. of Computational Science and Engineering, 2017 Vol.14, No.2, pp.150 - 163

 

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: http://dx.doi.org/10.1504/IJCSE.2017.10003829

 

Available online 13 Mar 2017

 

 

Editors Full Text AccessAccess for SubscribersPurchase this articleComment on this article