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

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.

[1]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[2]  Michael Griebel,et al.  Parallel multigrid in an adaptive PDE solver based on hashing and space-filling curves , 1999, Parallel Comput..

[3]  Manfred Liebmann,et al.  A Parallel Algebraic Multigrid Solver on Graphics Processing Units , 2009, HPCA.

[4]  José M. F. Moura,et al.  Spiral: A Generator for Platform-Adapted Libraries of Signal Processing Alogorithms , 2004, Int. J. High Perform. Comput. Appl..

[5]  D. Brandt,et al.  Multi-level adaptive solutions to boundary-value problems math comptr , 1977 .

[6]  Kurt Keutzer,et al.  Copperhead: compiling an embedded data parallel language , 2011, PPoPP '11.

[7]  Alan Edelman,et al.  Julia: A Fast Dynamic Language for Technical Computing , 2012, ArXiv.

[8]  Jürgen Teich,et al.  Generating Device-specific GPU Code for Local Operators in Medical Imaging , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium.

[9]  Jürgen Teich,et al.  Towards Domain-Specific Computing for Stencil Codes in HPC , 2012, 2012 SC Companion: High Performance Computing, Networking Storage and Analysis.

[10]  Yehoshua Y. Zeevi,et al.  Image enhancement and denoising by complex diffusion processes , 2004, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[11]  Yuefan Deng,et al.  New trends in high performance computing , 2001, Parallel Computing.

[12]  Gunter Saake,et al.  Predicting performance via automated feature-interaction detection , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[13]  Martin Odersky,et al.  Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition , 2010 .

[14]  Hans-Joachim Bungartz,et al.  The PDE framework Peano applied to fluid dynamics: an efficient implementation of a parallel multiscale fluid dynamics solver on octree-like adaptive Cartesian grids , 2010 .

[15]  Sven Apel,et al.  Optimizing Performance of Stencil Code with SPL Conqueror , 2014 .

[16]  Christian Lengauer,et al.  Optimization of two Jacobi Smoother Kernels by Domain-Specific Program Transformation , 2014 .

[17]  Frédo Durand,et al.  Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines , 2013, PLDI 2013.

[18]  Jack J. Dongarra,et al.  Automated empirical optimizations of software and the ATLAS project , 2001, Parallel Comput..

[19]  Andreas Dedner,et al.  A generic grid interface for parallel and adaptive scientific computing. Part II: implementation and tests in DUNE , 2008, Computing.

[20]  Justin W. L. Wan,et al.  Practical Fourier analysis for multigrid methods , 2007, Math. Comput..

[21]  Ulrich Rüde,et al.  A Generic Prototype to Benchmark Algorithms and Data Structures for Hierarchical Hybrid Grids , 2013, PARCO.

[22]  Wolfgang Hackbusch,et al.  Multi-grid methods and applications , 1985, Springer series in computational mathematics.

[23]  George Biros,et al.  A Parallel Geometric Multigrid Method for Finite Elements on Octree Meshes , 2010, SIAM J. Sci. Comput..

[24]  Bradley C. Kuszmaul,et al.  The pochoir stencil compiler , 2011, SPAA '11.

[25]  Debasish Ghosh,et al.  DSLs in Action , 2010 .

[26]  Mark F. Adams,et al.  Parallel multigrid solvers for 3D unstructured finite element problems in large deformation elasticity and plasticity , 2000 .

[27]  Eric Darve,et al.  Liszt: A domain specific language for building portable mesh-based PDE solvers , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[28]  採編典藏組 Society for Industrial and Applied Mathematics(SIAM) , 2008 .

[29]  Robert D. Falgout,et al.  Scaling Hypre's Multigrid Solvers to 100, 000 Cores , 2011, High-Performance Scientific Computing.

[30]  S. McCormick,et al.  A multigrid tutorial (2nd ed.) , 2000 .

[31]  Ulrich Rüde,et al.  Modeling Multigrid Algorithms for Variational Imaging , 2010, 2010 21st Australian Software Engineering Conference.

[32]  Franz Franchetti,et al.  SPIRAL: Code Generation for DSP Transforms , 2005, Proceedings of the IEEE.

[33]  Helmar Burkhart,et al.  PATUS: A Code Generation and Autotuning Framework for Parallel Iterative Stencil Computations on Modern Microarchitectures , 2011, 2011 IEEE International Parallel & Distributed Processing Symposium.

[34]  Jürgen Teich,et al.  An Evaluation of Domain-Specific Language Technologies for Code Generation , 2014, 2014 14th International Conference on Computational Science and Its Applications.

[35]  Yehoshua Y. Zeevi,et al.  Enhancement of Textured Images Using Complex Diffusion Incorporating Schrodinger's Potential , 2006, 2006 IEEE International Conference on Acoustics Speech and Signal Processing Proceedings.

[36]  Daniel Ritter,et al.  A Geometric Multigrid Solver on GPU Clusters , 2013 .

[37]  Matteo Frigo,et al.  A fast Fourier transform compiler , 1999, SIGP.

[38]  Anders Logg,et al.  Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book , 2012 .

[39]  Harald Köstler,et al.  Performance engineering to achieve real-time high dynamic range imaging , 2012, Journal of Real-Time Image Processing.