Skip to main content

Computer Memory: Why We Should Care What Is under the Hood

  • Conference paper
Mathematical and Engineering Methods in Computer Science (MEMICS 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 7119))

  • 600 Accesses

Abstract

The memory subsystems of contemporary computer architectures are increasingly complex – in fact, so much so that it becomes difficult to estimate the performance impact of many coding constructs, and some long known coding patterns are even discovered to be principally wrong. In contrast, many researchers still reason about algorithmic complexity in simple terms, where memory operations are sequential and of equal cost. The goal of this talk is to give an overview of some memory subsystem features that violate this assumption significantly, with the ambition to motivate development of algorithms tailored to contemporary computer architectures.

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 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.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. AMD: AMD64 Architecture Programmers Manual : System Programming, 3.18 edn. vol. 2 (2011)

    Google Scholar 

  2. AMD: Software Optimization Guide for AMD Family 15h Processors, 3.03 edn. (2011)

    Google Scholar 

  3. Babka, V.: Cache Sharing Sensitivity of SPEC CPU2006 Benchmarks. Tech. Rep. 2009/3 2.0, Department of Software Engineering, Faculty of Mathematics and Physics, Charles University (2009)

    Google Scholar 

  4. Babka, V., Bulej, L., Decky, M., Kraft, J., Libic, P., Marek, L., Seceleanu, C., Tuma, P.: Resource Usage Modeling: Q-ImPrESS Project Deliverable D3.3 (2009), http://www.q-impress.eu

  5. Babka, V., Bulej, L., Libic, P., Marek, L., Martinec, T., Podzimek, A., Tuma, P.: Resource Impact Analysis: Q-ImPrESS Project Deliverable D3.4 (2011), http://www.q-impress.eu

  6. Babka, V., Marek, L., Tuma, P.: When Misses Differ: Investigating Impact of Cache Misses on Observed Performance. In: Proceedings of ICPADS 2009. IEEE (2009)

    Google Scholar 

  7. Babka, V., Tuma, P.: Investigating Cache Parameters of x86 Family Processors. In: Kaeli, D., Sachs, K. (eds.) SPEC Benchmark Workshop 2009. LNCS, vol. 5419, pp. 77–96. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  8. Babka, V., Tuma, P.: Can Linear Approximation Improve Performance Prediction?. In: Proceedings of EPEW 2011. Springer, Heidelberg (2011)

    Google Scholar 

  9. Bailey, D., Barszcz, E., Barton, J., Browning, D., Carter, R., Dagum, L., Fatoohi, R., Fineberg, S., Frederickson, P., Lasinski, T., Schreiber, R., Simon, H.: The NAS Parallel Benchmarks. Tech. Rep. RNR-94-007, RNR (1994)

    Google Scholar 

  10. Boehm, H.: Threads and Memory Model for C++, http://www.hpl.hp.com/personal/Hans_Boehm/c++mm

  11. Drepper, U.: What Every Programmer Should Know About Memory. Tech. rep., Red Hat (2007)

    Google Scholar 

  12. Fields, B.A., Bodik, R., Hill, M.D., Newburn, C.J.: Interaction Cost and Shotgun Profiling. ACM Transactions on Architecture and Code Optimization 1, 272–304 (2004), http://doi.acm.org/10.1145/1022969.1022971

    Article  Google Scholar 

  13. Goetz, B.: Double-Checked Locking: Clever, But Broken. JavaWorld (2001)

    Google Scholar 

  14. Intel: Intel 64 and IA-32 Architectures Optimization Reference Manual, 248966-025 edn. (2011)

    Google Scholar 

  15. Intel: Intel 64 and IA-32 Architectures Software Developers Manual Volume 3A: System Programming Guide, Part 1, 253668-039 edn. (2011)

    Google Scholar 

  16. Intel: Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B: System Programming Guide, Part 2, 253669-039 edn. (2011)

    Google Scholar 

  17. Kalibera, T., Tuma, P.: Precise Regression Benchmarking with Random Effects: Improving Mono Benchmark Results. In: Horváth, A., Telek, M. (eds.) EPEW 2006. LNCS, vol. 4054, pp. 63–77. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  18. McCurdy, C., Vetter, J.: Memphis: Finding and Fixing NUMA-Related Performance Problems on Multi-Core Platforms. In: Proceedings of ISPASS 2010. IEEE (2010)

    Google Scholar 

  19. Meyers, S., Alexandrescu, A.: C++ and the Perils of Double-Checked Locking. Dr. Dobb’s Journal (2004)

    Google Scholar 

  20. Mytkowicz, T., Diwan, A., Hauswirth, M., Sweeney, P.F.: Producing Wrong Data Without Doing Anything Obviously Wrong. In: Proceedings of ASPLOS 2009, pp. 265–276. ACM (2009)

    Google Scholar 

  21. Omni Compiler Project. High Performance Computing Systems Laboratory, Graduate School of Systems and Information Engineering, University of Tsukuba, http://www.hpcs.cs.tsukuba.ac.jp/omni-openmp/top-en.html

  22. Prokop, H.: Cache-Oblivious Algorithms. Master Thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology (1999)

    Google Scholar 

  23. Pugh, B.: The Java Memory Model, http://www.cs.umd.edu/~pugh/java/memoryModel

  24. Schmidt, D.C., Harrison, T.: Double-Checked Locking – An Object Behavioral Pattern for Initializing and Accessing Thread-Safe Objects Efficiently. Presented at PLoP 1996 (1996)

    Google Scholar 

  25. Stallman, R.M., et al.: Using the GNU Compiler Collection, 4.6.1 edn.

    Google Scholar 

  26. The Evaluate Collaboratory: Experimental Evaluation of Software and Systems in Computer Science, http://evaluate.inf.usi.ch

  27. Williams, S.: The Roofline Model. In: Performance Tuning of Scientific Applications. CRC (2010)

    Google Scholar 

  28. Wolfe, M.: More Iteration Space Tiling. In: Proceedings of Supercomputing 1989, pp. 655–664. ACM, New York (1989), http://doi.acm.org/10.1145/76263.76337

    Chapter  Google Scholar 

  29. Yotov, K., Pingali, K., Stodghill, P.: Automatic Measurement of Memory Hierarchy Parameters. In: Proceedings of SIGMETRICS 2005. ACM (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Babka, V., Tůma, P. (2012). Computer Memory: Why We Should Care What Is under the Hood. In: Kotásek, Z., Bouda, J., Černá, I., Sekanina, L., Vojnar, T., Antoš, D. (eds) Mathematical and Engineering Methods in Computer Science. MEMICS 2011. Lecture Notes in Computer Science, vol 7119. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-25929-6_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-25929-6_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-25928-9

  • Online ISBN: 978-3-642-25929-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics