Skip to main content

PINstruct – Efficient Memory Access to Data Structures

  • Chapter

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

Abstract

Modular programming requires structuring a program’s data into classes, records and arrays. Access to these data structures is highly dependent on the nature of the algorithm, the programming language, it’s compiler, the Application Binary Interface (ABI) defined by the OS and finally the requirements of the underlying hardware. The programming language however may not allow the compiler to reorder data structures. This is specially true for libraries, with MPI being a good example. Since the communication library’s routines are comparatively seldom called, the cache may be ”cold”, i.e. the MPI library’s memory accesses into data structures may be slow, too diverse and pollute the cache. In this paper we introduce a tool to analyse the memory access pattern of structures the Open MPI implementation. This tool shows the order in which data structures such as datatype and communicator information are accessed. It shows that previous work to re-order data structures for better padding has proven worthwhile, however further restructuring is necessary.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   49.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

Learn about institutional subscriptions

References

  1. Buntinas, D., Mercier, G., Gropp, W.: Implementation and evaluation of shared-memory communication and synchronization operations in MPIch2 using the Nemesis communication subsystem. Parallel Computing 33(9), 634–644 (2007)

    Article  Google Scholar 

  2. Fan, S., Keller, R., Resch, M.: Advanced memory checking frameworks for MPI parallel applications in Open MPI. In: Proc. of the 5th Int. Workshop on Parallel Tools for HPC (2011) (submitted for publication)

    Google Scholar 

  3. Snell, Q.O., Mikler, A.R., Gustafson, J.L.: NetPIPE: A Network Protocol Independent Performance Evaluator. In: IASTED Int. Conf. on Intelligent Inf. Management and Systems (1996)

    Google Scholar 

  4. Van der Wijngaart, R.F.: The NAS parallel benchmarks version 2.4. Tech. rep., NASA Advanced Supercomputing (NAS) Division, NAS-02-007 (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Keller, R., Fan, S. (2013). PINstruct – Efficient Memory Access to Data Structures. In: Keller, R., Kramer, D., Weiss, JP. (eds) Facing the Multicore-Challenge III. Lecture Notes in Computer Science, vol 7686. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35893-7_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-35893-7_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-35892-0

  • Online ISBN: 978-3-642-35893-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics