Open Source im professionellen Einsatz

High-Performance-Computing aus Sicht der Programmierer

Dosierte Kommunikation

Bei großen Computern führen Extreme nicht immer zum besten Ergebnis. Fingerspitzengefühl ist angesagt, wenn es darum geht, die Vernetzung der Kerne und deren Programmierung in Einklang zu bringen.

Viel Rechenpower erhält heute nur, wer mehrere Kerne gleichzeitig betreibt. Solange jeder Kern allein für sich hinrechnet, skaliert das Verfahren: Eine doppelte Zahl von Kernen ergibt die doppelte Leistung. Doch das ist graue Theorie: In der Realität sind nämlich die Knoten auf den Kontakt mit ihren Kollegen angewiesen, um Zwischenergebnisse auzustauschen oder Ressourcen zu teilen.

Grad der Vernetzung

Wer die letzten Rechnerarchitekturen retrospektiv betrachtet, ist überrascht, wie experimentierfreudig und scheinbar ziellos ihre Entwickler vorgegangen sind. Sie haben viele Extreme an Parametern ausprobiert: Am einfachsten sind Bussysteme: Frühe Linux-Cluster kommunizierten über Ethernet-Switches [1]. Das ist billig, aber es bilden sich Engpässe und der Datendurchsatz wird unwägbar.

Das suchte die Connection Machine zu vermeiden [2]. Sie verband ihre Knoten über einen Fat Tree, eine Baumstruktur, die zur Wurzel hin mehr Bandbreite besitzt. Das war teuer und aufwändig, aber recht effizient. Den Ansatz teilen heute die Mehrkern-Prozessoren, wenn sie ihn auch anders umsetzen. Für maximale Verbindung hingegen sorgte die Crossbar- Architektur von Suns Starfire [3]. Sie verband alle Knoten untereinander.

Obwohl kommerziell erfolgreich, gilt der Ansatz als zu aufwändig für die ganz großen Maschinen. Daher ist ein Aufbau, der zwischen den Extremen abwägt, heute der Favorit der Hochleistungsrechner: In einem Torus hat jeder Rechner Verbindungen zu zwei Nachbarn je Dimension: Vier bei einem 2D- und sechs bei einem 3D-Torus (siehe Abbildung 1). Blue Gene, ein Rechner in der Spitzengruppe des HPC, der unter Suse Linux läuft, verwendet so eine Struktur [4].

Abbildung 1: Einige Parallel-Architekturen nutzen den Torus als Netzmodell. Jeder Knoten hat dabei zwei Nachbarn pro Dimension.

Abbildung 1: Einige Parallel-Architekturen nutzen den Torus als Netzmodell. Jeder Knoten hat dabei zwei Nachbarn pro Dimension.

Leistung herauskitzeln

Manch Entwickler schert sich nur wenig um die Hardware, auf der seine Programme laufen. Aber auch hier gilt es, Balance zu halten. Wer weiß, wie sein Computer tickt, schreibt bessere Programme für ihn. Sprachen wie Clojure (Artikel auf Seite 112) helfen dem Programmierer und verteilen Aufgaben auf Threads. Ein wenig muss der aber doch mithelfen: Namhafte Linux-Entwickler wie Andi Kleen auf dem Linux-Kongress [5] oder Ulrich Drepper auf dem Linuxtag [6] werden daher nicht müde, darauf hinzuweisen, dass Linux schon viele Tricks eingebaut hat, aber Anwendungsentwickler sie auch nutzen müssen. Wenn die Applikationen entwerfen - etwa mit Eclipse für Qt (Artikel auf Seite 118) - sollten sie nicht davon ausgehen, dass die CPU eine unerschöpfliche Ressource sei.

Anwender und Industrie warten zudem immer mit neuen Aufgaben auf: Neuster Schrei ist das Umcodieren von Videos, um alle möglichen Formate und Codecs zu bedienen. Das Wandeln bekommen die Programme von heute langsam hin (Artikel auf Seite 122), es gilt nur abzuwarten, bis das auch in erträglicher Geschwindigkeit geht. Der Leistungskreisel dreht weiter hoch. n

Infos

[1] Hanno Wagner, "Clown 98 Netzwerke", Linux-Magazin Sonderheft 04/ 05

[2] W. Daniel Hillis, "Feynman and The Connection Machine": [http://longnow.org/essays/richard-feynman-connection-machine ]

[3] Sun Fire E10K: [http://www.e10k.net]

[4] Blue Gene: [http://research.ibm.com ]

[5] Andi Kleen "Multicore Scalability", Linux-Kongress 2009: [http://www.linux-kongress.org/2009/slides/linux_multicore_scalability_andi_kleen.pdf] [6] Matthias Huber, "Was Programmierer über CPUs wissen sollten": [http://linux-magazin.de/NEWS/Linuxtag-2009-Was-Programmierer-ueber-CPUs-wissen-sollten]

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook