May 24, 2010
Conference Paper

A Comparison of Shared Memory Parallel Programming Models

Abstract

The dominant parallel programming models for shared memory computers, Pthreads and OpenMP, are both thread-centric in that they are based on explicit management of tasks and enforce data dependencies and output ordering through task management. By comparison, the Cray XMT programming model is data-centric where the primary concern of the programmer is managing data dependencies, allowing threads to progress in a data ?ow fashion. The XMT implements this programming model by associating tag bits with each word of memory, a?ording e?cient ?ne grained data synchronization independent of the number of processors or how tasks are scheduled. When task management is implicit and synchronization is abundant, e?cient, and easy to use, programmers have viable alternatives to traditional thread-centric algorithms. In this paper we compare the amount of available parallelism relative to the amount of work in a variety of di?erent algorithms and data structures when synchronization does not need to be rationed, as well as identify opportunities for platform and performance portability of the data-centric programming model on multi-core processors.

Revised: September 27, 2010 | Published: May 24, 2010

Citation

Mogill J.A., and D.J. Haglin. 2010. A Comparison of Shared Memory Parallel Programming Models. In Cray User's Group (CUG 2010). Seattle, Washington:Cray User Group, Inc. PNNL-SA-74639.