iX 4/2016
S. 124
Wissen
Softwareentwicklung
Aufmacherbild

Methoden zur Parallelisierung von Rechenaufgaben

Abgestimmt

Earth-Simulator und andere Vektorrechner haben eins gemeinsam: Wer die Leistung eines solchen Supercomputers in Anspruch nehmen möchte, muss seine Programme parallelisieren. Dabei stellt sich die Frage, was ein paralleler Algorithmus darstellt und welche Taxonomien sich zu seiner Unterteilung und Bewertung anwenden lassen.

Wer die Literatur zum Thema Parallelisierung konsultiert, begibt sich in einen Dschungel oft nicht zusammenhängender Themen. Dieser Artikel versucht eine Eingrenzung. Zuerst unterscheidet man parallele von konkurrent ablaufenden Algorithmen auf der einen Seite und verteilte Algorithmen auf der anderen.

Zur Verdeutlichung soll ein Webcrawler herhalten, der mehrere Requests hintereinander absetzt und die Antworten je nach Geschwindigkeit der Server in unterschiedlicher Abfolge entgegennehmen muss. Sein Kontrollverlauf ist nicht deterministisch: Ein derartiger Algorithmus heißt konkurrent, da die Reihenfolge der Programmabläufe nicht vorbestimmt ist.