Table of Contents
An HPspmd Programming Model
Goals of this lecture
Contents of Lecture
HPF status
Highlevel 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
2dimensional 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
Blockwise 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
Redblack 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 twodimensional 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
