Table of Contents
Issues in Translation of High Performance Fortran
Goals of this lecture
Contents of Lecture
A simple HPF program
Translation of simple program
Setting up the environment
Allocating segment of the distributed array
Testing this processor holds a segment
Computing parameters of locally held segment
Loop over local elements
An HPF procedure
Procedure call with block-distributed actual
Procedure call with cyclically distributed actual
Procedure call with strided alignment of actual
Procedure call with row-aligned actual
The problem
Requirements for an array descriptor
Distributed array dimensions
Converting block distribution to cyclic distribution
Distributed ranges
Dealing with “hidden” dimensions of sections
DAD groups
Representing processor arrangements
Hierarchy of process grids
Interface of Procs and Dimension
Using Procs in translation
Restricted process groups
Example restricted groups in 2-dimensional grid
Representation of subgrids
The Group class
Ranges
A hierarchy of ranges
Interface of the Range class
Translating simple HPF program to C++
Features of C++ translation
The Block and Location structures
Memory strides
A DAD
Interface of the DAD class
Map structure
Translating HPF program with inherited mapping
Translation of call with block-distributed actual
Translation of call with cyclically distributed actual
Translation of call with strided alignment of actual
Translation of call with row-aligned actual
Other features of the Adlib DAD
Other features of the Adlib DAD, II
Next Lecture:
|