ExaStencils: Advanced Stencil-Code Engineering

  • Christian Lengauer
  • Sven Apel
  • Matthias Bolten
  • Armin Größlinger
  • Frank Hannig
  • Harald Köstler
  • Ulrich Rüde
  • Jürgen Teich
  • Alexander Grebhahn
  • Stefan Kronawitter
  • Sebastian Kuckuk
  • Hannah Rittich
  • Christian Schmitt
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8806)


Project ExaStencils pursues a radically new approach to stencil-code engineering. Present-day stencil codes are implemented in general-purpose programming languages, such as Fortran, C, or Java, or derivates thereof, and harnesses for parallelism, such as OpenMP, OpenCL or MPI. ExaStencils favors a much more domain-specific approach with languages at several layers of abstraction, the most abstract being the mathematical formulation, the most concrete the optimized target code. At every layer, the corresponding language expresses not only computational directives but also domain knowledge of the problem and platform to be leveraged for optimization. This approach will enable a highly automated code generation at all layers and has been demonstrated successfully before in the U.S. projects FFTW and SPIRAL for certain linear transforms.


Multigrid Method Algorithmic Component Multigrid Solver Target Code Execution Platform 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Almasi, G. (PGAS) Partitioned global address space languages. In: Padua, et al. (eds.) [32], pp. 1539–1545Google Scholar
  2. 2.
    Ashby, S., Beckman, P., Chen, J., Colella, P., Collins, B., Crawford, D., Dongarra, J., Kothe, D., Lusk, R., Messina, P., Mezzacappa, T., Moin, P., Norman, M., Rosner, R., Sarkar, V., Siegel, A., Streitz, F., White, A., Wright, M.: The opportunities and challenges of exascale computing – Summary report of the advanced scientific computing advisory committee (ASCAC) subcommittee. Tech. rep., Office of Science, U.S. Department of Energy Fall (2010)Google Scholar
  3. 3.
    Bergen, B., Gradl, T., Hülsemann, F., Rüde, U.: A massively parallel multigrid method for finite elements. Computing in Science and Engineering 8(6), 56–62 (2006)CrossRefGoogle Scholar
  4. 4.
    Bolten, M.: Multigrid Methods for Structured Grids and their Application in Particle Simulation. Ph.D. thesis, Bergische Universität Wuppertal (2008)Google Scholar
  5. 5.
    Bolten, M.: Evaluation of a multigrid solver for 3-level Toeplitz and circulant matrices on Blue Gene/Q. In: Binder, K., Münster, G., Kremer, M. (eds.) Proc. NIC Symp. NIC Series, vol. 47, pp. 345–352. John von Neumann Institute for Computing (2014)Google Scholar
  6. 6.
    Bolten, M., Kahl, K.: Using block smoothers in multigrid methods. Proc. Appl. Math. Mech. 12(1), 645–646 (2012)CrossRefGoogle Scholar
  7. 7.
    Calder, M., Kolberg, M., Magill, E., Reiff-Marganiec, S.: Feature Interaction: A Critical Review and Considered Forecast. Computer Networks 41(1), 115–141 (2003)CrossRefzbMATHGoogle Scholar
  8. 8.
    Carlson, W., Merkey, P.: UPC. In: Padua, et al. (eds.) [32], pp. 2118–2124Google Scholar
  9. 9.
    Chamberlain, B.L.: Chapel. In: Padua, et al. (eds.) [32], pp. 249–256Google Scholar
  10. 10.
    Charles, P., Grothoff, C., Saraswat, V.A., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: An object-oriented approach to non-uniform cluster computing. In: Proc. 20th Ann. ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pp. 519–538 (2005)Google Scholar
  11. 11.
    Christen, M., Schenk, O., Burkhart, H.: PATUS: A code generation and autotuning framework for parallel iterative stencil computations on modern microarchitectures. In: Proc. IEEE Int. Parallel & Distributed Processing Symp (IPDPS), pp. 676–687. IEEE (2011)Google Scholar
  12. 12.
    Datta, K.: Auto-tuning Stencil Codes for Cache-Based Multicore Platforms. Ph.D. thesis, EECS Department, University of California, Berkeley (2009)Google Scholar
  13. 13.
    DeVito, Z., Joubert, N., Palaciosy, F., Oakleyz, S., Medinaz, M., Barrientos, M., Elsenz, E., Hamz, F., Aiken, A., Duraisamy, K., Darvez, E., Alonso, J., Hanrahan, P.: Liszt: A domain specific language for building portable mesh-based PDE solvers. In: Proc. Conf. High Performance Computing Networking, Storage and Analysis (SC 2011), paper 9, 2p. ACM (2011)Google Scholar
  14. 14.
    Falgout, R.D., Jones, J.E., Yang, U.M.: The design and implementation of hypre, a library of parallel high performance preconditioners. In: Bruaset, A.M., Tveito, A. (eds.) Numerical Solution of Partial Differential Equations on Parallel Computers, ch. 8. LNCSE, vol. 51, pp. 267–294. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  15. 15.
    Falgout, R.D., Meier Yang, U.: hypre: A library of high performance preconditioners. In: Sloot, P.M.A., Tan, C.J.K., Dongarra, J., Hoekstra, A.G. (eds.) ICCS-ComputSci 2002, Part III. LNCS, vol. 2331, pp. 632–641. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  16. 16.
    Feautrier, P., Lengauer, C.: Polyhedron model. In: Padua, et al. (eds.) [32], pp. 1581–1592Google Scholar
  17. 17.
    Frigo, M., Johnson, S.G.: The design and implementation of FFTW3. Proc. IEEE 93(2), 216–231 (2005)CrossRefGoogle Scholar
  18. 18.
    Gmeiner, B., Köstler, H., Stürmer, M., Rüde, U.: Parallel multigrid on hierarchical hybrid grids: A performance study on current high performance computing clusters. Concurrency and Computation: Practice and Experience 26(1), 217–240 (2014)Google Scholar
  19. 19.
    Grebhahn, A., Siegmund, N., Apel, S., Kuckuk, S., Schmitt, C., Köstler, H.: Optimizing performance of stencil code with SPL Conqueror. In: Größlinger, Köstler (eds.) [20], pp. 7–14Google Scholar
  20. 20.
    Größlinger, A., Köstler, H. (eds.): Proc. Int. Workshop on High-Performance Stencil Computations (HiStencils) (January 2014),
  21. 21.
    Hülsemann, F., Kowarschik, M., Mohr, M., Rüde, U.: Parallel geometric multigrid. In: Bruaset, A.M., Tveito, A. (eds.) Numerical Solution of Partial Differential Equations on Parallel Computers. LNCSE, vol. 51, pp. 165–208. Springer, Heidelberg (2006)Google Scholar
  22. 22.
    Hutter, F., Hoos, H.H., Leyton-Brown, K., Stützle, T.: J. Artificial Intelligence Research 36, 267–306 (2009)zbMATHGoogle Scholar
  23. 23.
    Köstler, H., Schmitt, C., Kuckuk, S., Hannig, F., Teich, J., Rüde, U.: A Scala Prototype to Generate Multigrid Solver Implementations for Different Problems and Target Multi-Core Platforms. Computing Research Repository (CoRR), arXiv:1406.5369, 18 (June 2014),Google Scholar
  24. 24.
    Kowarschik, M., Rüde, U., Weiss, C., Karl, W.: Cache-aware multigrid methods for solving Poisson’s equation in two dimensions. Computing 64(4), 381–399 (2000)CrossRefMathSciNetzbMATHGoogle Scholar
  25. 25.
    Kronawitter, S., Lengauer, C.: Optimization of two Jacobi smoother kernels by domain-specific program transformation. In: Größlinger, Köstler (eds.) [20], pp. 75–80Google Scholar
  26. 26.
    Kuckuk, S., Gmeiner, B., Köstler, H., Rüde, U.: A generic prototype to benchmark algorithms and data structures for hierarchical hybrid grids. In: Proc. Int. Conf. on Parallel Computing (ParCo), pp. 813–822. IOS Press (2013)Google Scholar
  27. 27.
    Lengauer, C., Batory, D., Blum, A., Odersky, M. (eds.): Domain-Specific Program Generation. LNCS, vol. 3016. Springer, Heidelberg (2004)Google Scholar
  28. 28.
    MacLachlan, S.P., Oosterlee, C.W.: Local Fourier analysis for multigrid with overlapping smoothers applied to systems of PDEs. Num. Lin. Alg. Appl. 18, 751–774 (2011)CrossRefMathSciNetzbMATHGoogle Scholar
  29. 29.
    Manferdelli, J.L., Govindaraju, N.K., Crall, C.: Challenges and opportunities in many-core computing. Proc. IEEE 96(5), 808–815 (2008)CrossRefGoogle Scholar
  30. 30.
    Numrich, R.W.: Coarray Fortran. In: Padua, et al. (eds.) [32], pp. 304–310Google Scholar
  31. 31.
    Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima Press (2010)Google Scholar
  32. 32.
    Padua, D.A., et al. (eds.): Encyclopedia of Parallel Computing. Springer (2011)Google Scholar
  33. 33.
    Parnas, D.L.: On the design and development of program families. IEEE Trans. on Software Engineering (TSE) SE 2(1), 1–9 (1976)CrossRefzbMATHGoogle Scholar
  34. 34.
    Püschel, M., Franchetti, F., Voronenko, Y.: Spiral. In: Padua, et al. (eds.) [32], pp. 1920–1933Google Scholar
  35. 35.
    Schmidt, D.C.: Model-driven engineering. Computer 39(2), 25–31 (2006)CrossRefGoogle Scholar
  36. 36.
    Schmitt, C., Kuckuk, S., Köstler, H., Hannig, F., Teich, J.: An evaluation of domain-specific language technologies for code generation. In: Proc. Int. Conf. on Computational Science and its Applications (ICCSA), pp. 18–26. IEEE Computer Society Press (June-July 2014)Google Scholar
  37. 37.
    Siegmund, N., Kolesnikov, S., Kästner, C., Apel, S., Batory, D., Rosenmüller, M., Saake, G.: Predicting Performance via Automated Feature-Interaction Detection. In: Proc. Int. Conf. on Software Engineering (ICSE), pp. 167–177. IEEE (2012)Google Scholar
  38. 38.
    Steele Jr., G.L., Allen, E.E., Chase, D., Flood, C.H., Luchangco, V., Maessen, J.W., Ryu, S.: Fortress. In: Padua, et al. (eds.) [32], pp. 718–735.Google Scholar
  39. 39.
    Tang, Y., Chowdhury, R.A., Kuszmaul, B.C., Luk, C.K., Leiserson, C.E.: The Pochoir stencil compiler. In: Proc. 23rd ACM Symp. on Parallelism in Algorithms and Architectures (SPAA), pp. 117–128. ACM Press (2011)Google Scholar
  40. 40.
    van Deursen, A., Klint, P., Visser, J.: Domain-specific languages. In: Kent, A., Williams, J.G. (eds.) Encyclopedia of Microcomputers, pp. 53–68. Marcel Dekker (2002)Google Scholar
  41. 41.
    Wienands, R., Joppich, W.: Practical Fourier Analysis for Multigrid Methods, Numerical Insights, vol. 4. Chapman and Hall (2004)Google Scholar
  42. 42.
    Wirth, N.: Program development by stepwise refinement. Comm. ACM 14(4), 221–227 (1971)CrossRefzbMATHGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Christian Lengauer
    • 1
  • Sven Apel
    • 1
  • Matthias Bolten
    • 2
  • Armin Größlinger
    • 1
  • Frank Hannig
    • 3
  • Harald Köstler
    • 3
  • Ulrich Rüde
    • 3
  • Jürgen Teich
    • 3
  • Alexander Grebhahn
    • 1
  • Stefan Kronawitter
    • 1
  • Sebastian Kuckuk
    • 3
  • Hannah Rittich
    • 2
  • Christian Schmitt
    • 3
  1. 1.Faculty of Computer Science and MathematicsUniversity of PassauPassauGermany
  2. 2.Department of Mathematics and ScienceUniversity of WuppertalWuppertalGermany
  3. 3.Department of Computer ScienceFriedrich-Alexander University Erlangen-Nürnberg (FAU)Germany

Personalised recommendations