Exploring Traditional and Emerging Parallel Programming Models Using a Proxy Application
Citations Over TimeTop 1% of 2013 papers
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.
Related Papers
- → Evaluation of CUDA for X-Ray Imaging System(2012)4 cited
- → On measuring programmer team productivity(2002)5 cited
- → A Versatile Laboratory Programmer(1972)22 cited
- The Framework and the Education for the Programmer(2005)
- High speed molecular dynamics simulation approach based on CUDA(2013)