HPF/JA: HPF Extensions for Real-World Parallel Applications
Yoshiki Seo, NEC Corp.
(seo@ccm.cl.nec.co.jp)
Hidetoshi Iwashita, Fujitsu Ltd.
(hideto@spp.hpc.fujitsu.co.jp)
Hiroshi Ohta, Hitachi Ltd.
(ohta@sdl.hitachi.co.jp)
Hitoshi Sakagami, Himeji Inst. Tech.
(sakagami@comp.eng.himeji-tech.ac.jp)
Shun Takahashi, Hitachi Ltd.
(shunchan@erl.hitachi.co.jp)
Abstract
JAHPF (Japan Association for High Performance Fortran) is a coalition of
about 20 compiler vendor members and 20 HPC user members in Japan to
promote the HPF language. It started 1996 and its major activities under
way are as follows:
- Proposing a set of HPF extensions (HPF/JA) to enhance applicability
of HPF in developing real-world parallel applications.
- Accumulating experiences of using HPF, and making feedback to HPF
specification and compiler implementations.
- Developing HPF benchmark programs.
- Translating HPF documents into Japanese.
- Educating HPF users.
We developed the first version of HPF/JA which includes the following
functionalities:
- Asynchronous communication
- This enables users to explicitly specify the possibility of
overlapping communication and computation in a similar way to asynchronous
I/O in the HPF2.0 approved extensions.
- User controllable SHADOW
- In HPF/JA, the coherence of the SHADOW data can be
controlled with a REFLECT directive to reduce the communication to it.
Moreover, overlapped computation in it to reduce communication can be
specified with EXT_HOME clause in an ON directive.
- Reduction kind
- In HPF/JA, reduction variables may be referred to in any syntax,
even in procedure calls, as long as a user specifies the reduction kind
in the REDUCTION clause, while HPF2.0 allows reduction variables to
appear only in restricted forms of reduction statements.
- Communication schedule reuse for irregular array accesses
- Generating efficient communications for unstructured programs is
essential to improve the applicability of data parallel languages.
UNCHANGED_INDEX directive gives users a handle to assert that data
access patterns for a specific indirect array access remain the same
through multiple invocation of the enclosing DO loop, in order to
reduce the cost of generating communication patterns.
- Parallelization support for loops including procedures calls
with side effects
- HPF/JA allows a user to describe exact array access range
information in an INTERFACE BLOCK for parallelizing a loop including
procedure calls with side effects.
In the talk we first present the specification of the above extensions.
Then we discuss their applicability to the following application programs:
- 3D compressible fluid code using an explicit scheme;
- 2D compressible fluid code using the CIP method;
- 2D electrostatic particle code using the PIC method;
- Ab-initio molecular dynamics code using the Car-Parrinello method.