The Myrmics memory allocator: Hierarchical, message-passing allocation for global address spaces

Spyros Lyberis, Polyvios Pratikakis, Dimitrios S. Nikolopoulos, Martin Schulz, Todd Gamblin, Bronis R. De Supinski

Research output: Contribution to journalArticlepeer-review

3 Scopus citations

Abstract

Constantly increasing hardware parallelism poses more and more challenges to programmers and language designers. One approach to harness the massive parallelism is to move to task-based programming models that rely on runtime systems for dependency analysis and scheduling. Such models generally benefit from the existence of a global address space. This paper presents the parallel memory allocator of the Myrmics runtime system, in which multiple allocator instances organized in a tree hierarchy cooperate to implement a global address space with dynamic region support on distributed memory machines. The Myrmics hierarchical memory allocator is step towards improved productivity and performance in parallel programming. Productivity is improved through the use of dynamic regions in a global address space, which provide a convenient shared memory abstraction for dynamic and irregular data structures. Performance is improved through scaling on many-core systems without system-wide cache coherency. We evaluate the stand-alone allocator on an MPI-based x86 cluster and find that it scales well for up to 512 worker cores, while it can outperform Unified Parallel C by a factor of 3.7-10.7×.

Original languageEnglish
Pages (from-to)15-24
Number of pages10
JournalACM SIGPLAN Notices
Volume47
Issue number11
DOIs
StatePublished - Nov 2012
Externally publishedYes

Keywords

  • GAS
  • Parallel memory allocator

Fingerprint

Dive into the research topics of 'The Myrmics memory allocator: Hierarchical, message-passing allocation for global address spaces'. Together they form a unique fingerprint.

Cite this