Parallelisierung
Mit
Parallelisierung wird die Aufteilung eines Vorgangs (insbesondere eines Computerprogramms) bezeichnet, so dass die einzelnen Teilstücke gleichzeitig oder
nebenläufig ausgeführt werden können. Das kann explizit geschehen, zum Beispiel dadurch, dass der
Programmierer Programmteile in separaten
Prozessen oder
Threads ausführen lässt, oder es geschieht automatisch, so dass
kausal unabhängige (
nebenläufige) Anweisungsfolgen "nebeneinander" ausgeführt werden. Diese automatische Parallelisierung kann durch den
Compiler vorgenommen werden, wenn als Zielplattform ein
Parallelrechner zur Verfügung steht, aber auch einige moderne CPUs können solche Unabhängigkeiten erkennen und die Anweisungen so auf verscheidene Teile des Prozessors verteilen, dass sie gleichzeitig ausgeführt werden (
Pipeline-Architektur).
Es ist aus der Sicht des Programmierers bei der Parallelisierung im allgemeinen gleichgültig, ob die einzelnen Programmteile tatsächlich gleichzeitig von unabhängigen Ausführungseinheitenen bearbeitet werden, oder ob sie nur quasi-parallel ausgeführt werden (siehe Time-Sharing, Multitasking).
Siehe auch
Gegenteil:
Sequentialisierung
Amdahlsches Gesetz, Computercluster, NC (Komplexitätsklasse), Nebenläufigkeit, Nichtsequentielle Programmierung, Paralleler Algorithmus, Transputer