Table of Contents
Outline
A Short History of HPF
HPF Vendors
High Performance Fortran
Data-Parallel Languages
How HPF Is Implemented
HPF Implementation Effects on Programmers
HPF Language Features
Outline
Data Parallelism
Fortran 90
FORALL Statement
Nested FORALL Statements
Why Use FORALL?
Why Use FORALL? (2)
PURE Functions
PURE Functions and FORALL
PURE for Mandelbrot Sets
Avoiding the PURE Function in Mandelbrot
INDEPENDENT Assertion
INDEPENDENT with Nested Loop
Meaning of INDEPENDENT
INDEPENDENT Assertion Can Depend on Data
Why Use INDEPENDENT?
Why Use INDEPENDENT? (2)
Implementation of FORALL and INDEPENDENT
Implementation of FORALL and INDEPENDENT (2)
Implementation of FORALL and INDEPENDENT (3)
The HPF Library
HPF Library Contents
HPF Library
GRADE_UP vs SORT_UP
Implementation of HPF Library
Uses of Data-Parallel Features
EXTRINSIC Routines
EXTRINSIC as a Contract
EXTRINSIC as a Contract (2)
EXTRINSIC(HPF_LOCAL)
EXTRINSIC(HPF_LOCAL) Example
Outline
Data Mapping
DISTRIBUTE Directive
More Examples of DISTRIBUTE
Choosing a Good Distribution
Choosing a Good Distribution (2)
Choosing a Good Distribution (3)
DISTRIBUTE and Load Balance
Implementation of DISTRIBUTE
Implementation of DISTRIBUTE (2)
ALIGN Directive
More Examples of ALIGN
Yet More Examples of ALIGN
Why Use ALIGN?
Implementation of ALIGN
Uses of Mapping Features
Data Mapping for Dummy Arguments
HPF Mapping Options for Dummy Arguments
Subroutine Interfaces for Dummies™
Explicit Subroutine Interfaces
Explicit Subroutine Interfaces (2)
Specialized and Generalized Mappings
Specialized and Generalized Mappings in Words
Specialized and Generalized Mappings in Words (2)
Dynamic Data Mappings
Examples of DYNAMIC
Outline
Designing HPF Programs
Gaussian Elimination Algorithm
Gaussian Elimination: HPF Issues
Gaussian Elimination: HPF Program
Conjugate Gradient Algorithm I
Conjugate Gradient Algorithm II
Conjugate Gradient: HPF Issues
Conjugate Gradient: HPF Program I
Conjugate Gradient: HPF Program II
Outline
Structure of HPF 2
Features of HPF 2
New Parallel Features: REDUCTION
New Parallel Features: ON
New Parallel Features: TASK_REGION
New Data Mappings
New Data Mappings (2)
Data Mappings for Pointers
Input/Output
Example: Irregular Mesh
HPF 1 Example: Irregular Mesh
HPF 1 Example: Irregular Mesh (2)
HPF 2 Example: Irregular Mesh
HPF 2 Example: Irregular Mesh (2)
Implementation Challenges for HPF 2
HPF Summary
|