Scalable memory use in MPI: A case study with MPICH2

David Goodell, William Gropp, Xin Zhao, Rajeev Thakur

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

One of the factors that can limit the scalability of MPI to exascale is the amount of memory consumed by the MPI implementation. In fact, some researchers believe that existing MPI implementations, if used unchanged, will themselves consume a large fraction of the available system memory at exascale. To investigate and address this issue, we undertook a study of the memory consumed by the MPICH2 implementation of MPI, with a focus on identifying parts of the code where the memory consumed per process scales linearly with the total number of processes. We report on the findings of this study and discuss ways to avoid the linear growth in memory consumption. We also describe specific optimizations that we implemented in MPICH2 to avoid this linear growth and present experimental results demonstrating the memory savings achieved and the impact on performance.

Original languageEnglish (US)
Title of host publicationRecent Advances in the Message Passing Interface - 18th European MPI Users' Group Meeting, EuroMPI 2011, Proceedings
Pages140-149
Number of pages10
DOIs
StatePublished - 2011
Event18th European Message Passing Interface Users' Group Meeting, EuroMPI 2011 - Santorini, Greece
Duration: Sep 18 2011Sep 21 2011

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume6960 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Other

Other18th European Message Passing Interface Users' Group Meeting, EuroMPI 2011
Country/TerritoryGreece
CitySantorini
Period9/18/119/21/11

ASJC Scopus subject areas

  • Theoretical Computer Science
  • General Computer Science

Fingerprint

Dive into the research topics of 'Scalable memory use in MPI: A case study with MPICH2'. Together they form a unique fingerprint.

Cite this