A Programming Model Performance Study Using the NAS Parallel Benchmarks

Harnessing the power of multicore platforms is challenging due to the additional levels of parallelism present. In this paper we use the NAS Parallel Benchmarks to study three programming models, MPI, OpenMP and PGAS to understand their performance and memory usage characteristics on current multico...

Full description

Bibliographic Details
Main Authors: Hongzhang Shan, Filip Blagojević, Seung-Jai Min, Paul Hargrove, Haoqiang Jin, Karl Fuerlinger, Alice Koniges, Nicholas J. Wright
Format: Article
Language:English
Published: Hindawi Limited 2010-01-01
Series:Scientific Programming
Online Access:http://dx.doi.org/10.3233/SPR-2010-0306
id doaj-b13b9c3e26da403683a9fb6d9e242bd9
record_format Article
spelling doaj-b13b9c3e26da403683a9fb6d9e242bd92021-07-02T02:03:07ZengHindawi LimitedScientific Programming1058-92441875-919X2010-01-01183-415316710.3233/SPR-2010-0306A Programming Model Performance Study Using the NAS Parallel BenchmarksHongzhang Shan0Filip Blagojević1Seung-Jai Min2Paul Hargrove3Haoqiang Jin4Karl Fuerlinger5Alice Koniges6Nicholas J. Wright7Future Technology Group, Computational Research Division, Lawrence Berkeley National Laboratory, Berkeley, CA, USAFuture Technology Group, Computational Research Division, Lawrence Berkeley National Laboratory, Berkeley, CA, USAFuture Technology Group, Computational Research Division, Lawrence Berkeley National Laboratory, Berkeley, CA, USAFuture Technology Group, Computational Research Division, Lawrence Berkeley National Laboratory, Berkeley, CA, USANAS Division, NASA Ames Research Center, Moffett Field, CA, USAUniversity of California at Berkeley, EECS Department, Computer Science Division, Berkeley, CA, USANERSC, Lawrence Berkeley National Laboratory, Berkeley, CA, USANERSC, Lawrence Berkeley National Laboratory, Berkeley, CA, USAHarnessing the power of multicore platforms is challenging due to the additional levels of parallelism present. In this paper we use the NAS Parallel Benchmarks to study three programming models, MPI, OpenMP and PGAS to understand their performance and memory usage characteristics on current multicore architectures. To understand these characteristics we use the Integrated Performance Monitoring tool and other ways to measure communication versus computation time, as well as the fraction of the run time spent in OpenMP. The benchmarks are run on two different Cray XT5 systems and an Infiniband cluster. Our results show that in general the three programming models exhibit very similar performance characteristics. In a few cases, OpenMP is significantly faster because it explicitly avoids communication. For these particular cases, we were able to re-write the UPC versions and achieve equal performance to OpenMP. Using OpenMP was also the most advantageous in terms of memory usage. Also we compare performance differences between the two Cray systems, which have quad-core and hex-core processors. We show that at scale the performance is almost always slower on the hex-core system because of increased contention for network resources.http://dx.doi.org/10.3233/SPR-2010-0306
collection DOAJ
language English
format Article
sources DOAJ
author Hongzhang Shan
Filip Blagojević
Seung-Jai Min
Paul Hargrove
Haoqiang Jin
Karl Fuerlinger
Alice Koniges
Nicholas J. Wright
spellingShingle Hongzhang Shan
Filip Blagojević
Seung-Jai Min
Paul Hargrove
Haoqiang Jin
Karl Fuerlinger
Alice Koniges
Nicholas J. Wright
A Programming Model Performance Study Using the NAS Parallel Benchmarks
Scientific Programming
author_facet Hongzhang Shan
Filip Blagojević
Seung-Jai Min
Paul Hargrove
Haoqiang Jin
Karl Fuerlinger
Alice Koniges
Nicholas J. Wright
author_sort Hongzhang Shan
title A Programming Model Performance Study Using the NAS Parallel Benchmarks
title_short A Programming Model Performance Study Using the NAS Parallel Benchmarks
title_full A Programming Model Performance Study Using the NAS Parallel Benchmarks
title_fullStr A Programming Model Performance Study Using the NAS Parallel Benchmarks
title_full_unstemmed A Programming Model Performance Study Using the NAS Parallel Benchmarks
title_sort programming model performance study using the nas parallel benchmarks
publisher Hindawi Limited
series Scientific Programming
issn 1058-9244
1875-919X
publishDate 2010-01-01
description Harnessing the power of multicore platforms is challenging due to the additional levels of parallelism present. In this paper we use the NAS Parallel Benchmarks to study three programming models, MPI, OpenMP and PGAS to understand their performance and memory usage characteristics on current multicore architectures. To understand these characteristics we use the Integrated Performance Monitoring tool and other ways to measure communication versus computation time, as well as the fraction of the run time spent in OpenMP. The benchmarks are run on two different Cray XT5 systems and an Infiniband cluster. Our results show that in general the three programming models exhibit very similar performance characteristics. In a few cases, OpenMP is significantly faster because it explicitly avoids communication. For these particular cases, we were able to re-write the UPC versions and achieve equal performance to OpenMP. Using OpenMP was also the most advantageous in terms of memory usage. Also we compare performance differences between the two Cray systems, which have quad-core and hex-core processors. We show that at scale the performance is almost always slower on the hex-core system because of increased contention for network resources.
url http://dx.doi.org/10.3233/SPR-2010-0306
work_keys_str_mv AT hongzhangshan aprogrammingmodelperformancestudyusingthenasparallelbenchmarks
AT filipblagojevic aprogrammingmodelperformancestudyusingthenasparallelbenchmarks
AT seungjaimin aprogrammingmodelperformancestudyusingthenasparallelbenchmarks
AT paulhargrove aprogrammingmodelperformancestudyusingthenasparallelbenchmarks
AT haoqiangjin aprogrammingmodelperformancestudyusingthenasparallelbenchmarks
AT karlfuerlinger aprogrammingmodelperformancestudyusingthenasparallelbenchmarks
AT alicekoniges aprogrammingmodelperformancestudyusingthenasparallelbenchmarks
AT nicholasjwright aprogrammingmodelperformancestudyusingthenasparallelbenchmarks
AT hongzhangshan programmingmodelperformancestudyusingthenasparallelbenchmarks
AT filipblagojevic programmingmodelperformancestudyusingthenasparallelbenchmarks
AT seungjaimin programmingmodelperformancestudyusingthenasparallelbenchmarks
AT paulhargrove programmingmodelperformancestudyusingthenasparallelbenchmarks
AT haoqiangjin programmingmodelperformancestudyusingthenasparallelbenchmarks
AT karlfuerlinger programmingmodelperformancestudyusingthenasparallelbenchmarks
AT alicekoniges programmingmodelperformancestudyusingthenasparallelbenchmarks
AT nicholasjwright programmingmodelperformancestudyusingthenasparallelbenchmarks
_version_ 1721343975947763712