Freier Fall

Heureka dĂĽrfte sicher so mancher Fortran-Programmierer rufen: Still und heimlich hat die Pacific-Sierra Research Corporation den ersten freien Fortran-90-Compiler ins Internet gestellt - und der tritt gleich gegen die Konkurrenz an.

vorlesen Druckansicht
Lesezeit: 7 Min.
Von
  • Wilhelm Gehrke
Inhaltsverzeichnis

Pacific-Sierra Research (PSR) bietet seit kurzem für Linux-(Intel-) Plattformen zusätzlich zu ihrer »professionellen« und kostenpflichtigen Version des VAST/f90-Compiler-Systems eine »persönliche« freie an, eine Variante, mit der sich uneingeschränkt arbeiten läßt. Sie unterscheidet sich von der professionellen nur durch das Fehlen zusätzlicher Optimierungen und des vollen Supports. Die Tabelle VAST/f90-Details zeigt, was das im einzelnen bedeutet.

VAST/f90-Details
Freie Version Professionelle Version
Beschreibung





Fortran 90 mit Einschränkungen Fortran 90 mit Einschränkungen
Fortran-95-Sprachmittel nur FORALL-Anweisung Fortran-95-Sprachmittel nur FORALL-Anweisung
optimierte Feldsyntax optimierte Feldsyntax
Optimierung von Schleifen
Optimierung von AusdrĂĽcken
Unterprogramm-Inlining
gedruckte Dokumentation verfĂĽgbar
Anforderungen g77 (ab Version 0.5.21) g77 (ab Version 0.5.21)
Lizenz fĂĽr nichtkommerzielle Projekte auĂźerhalb des Arbeitsplatzes fĂĽr kommerzielle Projekte, keine Restriktionen
Laufzeitlizenz Codeweitergabe verboten Codeweitergabe zulässig
Lizenzdatei nicht erforderlich erforderlich
Distribution via PSR-Website, per FTP, per Datenträger via PSR-Website, per FTP
Unterstützung keine, außer periodischem Update zur Lösung gesammelter Probleme 6 Monate freier Support, Updates sofort nach Problemlösung
Kosten keine 250 US-$ pro Anwender

VAST/f90 arbeitet mit GNU g77 zusammen, um ein »High-Speed Execution Environment«, so PSR, für Fortran-90-Programme bereitzustellen. Professionelle Anwender können sich die freie Version von der PSR-Website herunterladen und testen, ehe sie eine Lizenz für die professionelle Compilerversion erwerben.

Mehr Infos

Fortran: Fundorte im Web

Es gibt mindestens 17 Compiler fĂĽr Linux-Plattformen: 16 unterstĂĽtzen FORTRAN 77, sechs Fortran 90, drei HPF, einer F und einer Fortran 95.

Da in VAST/f90 eine ganze Reihe von Sprachmitteln nicht implementiert ist (siehe Fundorte im Web), könnte der Verdacht aufkommen, daß es sich bei so vielen Einschränkungen nicht um einen echten Fortran-90-Compiler handelt, sondern nur um ein Subset, ähnlich etwa dem bekannten Subset-Compiler für F oder ELF90. In der Praxis fällt das für Anwender aber kaum ins Gewicht. Und in der Tat bewies die Durchführung der Tests, daß nur eines der teilweise sehr umfangreichen Programme von den Einschränkungen betroffen war.

Nach den Regeln des Fortran-Standards handelt es sich beim VAST/f90 sicher nicht um einen »normgerechten« Fortran-90-Compiler. Die in der Übersicht »VAST/f90-Details« angesprochenen Fortran-95-Sprachmittel bestehen derzeit einzig aus der FORALL-Anweisung; weitere sind zwar vorbereitet, aber noch nicht in das aktuelle Release eingebaut.

VAST/f90 besteht im wesentlichen aus einem Übersetzer, der Fortran-90-Quelltext akzeptiert, nach Fortran 77 wandelt und dann mit dem g77 übersetzt, der wiederum den C-Compiler gcc benötigt. g77 und gcc verwenden ein und dasselbe »Backend« für die Codeerzeugung. Anders als bei f2c [1] setzt der g77 aber nicht auf den gcc auf, erzeugt also keinen C-Code.

