2016-04-04 7 views
6

Ich arbeite mit Quellen von gcc-4.7.4 Compiler. Ich muss die Arbeit von OpenMP Bibliotheken lernen und ich habe Dokumentationen von verschiedenen Versionen von OpenMP gelesen und ich habe keine Informationen über Wok Diebstahl Mechanismus gefunden. Stimmt es, dass OpenMP keinen Mechanismus zum Stehlen von Arbeit unterstützt?Unterstützt OpenMP Arbeit Diebstahl Mechanismus?

Antwort

4

OpenMP übernimmt fast die gesamte Verantwortung für die Arbeitsvorbereitung aus den Händen des Programmierers. Es gibt keine explizite Unterstützung für Work-Stealing oder andere Scheduling-Richtlinien, um festzulegen, wie Schleifeniterationen auf Prozessoren verteilt werden sollen.

Eine OpenMP-Implementierung kann jedoch Arbeitsstehlen verwenden. Der Ansatz wäre vollständig für das explizite task Konstrukt geeignet, das von OpenMP unterstützt wird. Ebenso kann eine Implementierung einen anderen Zeitplanungsansatz wählen.

Ich habe gelesen, dass die gcc-Implementierung Arbeit-Stehlen verwendet, aber es ist nicht etwas, das ich untersucht habe, und ich kann falsch liegen.

+3

Ich muss zugeben, ich hatte noch nie von [Arbeit Diebstahl] (https://en.wikipedia.org/wiki/Work_stealing) gehört. Es wäre schön zu beschreiben, was es ist und wie es zum Teilen von Arbeit kontrastiert. –

+1

Arbeit Diebstahl klingt vage wie die Stack-basierte Methode, die ich [hier] verwendet habe (http://stackoverflow.com/questions/35675466/reductions-in-parallel-in-logarithmic-time). –

+0

@Zboson: Nun, der Wikipedia-Artikel, den Sie verlinken, liefert die schönen Beschreibungen, die Sie suchen. –