Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Hierarchical computation in the SPMD programming model

Conference ·
Large-scale parallel machines are programmed mainly with the single program, multiple data (SPMD) model of parallelism. While this model has advantages of scalability and simplicity, it does not fit well with divide-and-conquer parallelism or hierarchical machines that mix shared and distributed memory. In this paper, we define the recursive single program, multiple data model (RSPMD) that extends SPMD with a hierarchical team mechanism to support hierarchical algorithms and machines. We implement this model in the Titanium language and describe how to eliminate a class of deadlocks by ensuring alignment of collective operations. We present application case studies evaluating the RSPMD model, showing that it enables divide-and-conquer algorithms such as sorting to be elegantly expressed and that team collective operations increase performance of conjugate gradient by up to a factor of two. The model also facilitates optimizations for hierarchical machines, improving scalability of particle in cell by 8x and performance of sorting and a stencil code by up to 40% and 14%, respectively.
Research Organization:
Lawrence Berkeley National Laboratory (LBNL), Berkeley, CA (United States)
Sponsoring Organization:
USDOE Office of Science (SC)
DOE Contract Number:
AC02-05CH11231
OSTI ID:
1523918
Country of Publication:
United States
Language:
English

References (12)

Harnessing the Multicores: Nested Data Parallelism in Haskell book January 2008
Designing a unified programming model for heterogeneous machines conference November 2012
Hierarchical Pointer Analysis for Distributed Programs book January 2007
Co-array Fortran for parallel programming journal August 1998
Titanium Performance and Potential: An NPB Experimental Study book January 2006
Concurrency Analysis for Parallel Programs with Textually Aligned Barriers book January 2006
The Nas Parallel Benchmarks journal September 1991
Programming for parallelism and locality with hierarchically tiled arrays conference January 2006
Titanium: a high-performance Java dialect journal September 1998
Hierarchical Place Trees: A Portable Abstraction for Task Parallelism and Data Movement book January 2010
Sequoia: Programming the Memory Hierarchy conference November 2006
Enforcing Textual Alignment of Collectives Using Dynamic Checks book January 2010

Similar Records

Visualizing the performance of SPMD and data-parallel programs
Journal Article · Tue Jun 01 00:00:00 EDT 1993 · Journal of Parallel and Distributed Computing; (United States) · OSTI ID:6432710

Supporting divide-and-conquer algorithms for image processing
Journal Article · Sat Jan 31 23:00:00 EST 1987 · J. Parallel Distrib. Comput.; (United States) · OSTI ID:6984858

CilkSpec: Optimistic Concurrency for Cilk
Conference · Sat Nov 14 23:00:00 EST 2015 · OSTI ID:1236312

Related Subjects