
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 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.
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] [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:
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] [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 [#[3] Winkelzüge [3]] im gleichen Heft zeigt.
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] [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.
Literatur
[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.
| iX-WERTUNG |
|
Dieser Text ist der Zeitschriften-Ausgabe 08/1998 von iX entnommen.
Parallelprogrammierung - die Kunst der Multi-Core-Nutzung
Agile ALM - agile Praktiken im Application Lifecycle Management
Webentwicklung - Applikationen für mobile Clients