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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
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)
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)
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)
Van der Wijngaart, R.F.: The NAS parallel benchmarks version 2.4. Tech. rep., NASA Advanced Supercomputing (NAS) Division, NAS-02-007 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)