Die diversen beteiligten Übersetzer sind für den VAST/f90-Anwender normalerweise völlig transparent. Er »sieht« nur einen Treiber mit dem Namen f90, der die eigentliche Benutzerschnittstelle bereitstellt und das komplette Handling der Übersetzungsvorgänge bis hin zum Linken verwaltet.

Wer nur eine Übersetzung von Fortran 90 nach 77 durchführen will, kann dazu entweder die entsprechende Compileroption für f90 wählen oder unter Umgehung des f90-Treibers den Übersetzer vf90 direkt aufrufen.

Vor dem Installieren des VAST/f90 sollten GNU-FORTRAN 77 und -C auf dem Zielsystem bereits implementiert sein. Dabei empfiehlt es sich, keine ältere Version als v.0.5.21 des g77 zu verwenden, da sonst Schwierigkeiten bei der dynamischen Speicherverwaltung vorkommen und beim Linken »unsatisfied externals« auftreten können. Der gcc ist üblicherweise Teil der g77-Distribution.

Für die Tests auf einem Pentium-Rechner habe ich mir bequemlichkeitshalber von der Pentium Compiler Group (PCG) die für meinen PC benötigten gcc- und g77-Binaries besorgt. Dies sind:

  • BASE, pgcc-1.0.2.linux86.tar.gz, (874,000 KByte) und
  • G77, pg77-1.0.2.linux86.tar.gz, (923,147 KByte).

Das Einrichten ging in der Reihenfolge BASE, G77 und VAST/f90 (vf90_per.tar) reibungslos vonstatten. Dabei sind die knappen Angaben in der README-Datei von VAST/f90 völlig ausreichend.

Testplattform war derselbe Pentium 90 mit 32 MByte RAM, der auch schon als Basis fĂĽr die Begutachtung der Fortran-Compiler unter Windows NT diente, die in der iX im Mai erschien [2]. Dort sind auch die hier ebenfalls verwendeten Programme des Quetzal-Benchmarks beschrieben. Als Betriebssystem fungierte S.u.S.E. Linux 5.1 (Kernel 2.0.32). Die Ergebnisse basieren auf den voreingestellten Optionen. Weitere Experimente mit Optimierungen fanden nicht statt.

Beim Quetzal und anderen getesteten Programmen hat sich gezeigt, daß die freie Version des VAST-Compiler von Pacific-Sierra Research sowohl hinsichtlich der Compilationszeiten als auch der Exekutionszeiten fast so effizient ist wie der von NAG. Lediglich das Testprogramm pochhammer mit rekursiver Funktion lief wesentlich langsamer unter VAST/f90 als unter NAGWare/f95. Alle Fehlermeldungen entstammten der Fortran-90/95-Ebene. Die beteiligten Zwischensprachen (g77, gcc) hatten nichts zu bemängeln. Die Qualität der Debugger war nicht Gegenstand des Testes. Unix/Linux-Debugger für Fortran 90/95 sind bekanntlich wenig brauchbar.

Obwohl oder gerade weil die Linux-Compiler ohne grafische Entwicklungsumgebung geliefert werden, ging die Umstellung der Testprogramme und die DurchfĂĽhrung der Tests wesentlich schneller vonstatten als unter Windows NT. Die Bedienung auf Kommandoebene lief bis auf die Schwierigkeiten mit dem freien Quelltextformat (siehe Tabelle Testergebnisse) bei VAST/f90 wie gewohnt ab; unter Windows NT sieht das je nach Compiler ganz anders aus, wie der Bericht WinkelzĂĽge [3] im gleichen Heft zeigt.

