Exploring Traditional and Emerging Parallel Programming Models Using a Proxy Application

Ian Karlin, Abhinav Bhatelé, Jeff Keasler, Bradford L. Chamberlain, Jonathan D. Cohen, Zachary DeVito, Riyaz Haque, Daniel Laney, EDWARD A. LUKE, Felix Wang, David F. Richards, Martin Schulz, Charles H. Still · 2013

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.

Read the paper · More papers on PaperTik