Enabling low-overhead hybrid MPI/OpenMP parallelism with MPC

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

With the advent of multicore- and manycore-based supercomputers, parallel programming models like MPI and OpenMP become more widely used to express various levels of parallelism in applications. But even though combining multiple models is possible, the resulting performance may not reach expected results. This is mainly due to collaboration issues between the runtime implementations. In this paper, we introduce an extended taxonomy of hybrid MPI/OpenMP programming and a new module to the MPC framework handling a fully 2.5-compliant OpenMP runtime completely integrated to an MPI 1.3 implementation. The design and implementation guidelines enable two features: (i) built-in oversubscribing capabilities with performance comparable to state-of-the-art implementations on pure OpenMP benchmarks and programs, and (ii) the possibility to run hybrid MPI/OpenMP applications with a limited overhead due to the mix of two different programming models.

Original languageEnglish
Title of host publicationBeyond Loop Level Parallelism in OpenMP
Subtitle of host publicationAccelerators, Tasking and More - 6th International Workshop on OpenMP, IWOMP 2010, Proceedings
Pages1-4
Number of pages4
DOIs
Publication statusPublished - 13 Aug 2010
Externally publishedYes
Event6th International Workshop on OpenMP, IWOMP 2010 - Tsukuba, Japan
Duration: 14 Jun 201016 Jun 2010

Publication series

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

Conference

Conference6th International Workshop on OpenMP, IWOMP 2010
Country/TerritoryJapan
CityTsukuba
Period14/06/1016/06/10

Fingerprint

Dive into the research topics of 'Enabling low-overhead hybrid MPI/OpenMP parallelism with MPC'. Together they form a unique fingerprint.

Cite this