Performance comparison of MPI and OpenMP on shared memory multiprocessors

Géraud Krawezik, Franck Cappello

Research output: Contribution to journalArticlepeer-review


When using a shared memory multiprocessor, the programmer faces the issue of selecting the portable programming model which will provide the best performance. Even if they restricts their choice to the standard programming environments (MPI and OpenMP), they have to select a programming approach among MPI and the variety of OpenMP programming styles. To help the programmer in their decision, we compare MPI with three OpenMP programming styles (loop level, loop level with large parallel sections, SPMD) using a subset of the NAS benchmark (CG, MG, FT, LU), two dataset sizes (A and B), and two shared memory multiprocessors (IBM SP3 NightHawk II, SGI Origin 3800). We have developed the first SPMD OpenMP version of the NAS benchmark and gathered other OpenMP versions from independent sources (PBN, SDSC and RWCP). Experimental results demonstrate that OpenMP provides competitive performance compared with MPI for a large set of experimental conditions. Not surprisingly, the two best OpenMP versions are those requiring the strongest programming effort. MPI still provides the best performance under some conditions. We present breakdowns of the execution times and measurements of hardware performance counters to explain the performance differences.

Original languageEnglish (US)
Pages (from-to)29-61
Number of pages33
JournalConcurrency and Computation: Practice and Experience
Issue number1
StatePublished - Jan 2006
Externally publishedYes


  • MPI
  • OpenMP
  • Performance evaluation
  • Shared memory multiprocessors

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Software
  • Computer Science Applications
  • Computer Networks and Communications
  • Computational Theory and Mathematics


Dive into the research topics of 'Performance comparison of MPI and OpenMP on shared memory multiprocessors'. Together they form a unique fingerprint.

Cite this