An HPspmd Programming Model

1/26/00


Click here to start


Table of Contents

An HPspmd Programming Model

Goals of this lecture

Contents of Lecture

HPF status

High-level SPMD libraries

Idea of HPspmd

Features of HPspmd

Benefits

Language extensions

An HPspmd program

PPT Slide

HPJava

Processes and Process Grids

Basic use of grids

Distributed Arrays in HPJava

2-dimensional array distributed over p

Parallel programming

The overall construct

A parallel stencil update program

Shift communication

About overall loop indexes

Mapping of locations to grid

Distributed indexes

The at construct

Relationship between overall and at

Global index expression

A Complete example

Initialize ‘u’, ‘r’

Main loop

Load balancing—Mandelbrot set example

Mandelbrot set computation

Inner loop

Changing mapping of problem

Block-wise decomposition of Mandelbrot set

Cyclic decomposition of Mandelbrot set

Using ghost regions

Shifted indexes

Creating arrays with ghost regions.

Filling ghost regions

Laplace equation using ghost regions

Main loop

Red-black version

Conway’s Life using ghost regions

Main loop

Collapsed Distributions

Sequential array dimensions

Syntax for sequential dimensions

Replicated distributions

Aside: replicated variables versus replicated values

Matrix multiplication example

Remarks on matrix example

General matrix multiplication

Distribution group of arrays

Array sections

A two-dimensional FFT

2d FFT (pseudocode)

Aside: an array section expression is not a variable...

Cholesky decomposition example

Cholesky decomposition code

Column normalization details

Aside: correct use of subscripts

Subranges

Restricted groups

Rules of HPJava

The active process group

Rules for distributed control constructs

Rules for distributed array constructors

Rules for element reference subscripts

General rule for element access

Email: dbc@npac.syr.edu

Home Page: http://www.npac.syr.edu/projects/pcrc/HPJava/beijing.html