Data Parallelism for Engineering Applications: HPF, HPF2 and JaHPF
14.01.02
Start Lecture by clicking here
Content
Author:
Rolf Rabenseifner
Data Parallelism for Engineering Applications: HPF, HPF2 and JaHPF
Outline, Introduction
Multicomputer
Multiprocessor
Goals of HPF
HPF - History
Data Distribution
Goals of Data-Mapping
Concept of Data-Mapping
Problem-Mapping: TEMPLATE, ALIGN and REALIGN
Processor-Mapping: PROCESSORS, DISTRIBUTE and REDISTRIBUTE
Example: Serial code
Example: Data distribution
Distribution matrix * vector
Limitations of Data Distribution
Compile & Run
PGHPF Compiler-Syntax
The PGI HPF-Compilation System
Exercise 1: Matrix multiplication (i)
Exercise 1: Matrix multiplication (i) — continued
Exercise 1: Matrix multiplication (i) — Results
Possible distributions
Independent Loops
Motivation: Independent loops
Expression of Parallelism: INDEPENDENT
Expression of Parallelism: FORALL
Expression of Parallelism: FORALL (continued)
WHERE-statement
Exercise 2: Matrix multiplication (ii)
Exercise 2: Matrix multiplication (ii) — continued
Pure, Reduction
The PURE attribut
Expression of Parallelism: PURE Procedures
HPF-2: Parallelism: Loop-Reductions
Example: Reduction
The Set-Compute-Rule
Communication-Rules
Expression of Parallelism: Execute ON HOME
Exercise 3: Derivation
Exercise 3: Derivation (continued)
Shadows, Intrinsic Functions
Intrinsics
HPF and intrinsics
Intrinsic types
Intrinsic types
HPF-2: Distribution with Shadowing
Exercise 4: Second derivation
Exercise 4: Second derivation (continued)
Kinds of Distribution
Communication-Requirements
Communication: BLOCK
Communication: BLOCK, Non-Matching Dimensions
Communication: CYCLIC
Communication: CYCLIC, Non-Matching Dimensions
Effort of communication
Common blocks
Example: common blocks
Problems in HPF
Example: common blocks
HPF-2: Parallelism: Loop-Reductions
Exercise 5: Block Distribution
Exercise 5: Block Distribution (continued)
Features of HPF 2.0
HPF-2 and Approved Extensions
HPF-2: Distribution to Processor-Subsets
HPF-2: Irregular Distributions
HPF-2: Distribution with Flexible Blocksize
HPF-2: Distribution of Derived Type Components
Communication: Remarks
Minimising Communication
HPF-2: Asynchronous I/O
HPF-2: Approved Extensions, Deletions & Changes
Exercise 6: Multiplication: sparse matrix * vector
Exercise 6: Multiplication: sparse matrix * vector (continued)
Summary
Granularity, Architecture and Comfort
Usability of HPF in CFD
Programming-Models for NUMA
HPF-Products
Exercise 7: A heat transfer example
Exercise 7: A heat transfer example (continued)
JaHPF
HPF/JA 1.0
HPF problems
HPF extensions overview
HPF/JA 1.0 - overview
HPF/JA 1.0 - reduction kind
HPF/JA 1.0 - asynchronous communication
HPF/JA 1.0 - shadow extensions
HPF/JA 1.0 - shadow extensions
HPF/JA 1.0 - REFLECT / LOCAL directive
HPF/JA 1.0 - ON_EXT Clause
HPF/JA 1.0 - communication pattern reuse
HPF/JA 1.0 - parallelization patterns and HPF capabilities
HPF-Info
HPF-Info
Back to the Parallel Programming Workshop Overview