Testergebnisse
VAST/f90 Version 3.4M7 NAGWare/f95 Version 1.0
Testprogramm Ăśbersetzungszeit AusfĂĽhrungszeit Ăśbersetzungszeit AusfĂĽhrungszeit
big_integers 7 s1 12 s 2 s -
dynamics 1 - 2 s 14 s 1 - 2 s 12 s
gas_dynamics s. FuĂźnote3 - s. FuĂźnote2 -
gen_romans 17 s 22 s 6 s 19 s
kepler 3 s 80 s 3 s 65 s
lu 55 s 2 s 60 s 2 s
overlap 22 s 27 s 20 s 26 s
pochhammer4 2 s 83 s 2 s 25 s
scatter 60 s s. FuĂźnote5 70 s s. FuĂźnote5
static 1 - 2 s 2 - 3 s 1 - 2 s 2 - 3 s
1 MODULE-Probleme bei freiem Quelltextformat, nach Umwandlung in festes Quelltextformat o.k.
2 viele unsinnige Fehlermeldungen
3 Unterprogramme lieĂźen sich einzeln in festem Quelltextformat ĂĽbersetzen. Aber bei Angabe von f90 -Wv,-ya *.f90 wirkte die Option -ya nur fĂĽr die erste Quelltextdatei; bei allen weiteren schaltete der Compiler auf die Default- Einstellung zurĂĽck.
4 rekursive Funktion
5 Unsatisfied Externals beim Linken; wahrscheinlich mit dem neuesten g77 behoben.

Die Effizienz beim Übersetzen war bei VAST/f90 meistens deutlich besser als bei den getesteten NT-Compilern. Die unter Linux erzeugten Codes liefen bei mehreren Programmen sogar deutlich schneller als die optimierten NT-Codes [2]. Eine Ausnahme bildet nur das oben erwähnte Programm pochhammer.

Zu den teuren Fortran-90/95-Compilern für Windows NT stellt das freie VAST/f90 für Linux-PCs eine echte Alternative dar. Hinsichtlich des unterstützten Sprachumfangs fällt es jedoch deutlich zurück. Denn VAST/f90 unterstützt weder das volle Fortran 90/95 - im Gegensatz zu NAGWare/f95 und denen für Windows 9x/NT -, noch andere herstellerübliche Spracherweiterungen, wie sie die meisten Übersetzer für Windows 9x/NT anbieten. Mit seiner Übersetzungs- und Ausführungsgeschwindigkeit kann das frei erhältliche VAST/f90 durchaus gegen die Konkurrenten antreten. Und wer das Arbeiten auf Kommandoebene gewohnt ist und keine grafische Entwicklungsumgebung braucht, empfindet das Arbeiten mit VAST/f90 ohne verwirrendes Armaturenbrett, Servo-Lenkung und elektronisches Automatikgetriebe als wohltuend direkt. Und für die Fortran-Gemeinde, die vermutlich weiterhin vergeblich auf ein GNU g90 wartet, ist die freie Version von VAST/f90 ganz sicher eine echte Alternative.

Wilhelm Gehrke
ist wissenschaftlicher Mitarbeiter am Regionalen Rechenzentrum des Landes Niedersachsen (RRZN) an der Universität Hannover. Er hat mehrere Fachbücher über FORTRAN 77, 90 und 95 sowie über die Programmiersprache F verfaßt.

[1] Wilhelm Gehrke; Fortran; Transponiert; Ăśbersetzer von FORTRAN 77 nach C: f2c; iX 9/94, S. 102 ff.

[2] Wilhelm Gehrke; Programmiersprachen; Numerische Enklaven; 5 Fortran-Compiler fĂĽr Windows NT; iX 5/98, S. 79 ff.

[3] Ralph HĂĽlsenbusch; Fortran; WinkelzĂĽge; Sechs Fortran-Compiler fĂĽr Windows NT mit SPECfp95 untersucht; iX 8/98, S. 81 ff.

Mehr Infos

iX-WERTUNG

  • [+] freier Fortran-90-Compiler fĂĽr Linux
  • [+] effiziente Ăśbersetzung und schnelle Codes
  • [-] fehlende Sprachmittel (siehe Fortran-Compiler fĂĽr Linux)
Fortran-Compiler fĂĽr Linux
Hersteller Produkt Plattform
Absoft f90, f77 i86
Portland f90, hpf, f77 i86
NAGWare f90 + gcc, f95 + gcc i86
PSR f90 + g77, hpf + g77 i86
Microway NDP f90, f77 i86, Alpha (nur f77)
NASoftware f90, hpf i86
GNU f2c + gcc, g77 i86, RISC und andere
Imagine1 F + gcc i86
Siemens Nixdorf f77 i86

(rh)