High Performance Fortran HPF


 

Meine Publikationen zu HPF (BI 250, iX 5/1994, iX 6/1994, iX 1/2000)

HPF-Compiler am RRZN

Programmierung

Meine persönliche Einschätzung

HPF gaukelt dem Fortran-Programmierer auch in verteilter Umgebung einen globalen Adreßraum (Indexraum für Felder) vor wie bei einem seriellen Fortran-Programm. Die Verteilung der Daten auf die verteilten Speicher der einzelnen Prozessoren eines Parallelrechners wird mit Hilfe von Direktiven gesteuert. Der HPF-Compiler erzeugt automatisch die erforderlichen Aufrufe der Kommunikationsroutinen für den Zugriff auf die verteilten Daten. Die Effizienz des HPF-Programms hängt dann hauptsächlich davon ab, wie geschickt der Programmierer die Daten mit Hilfe der Direktiven auf die Prozessoren verteilen kann, so daß beim Zugriff möglichst wenig (impliziter) Kommunikations-Overhead erforderlich ist; das ist das Problem der Lokalität der Zugriffe.

Wenn die einzelnen Knoten eines Parallelrechners selbst eine aufwendige Speicherstruktur/Speicherhierarchie z.B. mit lokalen Cache-Speichern haben, dann müßte für den effizienten Zugriff auf einzelne Daten nicht nur die Lokalität der Zugriffe auf die Daten im obigen Sinne, sondern auch die Cache-Lokalität berücksichtigt werden. Je nach Parallelrechner (z.B. wenn die Knoten selbst SMP-Rechner sind) kann eine ganze Cache-Hierarchie zum Einsatz kommen, so daß es eigentlich wichtiger wäre, auf die Cache-Lokalität Einfluß nehmen zu können als darauf, daß die Daten beim Zugriff im lokalen Speicher liegen. Zur Zeit bieten weder HPF noch die verfügbaren HPF-Compiler Lösungen an.

Leistungsbewertung

Hinweise zum Leistungsvergleich MPI <=> HPF finden Sie hier.

Sonstige Informationsquellen


20. Jan 2003        Wilhelm Gehrke         gehrke@rrzn.uni-hannover.de