Knapp daneben

Genaues Rechnen mit Gleitkommazahlen

Wissen | Know-how

Computern ist es völlig schnuppe, wie viele Stellen sie hinter dem Komma ausgeben. So gaukeln sie Genauigkeiten vor, die häufig nicht mal im Ansatz gegeben sind. Und das Risiko falscher Ergebnisse wird immer gravierender, je schneller die Computer und je tiefer die Rekursionen oder je länger die Iterationen werden. Aber Abhilfe ist in Sicht.

Der inzwischen emeritierte Professor Dr. Ulrich Kulisch, ehemaliger Direktor des Instituts für angewandte Mathematik an der Universität Karlsruhe, kämpft schon seit Jahrzehnten wie Don Quichotte gegen die Windmühlen. Immer wieder nimmt er einen Anlauf, die Mühlenbesitzer sprich Prozessorhersteller zu überzeugen, Hardwareunterstützung für die sogenannte Intervall-Arithmetik einzubauen. Mit ihren SSE, AVX- oder Neon-Einheiten wäre dies eigentlich ein Klacks, aber sie zieren sich und verweisen auf fehlende Standards und auf alternative Softwarelösungen in Bibliotheken. Dabei wurde die Intervall-Arithmetik bereits in den 50er- und 60er-Jahren entwickelt und ihr Sinn schon früh plausibel gemacht. Ihr Anspruch ist allerdings recht hoch, soll sie doch ein mathematisch zuverlässiges Rechnen in Computern sicherstellen.

Und solange Kulisch und seine Mitstreiter es nicht schaffen, die Prozessorhersteller zu überzeugen, ist der fehlerbewusste Programmierer auf sich selbst, die Compiler und entsprechende Bibliotheken angewiesen, etwa Boost. Sun ist diesbezüglich schon mal vorangegangen und hat den Solaris-C++-Compiler um Intervallfunktionen erweitert.

Aber in der Tat fehlt hier eine Standardisierung, und die steht seit vielen Jahren unter P1788 bei der IEEE an. Viele Konzepte hat die dafür gegründete Working Group diskutiert, viele Kontroversen ausgetragen, doch nun endlich im Juli 2014 hat sie den finalen Draft P1788D9.3 einstimmig auf den Weg gebracht. Aus dem recht komplexen Dokument wurde zudem eine Untermenge als „Basis-Standard“ unter P1788.1 ausgekoppelt, die sich vor allem mit den erweiterten Grundfunktionen für den Datentyp „double“ beschäftigt. Diese Fassung liegt nun dem Microprocessor Standardization Committee (MSC) zur Verabschiedung vor. Deren nächstes Meeting findet Mitte Januar statt; wenn alles gut läuft, könnte sich gleich daran die übliche IEEE-„Ballot“-Prozedur anschließen. Alle am Standard interessierten IEEE-Mitglieder können der Ballot-Gruppe beitreten und dann mit abstimmen. Schon im Frühjahr 2015 könnte der Standard in trockene Tücher kommen.

Intel, AMD, Nvidia und Co. haben wahrscheinlich schon Designs in den Schubladen, warten diese IEEE-Standardisierung aber offenbar noch ab, bevor sie die Hardware-Unterstützung für Basis-Intervall-Arithmetik als tolles neues Feature irgendwann in den nächsten Jahren vermarkten werden. ...

Sie möchten wissen, wie es weitergeht?

Als c't-Plus-Abonnent gratis lesen

Anmelden als c't-Plus-Abonnent

weiterführende Links

Kommentare

Anzeige