Given by Chuck Koelbel -- Rice University at DoD Training and Others on 1995-98. Foils prepared August 7 98
Outside Index
Summary of Material
Sixth Presentation in Chuck Koelbel's HPF Tutorial |
Covers whats new in HPF2 and changes in HPF1 |
Outside Index Summary of Material
1. Introduction to Data-Parallelism |
2. Fortran 90/95 Features |
3. HPF Parallel Features |
4. HPF Data Mapping Features |
5. Parallel Programming in HPF |
6. HPF Version 2.0 *** Contents of This Presentation |
New HPFF meetings were held to develop extensions to HPF
|
Areas for extensions
|
Input is still welcome!
|
DYNAMIC, REALIGN, and REDISTRIBUTE
|
Mapping in the presence of sequence association
|
Subroutine interfaces
|
REDISTRIBUTE/REALIGN had two main uses:
|
Changing access patterns
|
Picking a distribution based on input
|
Don't Use It! |
Just say "No!"
|
For new codes:
|
For porting codes:
|
Always use an explicit interface
|
Extended Distribution Patterns
|
Distribution to processor subsets
|
Distribution of derived type components
|
Rules for matching distributions (pointers, dummy parameters) |
!HPF$ DISTRIBUTE x(BLOCK(SHADOW=1),*) |
!HPF$ DISTRIBUTE y(GEN_BLOCK((/4,2,2,4/)),*) |
!HPF$ DISTRIBUTE z(*,INDIRECT(map)) |
!HPF$ PROCESSORS p(6) |
!HPF$ DISTRIBUTE a(*,BLOCK) ONTO p |
!HPF$ DISTRIBUTE b(*,BLOCK) ONTO p(1:3) |
!HPF$ DISTRIBUTE c(*,BLOCK) ONTO p(4:6) |
In the core language of HPF 2
|
In the HPF 2 approved extensions
|
Conceptually, the process remains the same
|
SHADOW
|
GEN_BLOCK
|
INDIRECT
|
Loop Reductions
|
Computation Placement
|
Task Parallelism
|
!HPF$ INDEPENDENT, NEW(xinc), REDUCTION(x) |
DO i = 1, n
|
END DO |
!HPF$ INDEPENDENT |
DO i = 1, 12
|
END DO |
!HPF$ ALIGN (i) WITH x(i) :: ix, y, iy |
!HPF$ DISTRIBUTE x(BLOCK) |
!HPF$ INDEPENDENT |
DO i = 1, n
|
END DO |
!HPF$ PROCESSORS p(8) |
!HPF$ DISTRIBUTE a1(block,*) ONTO p(1:4) |
!HPF$ DISTRIBUTE a2(*,block) ONTO p(5:8) |
!HPF$ TEMPLATE, DIMENSION(4), DISTRIBUTE(BLOCK) ONTO p(1:4) :: td1 |
!HPF$ ALIGN WITH td1(*) :: done1 |
!HPF$ TASK_REGION
|
!HPF$ ON HOME(p(1:4)) BEGIN, RESIDENT
|
100 done1 = .true. |
101 CONTINUE |
!HPF$ END ON
|
!HPF$ ON HOME(p(5:8)) BEGIN, RESIDENT
|
!HPF$ END ON
|
!HPF$ END TASK_REGION |
Sometimes you want to keep things together (GRADE_UP) |
Sometimes you donıt (SORT_UP) |
All new features represent useful information to the compiler
|
REDUCTION
|
ON HOME
|
RESIDENT
|
TASK_REGION
|
Calling HPF from other languages
|
Calling other languages from HPF
|
Parallel Input/Output
|
Tools
|
i0 = 0; i1 = 1 |
READ (file0, ID=id0, END=100) a(i0,1:1048576) |
DO
|
END DO |
100 CONTINUE |
World Wide Web |
These slides |
Mailing Lists:
|
Anonymous FTP:
|