The Portland Group HPF pghpf

Am RRZN gibt es auf der Cray T3E den HPF-Compiler pghpf Version 2.4 der Portland Group Inc. (PGI). Dieser Compiler ist tatsächlich ein Präprozessor, der HPF-Quelltext akzeptiert und in ein Fortran-90-Programm übersetzt, das dann mit dem verfügbaren f90-Compiler CF90 weiterverarbeitet wird. Dieser für die Codeerzeugung verwendete "Knoten-Compiler" ist für den HPF-Programmierer weitestgehend unsichtbar. Der pghpf-Compiler wird von PGI für viele Rechner/System-Plattformen angeboten. In den Release Notes (s.u.) finden Sie auch einige spezielle Hinweise zu pghpf auf der T3E. Am RRZN steht der pghpf-Compiler erst nach Eingabe von
    init_pghpf24
zur Verfügung.


Online-Dokumentation

Man Pages

FAQ

Spracheinschränkungen gegenüber HPF und Fortran 90

Obwohl pghpf 2.4 den nativen Fortran-90-Compiler der T3E für die Code-Erzeugung verwendet, gibt es einige Spracheinschränkungen gegenüber Fortran 90. Darüberhinaus gibt es Spracheinschränkungen gegenüber HPF. Nähere Angaben finden Sie hier.

Compilation

Die Übersetzung erfolgt über die Benutzerschnittstelle pghpf.

Die Liste aller für pghpf relevanten Schalter, Optionen, Umgebungsvariablen, usw. erhalten Sie durch Angabe der Optionen -help -v.

Wenn Sie sehen wollen, welche Komponenten mit welchen Optionen beim Aufruf von pghpf an dem Übersetzungsprozeß mitwirken, dann sollten Sie einen "Trockenlauf" starten, indem Sie die Option -dryrun angeben. Also z.B.

    pghpf -Mfree -dryrun test.hpf

Programmausführung

Die Ausführung eines pghpf-Programmes erfolgt mit dem Kommando mpprun. Das sieht dann im Prinzip so aus:
    mpprun -n procs a.out <user_opt> <-pghpf hpf_runtime_options>
Die Option -n ist erforderlich; sie spezifiziert die Anzahl procs der Prozessoren für diese Ausführung des Programmes. Wenn die Anzahl der zu verwendenden Prozessoren bereits zuvor beim Compilieren oder Linken des Programmes mittels der Option -X procs festgelegt worden ist, darf sie zur Ausführung des Programmes nicht mehr geändert werden.

Als hpf_runtime_options sind nur die folgenden zwei Optionen zulässig: -stat und -np.

Debugging

Using the CRAY T3E version of TotalView from the Cray Research Division of SGI, you can:

Für die Laufzeitfehlersuche mittels TotalView muß das HPF-Programm mit der Option -g übersetzt und gelinkt werden. Zum Beispiel

pghpf -g myprog.hpf
Beim Start des Debuggers TotalView muß die Option -pghpf angegeben werden. Zum Beispiel
totalview -pghpf a.out
Weitere Informationen zum Debugger finden Sie in den Man Pages man totalview und im Online-Handbuch.

Profiling, Leistungsanalyse

Leistungsbewertung

Hinsichtlich der Leistung von pghpf 2.4 auf der Cray T3E sei hier zitiert:

"New NAS Parallel Benchmark Results on the CRAY T3E actually show HPF versions outperforming the portable MPI (NPB 2.2) versions on some of these benchmarks under PGHPF 2.4!"
Die zitierten Benchmark-Ergebnisse findet man hier.

Die Ergebnisse konnten auf der Cray T3E beim ZIB in Berlin bestätigt werden.

Vergleich der Programme BT, EP, FT und SP jeweils in Originalform und in HPF-Form. Die Benchmark-Programme wurden alle einzeln auf der T3E beim ZIB gerechnet (jeweils mit 64 PEs und nur in Version B).

64 PEs HPF MPI
Programm elapsed sec user CPU sec sys CPU sec elapsed sec user CPU sec sys CPU sec
BT.B.64 186.77 11809.06 82.94 193.04 12205.95 94.49
EP.B.64 17.24 1041.33 10.87 19.55 1197.21 10.62
FT.B.64 12.23 637.44 35.37 48.02 2932.6 36.61
SP.B.64 188.36 11925.98 76.30 140.02 8836.87 67.51

Kurzhinweise zu den BM-Programmen

ProgrammEigenschaften
BT5461 LOC, application BM, block tridiagonal solver
EP 306 LOC, "embarrassingly parallel", kernel BM, low interprocessor communication
FT1981 LOC, kernel BM, 3-D FFT PDE solver, long-distance communication
SP4736 LOC, application BM, pentadiagonal solver


19. Feb 1999        Wilhelm Gehrke         gehrke@rrzn.uni-hannover.de