Redundancy Elimination in the ExaStencils Code Generator

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10049)


Optimizing the performance of compute-bound codes requires, among other techniques, the elimination of redundant computations. The well-known concept of common subexpression elimination can achieve this in parts, and almost every production compiler conducts such an optimization. However, due to the conservative nature of these compilers, an external redundancy elimination can additionally increase the performance. For stencil codes using finite volume discretizations, an extension to eliminate redundancies between loop iterations is also very promising. We integrated both a classic common subexpression elimination and an extended version in the Exastencils code generator and present their impact on a real-world application.


CSE Common subexpression elimination Vectorization 


  1. 1.
    Aceto, L., Ingolfsdottir, A., Saabas, A., Uustalu, T.: Program and proof optimizations with type systems. J. Logic Algebraic Prog. 77(1–2), 131–154 (2008)MathSciNetzbMATHGoogle Scholar
  2. 2.
    Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers - Principles, Techniques and Tools, 2nd edn. Addison-Wesley, Boston (2007)zbMATHGoogle Scholar
  3. 3.
    Click, C.: Global code motion/global value numbering. In: Proceedings of ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation (PLDI), pp. 246–257. ACM, June 1995Google Scholar
  4. 4.
    Cocke, J.: Global common subexpression elimination. In: Proceedings of Symposium on Compiler Optimization, pp. 20–24. ACM, Jul 1970Google Scholar
  5. 5.
    Cocke, J., Schwartz, J.T.: Programming Languages and Their Compilers: Preliminary Notes, 2nd edn. Courant Institute of Mathematical Sciences, New York University (1970)zbMATHGoogle Scholar
  6. 6.
    Debray, S.K.: Compiler optimizations for low-level redundancy elimination: An application of meta-level prolog primitives. In: Pettorossi, A. (ed.) META 1992. LNCS, vol. 649, pp. 120–134. Springer, Heidelberg (1992). doi: 10.1007/3-540-56282-6_8 CrossRefGoogle Scholar
  7. 7.
    Faber, P., Griebl, M., Lengauer, C.: Loop-carried code placement. In: Sakellariou, R., Gurd, J., Freeman, L., Keane, J. (eds.) Euro-Par 2001. LNCS, vol. 2150, pp. 230–235. Springer, Heidelberg (2001). doi: 10.1007/3-540-44681-8_34 CrossRefGoogle Scholar
  8. 8.
    Hackbusch, W.: Multi-Grid Methods and Applications. Springer-Verlag, Heidelberg (1985)CrossRefzbMATHGoogle Scholar
  9. 9.
    Hammes, J., Böhm, A.P.W., Ross, C., Chawathe, M., Draper, B.A., Rinker, B., Najjar, W.A.: Loop fusion and temporal common subexpression elimination in window-based loops. In: Proceedings of 8th IPDPS Reconfigurable Architectures Workshop (RAW), 8 p. IEEE Computer Society, April 2001Google Scholar
  10. 10.
    Kamal, H., Lee, J., Koo, B.: An improved non-CSD 2-bit recursive common subexpression elimination method to implement FIR filter. ETRI J. 33(5), 695–703 (2011)CrossRefGoogle Scholar
  11. 11.
    Kronawitter, S., Lengauer, C.: Optimizations applied by the ExaStencils code generator. Technical Report MIP-1502, Faculty of Informatics and Mathematics, University of Passau, 10 p., January 2015Google Scholar
  12. 12.
    Lengauer, C., et al.: ExaStencils: advanced stencil-code engineering. In: Lopes, L., et al. (eds.) Euro-Par 2014. LNCS, vol. 8806, pp. 553–564. Springer, Heidelberg (2014). doi: 10.1007/978-3-319-14313-2_47 Google Scholar
  13. 13.
    Muchnick, S.S.: Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers Inc., San Francisco (1997)Google Scholar
  14. 14.
    Patankar, S.V., Spalding, D.B.: A calculation procedure for heat, mass and momentum transfer in three-dimensional parabolic flows. Int. J. Heat Mass Transfer 15(10), 1787–1806 (1972)CrossRefzbMATHGoogle Scholar
  15. 15.
    Schmitt, C., Kuckuk, S., Hannig, F., Köstler, H., Teich, J.: ExaSlang: A domain-specific language for highly scalable multigrid solvers. In: Proceedings of 4th International Workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing (WOLFHPC), pp. 42–51. ACM (2014)Google Scholar
  16. 16.
    Trottenberg, U., Osterlee, C.W., Schüller, A.: Multigrid. Academic Press, New York (2000)Google Scholar
  17. 17.
    Vasco, D.A., Moraga, N.O., Haase, G.: Parallel finite volume method simulation of three-dimensional fluid flow and convective heat transfer for viscoplastic non-Newtonian fluids. Numer. Heat Transf. Part A: Appl. 66(2), 990–1019 (2014)CrossRefGoogle Scholar
  18. 18.
    Versteeg, H.K., Malalasekera, W.: An Introduction to Computational Fluid Dynamics: The Finite Volume Method, 2nd edn. Pearson Education Limited, Upper Saddle River (2007)Google Scholar

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  1. 1.University of PassauPassauGermany
  2. 2.FAU Erlangen-NürnbergErlangenGermany

Personalised recommendations