Parallelverarbeitung klingt nach Beschleunigung. Soweit so gut, aber man sollte sich nicht täuschen lassen. Parallelverarbeitung in der IT erfordert viel Verständnis für die „harte und die weiche Ware“, damit sie ein Erfolg wird.
Der Parallelarbeiter als Hans-Dampf-in-allen-Küchen ist nicht unbedingt ein Vorbild für gute IT-Parallelverarbeitung
(Bild: Stefan_Bayer_pixelio.de)
Gemeinsam sind wir stark? Vielleicht! Zwei schaffen in derselben Zeit gemeinsam das Doppelte wie einer? Na ja, kommt darauf an.
Wenn 20 Arbeiter 300 Tage benötigen, um ein Häuschen zu bauen, benötigen dann 2.000 Arbeiter nur 3 Tage? Das ist stark zu bezweifeln. Gut, man müsste sich die Prozesse genau ansehen, um eine fundierte Antwort geben zu können.
Auf den ersten, zweiten und auch dritten Blick scheint es jedenfalls eine allzu simple Idee, Prozesse, die stark auf Kooperation und Kommunikation aufsetzen, allein durch parallele Bearbeitung in der beschriebenen Weise beschleunigen zu wollen. In vielen Fällen dürfte ein solches Vorgehen nicht nur nicht die erwünschte Beschleunigung bringen, sondern schlicht pures Chaos.
Die Gefahr der Blockade bei Parallelisierung
Solche grundsätzlichen Überlegungen sind in analoger Weise auch für die Parallelverarbeitung in der IT gültig. Ebenso wie eine einzelne Person nicht tatsächlich parallel arbeiten kann und das diesbezügliche Multitasking nur gefühlt ist, sind auch die informationstechnischen Analoga in Gestalt der nebenläufigen Programmfäden (Threads) nicht wirklich parallel, sondern nur „fast parallel“. Tatsächlich aber sind sie sequenziell mit fliegendem Wechsel; und wenn man bei der Programmierung nicht aufpasst, blockieren sich die Prozesse wechselseitig beim Zugriff auf Ressourcen („Deadlocks“) oder zwei Prozesse geraten in eine Endlos-Schleife, in dem in einem ewigen Hin und Her der eine Prozess immer genau den Betrag zubucht, den der andere wegnimmt.
Ganz wie bei uns Menschen, wenn wir sagen „wir machen zwei oder drei Sachen gleichzeitig“ sind auch Threads quasi-parallele Systeme, will heißen: Die Programmwechsel zwischen den nebenläufigen Fäden sind so schnell, dass sie im Programmablauf parallel erscheinen.
Schnelle Wechsel
Programmtechnisch wird der Umschaltprozess durch Time-Slots innerhalb des Gesamtprogramms realisiert. Das bringt zusätzliche Komplexität in die Programm-Entwicklung mit entsprechenden Fehlermöglichkeiten.
Darüber hinaus wird das Computerprogramm durch das ständige blitzschnelle Umschalten zu einem nicht-deterministischen Gebilde, weil bei jedem Programmdurchlauf die Umschaltpunkte sich um ein paar Mikrosekunden verschieben können. Fehler sind schwer zu entdecken und zuweilen nicht reproduzierbar.
Auch beim menschlichen Quasi-Multitasking sind Fehler in den einzelnen „Threads“ kaum zu vermeiden. Fehlersuche und Kaffeetrinken mag ja noch ganz gut zusammengehen, bei Telefonieren und E-Mail-Lesen geht vermutlich schon viel Information verloren und von Fehlersuche beim Telefonieren ist dringend abzuraten. Und wer einmal Personen erlebt hat, die so schnell reden, dass sie den Folgesatz beziehungsweise den darin enthaltenen Gedanken schon in den aktuellen Satz einfließen lassen, der erahnt, dass auch menschlichen Wesen „Thread-Switching“ nicht fremd ist.
Parallelisierung und der Datenkontext
Die Parallelisierung von menschlicher und maschineller (Inter-)Aktion, die wir eben vorgenommen haben, ist durchaus erhellend, hat aber sicher als Analogie-Betrachtung ihre Grenzen; schließlich wurde die Computerei erfunden, um wiederkehrende und daher eher öde Rechen- und Vergleichsoperationen dem Menschen abzunehmen und Maschinen zu überlassen. Das gilt auch in unseren heutigen Zeiten der Künstlichen Intelligenz, meint zumindest der Autor.
Parallelverarbeitung in der IT bietet sich insofern vor allem dann an, wenn sich durch die Aufgabenstellung die zu verarbeitenden Daten gut in rechnerisch voneinander unabhängige Datenpakete aufteilen lassen oder auch wenn die logischen Abhängigkeiten zwischen Datenpaketen offensichtlich sind und dadurch keine aufwändige Kommunikation bei deren paralleler Abarbeitung notwendig wird.
Ein Beispiel für gut parallelisierbare Datenpakete sind Matrizenoperationen, die mit einem Array-Parallelrechner (auch Vektorrechner genannt) ausgeführt werden, ein Beispiel für gut überschaubare logische Abhängigkeiten sind Operationen in Word, die sich hinter Registerkarten verbergen (Ein- Ausgabe-Operationen, Rechtschreibprüfung oder automatisches Speichern) und strukturell so mit der Gesamt-Textverarbeitung gekoppelt sind, dass es sinnvoll ist, sie nicht in mehrere Prozesse aufzuteilen, sondern als Threads quasi-parallel laufen zu lassen.
Gleichwohl ist auch bei Datenvolumina, die scheinbar einfach parallelisiert werden können, auf bestimmte Kontextbedingungen zu achten. So schrumpfen die Vorteile der Parallelverarbeitung schnell wieder dahin, wenn die verschiedenen Datenpakete sich beispielsweise Konkurrenz beim Zugriff auf den Hauptspeicher machen oder wenn eine zunehmende Zahl von parallelen Operationen dazu führt, dass sich kontinuierlich auch die Datenpaket-Größen erweitern, wodurch wiederum die Effizienz wichtiger Optimierungs-Algorithmen leidet.
Das letztgenannte Beispiel stammt aus dem Bereich des Maschinellen Lernens, wo Graphcore, ein Spezialist für KI-Hardware und KI-Software festgestellt hat, dass sich bei Ausweitung des Parallelbetriebs über eine bestimmte Größe hinaus, dass so genannte „stochastische Gradienten-Abstiegsverfahrens“ (stochastic gradient descent, SGD) nicht mehr effizient einsetzen lässt.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Neben einem „konkurrenzlos“ offenen Hauptspeicherzugang und einer Parallelisierung der Daten, so dass sich deren Paketgröße nicht negativ auf die verwendeten Algorithmen auswirkt, spielt zusätzlich auch die Geschwindigkeit eine Rolle, mit der die zu verarbeitenden Daten zum Prozessor hin oder von diesem weg transportiert werden. Bei einem Vektorrechner erreicht man dies dadurch, dass man einen Zwischenspeicher zwischen Prozessor und Hauptspeicher installiert oder eben, dass man dem Prozessor parallel-simultane Zugriffsmöglichkeiten auf den Hauptspeicher ermöglicht. Beide Techniken haben ihre Vor- und Nachteile, so dass es letztlich von der vorliegenden Datenstruktur abhängt, welche man wählt.
Die Analyse der Datenstruktur ist prinzipiell der alles entscheidende Faktor, wenn es darum geht, die Vorteile der Parallelisierung optimal auszunützen. Eine solche Analyse benötigt Zeit und Erfahrung. Zumindest letztere dürften Anwender, die mit Parallelrechner-Maschinen arbeiten, allemal haben, da sie als Physiker, Ingenieure oder Ökonomen tief mit der Materie vertraut sind, aus der die zu parallelisierenden Rechenoperationen stammen.
Eine solche tiefgreifende inhaltliche Vertrautheit mit den Daten, die verarbeitet werden sollen, ist noch einmal mehr bei einem Quantenrechner vonnöten. Dieser bietet eine inhärente Parallelität dadurch, dass auf die Rechen-Bausteine des Quantenrechners – die so genannten Qubits – eine quantenphysikalische Verschränkungsoperation ausgeführt wird, bei der sich eine beliebige Menge von Folgen klassischer Bits gleichzeitig darstellen lässt.
Durch diese inhärente Parallelität werden für die Ausführung komplexer Algorithmen weniger Schritte benötigt, aber es eignen sich eben nur bestimmte Problemlagen für diese Art von Parallelverarbeitung. Und auch die Umsetzung geeigneter Algorithmen– etwa aus der Materialwissenschaft, der Logistik oder aus der Finanzindustrie - ist alles andere als trivial.
Insofern ist auch bei der Parallelisierung in der IT der Genius und der Schweiß des Analytikers und Programmierers gleichermaßen wichtig: nur Transpiration, gepaart mit Inspiration führt zum Erfolg.