Skip to main content

A Cache Oblivious Algorithm for Matrix Multiplication Based on Peano’s Space Filling Curve

  • Conference paper
Parallel Processing and Applied Mathematics (PPAM 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3911))

Abstract

Cache oblivious algorithms are algorithms that are designed to inherently exploit any kind of cache memory—regardless of its size or architecture. In this article, we discuss a cache oblivious algorithm for matrix multiplication. The elements of the matrices are stored according to a Peano space filling curve. A block recursive approach then leads to an algorithm where memory access to matrix elements is strictly local. Consequently, the algorithm shows several interesting properties considering cache performance, prefetching strategies, or even parallelization.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bader, M., Zenger, C.: Cache oblivious matrix multiplication using an element ordering based on the Peano curve. Linear Algebra and its Applications (submitted)

    Google Scholar 

  2. Chatterjee, S., Jain, V.V., Lebeck, A.R., Mundhra, S., Thottethodi, M.: Nonlinear Array Layouts for Hierarchical Memory Systems. In: International Conference on Supercomputing (ICS 1999) (1999)

    Google Scholar 

  3. Frens, J., Wise, D.S.: Auto-Blocking Matrix-Multiplication or Tracking BLAS3 Performance from Source Code. In: Proceedings of the 6th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (1997)

    Google Scholar 

  4. Frigo, M., Leiserson, C.E., Prokop, H., Ramachandran, S.: Cache-oblivious algorithms. In: Proceedings of the 40th Annual Symposium on Foundations of Computer Science, New York, October 1999, pp. 285–297 (1999)

    Google Scholar 

  5. Goto, K., van de Geijn, R.: On Reducing TLB Misses in Matrix Multiplication. TOMS, under revision, http://www.cs.utexas.edu/users/flame/pubs.html

  6. Gustavson, F.G.: Recursion leads to automatic variable blocking for dense linear-algebra algorithms. IBM Journal of Research and Development 41(6) (1999)

    Google Scholar 

  7. Hong, J.-W., Kung, H.T.: I/O complexity: the red-blue pebble game. In: Proceedings of ACM Symposium on Theory of Computing (1981)

    Google Scholar 

  8. Whaley, R.C., Petitet, A., Dongarra, J.J.: Automated Empirical Optimization of Software and the ATLAS Project. Parallel Computing 27(1–2), 3–35 (2001)

    Article  MATH  Google Scholar 

  9. Zumbusch, G.: Adaptive Parallel Multilevel Methods for Partial Differential Equations. Habilitation, Universität Bonn (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bader, M., Zenger, C. (2006). A Cache Oblivious Algorithm for Matrix Multiplication Based on Peano’s Space Filling Curve. In: Wyrzykowski, R., Dongarra, J., Meyer, N., Waśniewski, J. (eds) Parallel Processing and Applied Mathematics. PPAM 2005. Lecture Notes in Computer Science, vol 3911. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11752578_126

Download citation

  • DOI: https://doi.org/10.1007/11752578_126

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-34141-3

  • Online ISBN: 978-3-540-34142-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics