Publication | Open Access
Exploring Traditional and Emerging Parallel Programming Models Using a Proxy Application
189
Citations
22
References
2013
Year
Unknown Venue
Cluster ComputingEngineeringComputer ArchitectureSoftware EngineeringSoftware AnalysisProxy ApplicationParallel ToolParallel SoftwareModeling And SimulationParallel ComputingMassively-parallel ComputingSource CodeHybrid ProgrammingCore CountsComputer EngineeringComputer ScienceSoftware DesignComputational ScienceProgram AnalysisParallel ProcessingParallel ProgrammingParallel Programming ModelSystem Software
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1