Maximizing Cache Memory Usage for Multigrid Algorithms for Applications of Fluid Flow in Porous Media

  • Craig C. Douglas
  • Jonathan Hu
  • Mohamed Iskandarani
  • Markus Kowarschik
  • Ulrich Rüde
  • Christian Weiss
Conference paper
Part of the Lecture Notes in Physics book series (LNP, volume 552)


Computers today rely heavily on good utilization of their cache memory subsystems. Compilers are optimized for business applications, not scientific computing ones, however. Automatic tiling of complex numerical algorithms for solving partial differential equations is simply not provided by compilers. Thus, absolutely terrible cache performance is a common result.

Multigrid algorithms combine several numerical algorithms into a more complicated algorithm. In this paper, an algorithm is derived that allows for data to pass through cache exactly once per multigrid level during a V cycle before the level changes. This is optimal cache usage for large problems that do not fit entirely in cache. The numerical techniques and algorithms discussed in this paper can be easily applied to numerical simulation of fluid flows in porous media.


multigrid cache threads sparse matrix iterative methods domain decomposition compiler optimization 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Bank, R. E. and Douglas, C. C., Sharp estimates for multigrid rates of convergence with general smoothing and acceleration, SIAM J. Numer. Anal. 22 (1985), 617–633.zbMATHCrossRefMathSciNetGoogle Scholar
  2. [2]
    Douglas, C. C., Multi-grid algorithms with applications to elliptic boundary-value problems, SIAM J. Numer. Anal. 21 (1984), 236–254.zbMATHCrossRefMathSciNetGoogle Scholar
  3. [3]
    Douglas, C. C., Caching in with multigrid algorithms: problems in two dimensions. Paral. Alg. Appl. 9 (1996), 195–204.zbMATHGoogle Scholar
  4. [4]
    Douglas, C. C., Reusable cache memory object oriented multigrid algorithms. See under preprints, 1999.
  5. [5]
    Douglas, C. C., Hu, J., and Iskandarani, M., Preprocessing costs of cache based multigrid, in Proceeding of ENUMATH99: Third European Conference on Numerical Methods for Advanced Applications, 8 pages, Singapore, World Scientific, 2000.Google Scholar
  6. [6]
    Douglas, C. C., Hu, J., Karl, W., Kowarschik, M., Rüde, U., and Weiss, C., Fixed and adaptive cache aware algorithms for multigrid methods, in European Multigrid VI, Lecture Notes in Computational Science and Engineering, 7 pages, Springer, Berlin, 2000.Google Scholar
  7. [7]
    Douglas, C. C., Hu, J., Kowarschik, M., Rüde, U., and Weiss, C., Cache optimization for structured and unstructured grid multigrid, Electron. Trans. Numer. Anal., 9, 2000.Google Scholar
  8. [8]
    Douglas, C. C., Hu, J., Rüde, U., and Bittencourt, M, Cache based multigrid on unstructured two dimensional grids. Notes on Numerical Fluid Mechanics, 11 pages, Vieweg, Braunschweig, 1999, Proceeding of the 14th GAMM-Seminar Kiel on ‘Concepts of Numerical Software’, January, 1998.Google Scholar
  9. [9]
    Hellwagner, H., Weiß, C., Stals, L., and Rüde, U., Efficient implementation of multigrid on cache based architectures. Notes on Numerical Fluid Mechanics. Vieweg, Braunschweig, 1999, Proceeding of the 14th GAMM-Seminar Kiel on ‘Concepts of Numerical Software’, January, 1998.Google Scholar
  10. [10]
    McCormick, S. F., Multigrid methods for variational problems: general theory for the V-cycle, SIAM J. Numer. Anal. 22 (1985), 634–643.zbMATHCrossRefMathSciNetGoogle Scholar
  11. [11]
    Philbin, J., Edler, J., Anshus, O. J., Douglas, C. C., and Li, K., Thread scheduling for cache locality, in Proceedings of the Seventh ACM Conference on Architectural Support for Programming Languages and Operating Systems, pages 60–73, Cambridge, MA, 1996, ACM.Google Scholar
  12. [12]
    Stals, L. and Rüde, U., Techniques for improving the data locality of iterative methods. Technical Report MRR 038-97, Australian National University, 1997.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Craig C. Douglas
    • 1
  • Jonathan Hu
    • 2
  • Mohamed Iskandarani
    • 3
  • Markus Kowarschik
    • 4
  • Ulrich Rüde
    • 4
  • Christian Weiss
    • 5
  1. 1.Department of Computer ScienceUniversity of KentuckyLexingtonUSA
  2. 2.Department of MathematicsUniversity of KentuckyLexingtonUSA
  3. 3.Institute of Marine and Coastal SciencesRutgers UniversityNew BrunswickUSA
  4. 4.Lehrstuhl für Systemsimulation (IMMD 10) Institut für InformatikUniversität Erlangen-NürnbergErlangenGermany
  5. 5.Lehrstuhl für Rechnertechnik und Rechnerorganisation (LRR-TUM) Institut für InformatikTechnische Universität MünchenMünchenGermany

Personalised recommendations