para//el 2013: Gustafsons Gespür für genaue Zahlen

Es gibt ja auch in der IT viele berühmte Menschen, die mehr oder weniger Beeindruckendes geleistet haben. Umso erfreulicher ist es dann, wenn man die Gelegenheit bekommt, einer Koryphäe persönlich zu begegnen.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 5 Min.
Von
  • Michael Wiedeking

Ich muss zu meiner Schande gestehen, dass ich eigentlich bei allen benannten Gesetzen oder Prinzipien irgendwie davon ausgehe, dass die Namensgeber schon das Zeitliche gesegnet haben. Das entbehrt natürlich jeder Grundlage, hängt aber wahrscheinlich einfach nur damit zusammen, dass die vielen benennenswerten Dinge so schlecht unterscheidbar wären. So kenne ich zwar das Moore'sche Gesetz, wusste aber bis vor fünf Minuten nicht, dass Herr Moore nicht nur putzmunter, sondern auch zweitgrößter Aktionär von Intel ist. Dass ich aber einmal einem derartigen Namensgeber persönlich gegenüberstehen würde, habe ich bisher nicht in Betracht gezogen.

Ich bin ja gerade auf der para//el 2013, auf der ich auch einen Vortrag gehalten habe. Diese Konferenz wird schon zum zweiten Mal von heise Developer veranstaltet und lockte wie schon letztes Jahr über 160 Teilnehmer nach Karlsruhe, die sich für alles rund um das Thema Nebenläufigkeit und Parallelität in der Softwareentwicklung interessieren.

Letztes Jahr habe ich dort einen einführenden Vortrag über Multicore-Rechner gehalten und bei der Gelegenheit auch über das Amdahl'sche Gesetz referiert. Aber wer Amdahl erwähnt kann auch Gustafson nicht unerwähnt lassen. Und so habe ich am Beispiel des Pizzabackens sowohl die Ahmdahl'sche als auch Gustafson'sche Sicht auf die Parallelisierbarkeit und deren Grenzwertverhalten gegenübergestellt.

John Gustafson auf der para//el 2013

So war ich überrascht, dass der Amerikaner, den ich am Vorabend der Konferenz flüchtig nur als John kennen gelernt hatte, die Eröffnungs-Keynote hielt und, wie es der Zufall wollte, auch Gustafson hieß. Später ist dann doch noch der Groschen gefallen und so konnte mich tatsächlich davon überzeugen, dass es sich bei John um den Namensgeber des gleichnamigen Gesetzes handelt.

Seine Keynote mit dem Titel Exascale Arithmetic – Variable-precision math with massive data parallelism to save energy, bandwidth, storage, and get right answers war brillant. Besonders interessant fand ich bei seinem Vortrag seine Überzeugung, dass die Parallelität nicht notwendig Prozesse beschleunigen muss, da die meisten Arbeiten ohnehin schnell genug erledigt werden. Seiner Meinung nach sollte man sich lieber die Mühe geben, mit Hilfe zusätzlicher Rechenleistung die Ergebnisse zu verbessern.

So wies er darauf hin, dass der häufige Ruf nach größeren Fließkommazahlen (128 Bit) höchstgradig kontraproduktiv wäre, weil zusätzliche Schaltungen deutlich einfacher zu realisieren wären als eine höhere Bandbreite. Statt also den Speicher-Bus mit breiteren Zahlen zu belasten, schlug er Fließkommazahlen variabler Größe vor. In einer Zeit, in der ein ausgerichteter Zugriff auf den Speicher signifikanten Einfluss auf die Performanz hat, scheint ein solcher Vorschlag sicherlich ungewöhnlich.

Er konnte aber überzeugend darstellen, dass durch eine derartige – zugegebener Maßen gravierende – Änderung der bestehenden Rechnerarchitekturen die Energieaufnahme drastisch reduziert werden könnte, wie die von ihm gezeigten Zahlen von 2010 für 32-nm-Technologie exemplarisch zeigten.

Operation Energieaufnahme
64-Bit Multiplikation/Addition 64 pJ
Lesen/Schreiben von Registerdaten 6 pJ
64 Bit vom DRAM lesen 4200 pJ
32 Bit vom DRAM lesen 2100 pJ

Wenn man statt eines Doubles nur ein Float lädt, hat man demnach die nötige Energie für 30 Fließkommaberechnungen eingespart. Da die Prozessoren zwar immer reicher an Transistoren werden, sich die Bandbreite für Speicherzugriffe aber nur schleppend verbessert, könnte man also immer nur gerade so viele Bit aus dem Speicher transportieren, wie es die aktuelle Berechnung erfordert.

Diese Zahlen, die er Unums nennt, hätten gegenüber den am häufigsten verwendeten IEEE-Fließkommazahlen den Vorteil, dass man in ihnen neben der Größe auch noch deren Genauigkeit unterbringen kann. So muss eine Zahl nur die signifikanten Stellen mitschleppen und nicht auch noch Nachkommastellen, von denen man eigentlich weiß, dass es sich eher um Hausnummern handelt.

Gustafson demonstrierte eine Stift-und-Papier-Version, mit der er (unterstützt von Mathematica) ein Rechenbeispiel durchführte und Unums mit 32-Bit-Floats verglich. Die Berechnung der Lösung der quadratischen Gleichung ax2 + bx + c = 0 mit a = 3, b = 100, c = 2 würde bei seinen Unums mit 12, 18 bzw. 11 Bit (und Zwischenergebnissen mit 12 bis 45 Bit) etwa 1440 pJ benötigen. Die 32-Bit Float-Version würde hingegen 3200 pJ brauchen und dazu noch ein schlechteres Ergebnis liefern.

Korrekte Antwort –0.020 012 014 4…
32-Bit-Float –0.020 011 67
Unum –0.020 012 014 ± 3 · 10–9

Gustafson stellte sogenannte unums vor.

Die Unums hätten mit ihren zusätzlichen Eigenschaften also das Zeug dazu, ein zuverlässigeres Ergebnis zu liefern, das nicht nur weniger Energie benötigt, sondern auch weniger Platz und Bandbreite braucht und nebenbei noch Aussagen über die Akkuratesse machen kann. Genial.

Die Konferenz ist zwar noch nicht zu Ende, und nur über die Unums zu schwärmen wird den anderen Referenten und ihren Lösungen nicht gerecht. Diese Konferenz gehört aber jetzt schon zu meinen persönlichen Highlights.

Ich habe mir sagen lassen, dass die para//el höchstwahrscheinlich auch nächstes Jahr wieder stattfinden wird. Falls also jemand nächstes Jahr um den Mai herum noch nichts zu tun hat und sich komprimiert in zwei Tagen mit dem Thema Multithreading auseinandersetzen will, der ist jedenfalls auf der para//el bestens aufgehoben. ()