Untitled
Untitled
Untitled
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
3<br />
Parallelisierung von Schleifen<br />
Historisch gesehen liegen die Wurzeln von OpenMP im Bereich<br />
High Performance Computing, wo Programmcode oft<br />
viele Schleifen enthält, in denen auf gemeinsam genutzte<br />
Daten zugegriffen wird. Bei der Parallelisierung solcher<br />
Schleifen kann OpenMP seine Stärken am besten ausspielen.<br />
In diesem Kapitel wird daher auf dieses Haupteinsatzgebiet<br />
von OpenMP ausführlich eingegangen. Darüber hinaus<br />
werden auch Konzepte und Sprachkonstrukte vorgestellt,<br />
die grundlegend für die nachfolgenden Kapitel sind.<br />
3.1 Parallelität auf Schleifenebene<br />
Die parallele Ausführung von Schleifen in OpenMP lässt<br />
sich im Sinne der Flynn’schen Klassifikation als SPMD (single<br />
program multiple data), einem Sonderfall von MIMD<br />
(siehe Abschnitt 1.2.2), beschreiben: Jeder Thread führt<br />
den in der Schleife enthaltenen Code aus, aber jeder für<br />
eine andere Teilmenge von Iterationen und damit auf anderen<br />
Daten. Listing 3.1 zeigt eine einfache sequentielle Im-