Exploring Traditional and Emerging Parallel Programming Models Using a Proxy Application

  • Authors:
  • Ian Karlin;Abhinav Bhatele;Jeff Keasler;Bradford L. Chamberlain;Jonathan Cohen;Zachary Devito;Riyaz Haque;Dan Laney;Edward Luke;Felix Wang;David Richards;Martin Schulz;Charles H. Still

  • Affiliations:
  • -;-;-;-;-;-;-;-;-;-;-;-;-

  • Venue:
  • IPDPS '13 Proceedings of the 2013 IEEE 27th International Symposium on Parallel and Distributed Processing
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Parallel machines are becoming more complex with increasing core counts and more heterogeneous architectures. However, the commonly used parallel programming models, C/C++ with MPI and/or OpenMP, make it difficult to write source code that is easily tuned for many targets. Newer language approaches attempt to ease this burden by providing optimization features such as automatic load balancing, overlap of computation and communication, message-driven execution, and implicit data layout optimizations. In this paper, we compare several implementations of LULESH, a proxy application for shock hydrodynamics, to determine strengths and weaknesses of different programming models for parallel computation. We focus on four traditional (OpenMP, MPI, MPI+OpenMP, CUDA) and four emerging (Chapel, Charm++, Liszt, Loci) programming models. In evaluating these models, we focus on programmer productivity, performance and ease of applying optimizations.