Next: Binärdateien in UNIRAS Up: Zentrale Systeme Previous: Inbetriebnahme des neuen

Umstellung des Fließkomma-Formats auf den Convexen

Das Binär-Format, in dem Fließkommazahlen verarbeitet und abgespeichert werden, ist i.a. rechnerabhängig. Daher werden Daten oft in ASCII-Form abgespeichert, obwohl sowohl das Schreiben wie auch das Lesen (etwa zum Auswerten mit Unigraph) um ein Vielfaches länger dauern. Um nun den Austausch binärer Daten auch in verteilten Systemen zu ermöglichen, wurden schon vor einigen Jahren von der amerikanischen Normungsbehörde IEEE Standards für Fließkommazahlen mit einfacher und doppelter Genauigkeit (32 bzw. 64 Bits) verabschiedet. Diese Formate werden inzwischen von fast allen Workstations und vielen Großrechnern unterstützt.

Auf Convex-Rechnern gab es zunächst ein eigenes Fließkomma-Format, allerdings wurden sehr bald alle Maschinen mit zusätzlicher Hardware zur Unterstützung des IEEE-Formats ausgerüstet. Daher kann man auf unseren Convexen zwischen den beiden Formaten native und IEEE wählen. Diese Wahl beeinflußt nur die interne Darstellung der Zahlen und das entsprechende Binärformat, damit auch den darstellbaren Zahlenbereich, hat aber keine sonstigen Auswirkungen (etwa auf die Rechengeschwindigkeit).

Um für ein Programm ein bestimmtes Format festzulegen, muß man eine entsprechende Option sowohl beim Compilieren wie auch beim Linken angeben, nämlich -fn für das native oder -fi für das IEEE-Format. Eine Mischung beider Formate ist außer bei Assembler-Programmierung nicht möglich, der Linker bricht bei gemischten Objekt-Files mit einer entsprechenden Fehlermeldung ab. Hat man keine Option angegeben, wird ein systemweiter Default verwendet. Z.Zt. ist dies bei uns der native-Mode, so daß daher wohl fast alle BenutzerInnen im native-Mode arbeiten.

Da immer mehr Anwendungsprogramme für die Convexen nur noch im IEEE-Mode ausgeliefert werden und viele AnwenderInnen ihre Daten auf Workstations vor- oder nachbereiten, soll der System-Default auf beiden Convexen am Do, dem 7. Oktober, auf IEEE-Mode umgestellt werden. Bis zu diesem Zeitpunkt sollen auch entsprechende Versionen aller Bibliotheken beschafft worden sein. Für die AnwenderInnen ergeben sich abhängig von den Anwendungen folgende Konsequenzen:

  1. Binärdateien werden nicht verwendet:
    gar keine

  2. Binärdateien werden für eine kurze Zeit zur Auswertung aufgehoben:
    Solche Dateien sind nicht über den Umstellungstermin hinaus verwendbar. Man sollte seine Programme möglichst bald durch direkte Benutzung der -fi-Option explizit umstellen.

  3. alte Binärdaten werden für längere Zeit gebraucht:
    Nach der Umstellung die Option -fn verwenden. Soweit möglich, werden wir native-Versionen der Bibliotheken vorhalten.
    oder besser:
    Daten mit einem kleinen Programm explizit wandeln. (Etwa folgendermaßen: Programm 1 im ``native''-Mode liest Daten binär ein und speichert sie formatiert ab, Programm 2 im ``IEEE''-Mode liest die formatierten Daten und speichert sie binär ab.)

Ein Programm hat keine Möglichkeit zu erkennen, in welchem Format eine Binärdatei vorliegt, sondern es interpretiert sie gemäß seinem eigenen eincompilierten und -gelinkten Format. Daß eine Fehlinterpretation vorliegt, erkennt man (hoffentlich !) daran, daß alle Fließkomma-Werte um einen Faktor 4 zu groß (bzw. zu klein) sind.

Noch eine letzte Bemerkung: Wenn sich die Ergebnisse in den beiden Modi signifikant unterscheiden, ist dies in aller Regel kein Problem der Zahlendarstellung, sondern der Stabilität des verwendeten Algorithmus. Statt das Problem durch ein Kleben an einer Zahlendarstellung unter den Teppich zu kehren, sollte man eine Analyse und ggf. Verbesserung des Algorithmus vornehmen.

Sollten Sie noch Fragen haben, wenden Sie sich an M. Schößler (Tel. 3103) oder an mich (Tel. 3193), bei Problemen, die Uniras-Formate betreffen, an M. Bredehöft (Tel. 2526).

Peter Junglas




Next: Binärdateien in UNIRAS Up: Zentrale Systeme Previous: Inbetriebnahme des neuen