OpenMP und CPU-Affinität

8

Wird sched_setaffinity oder pthread_attr_setaffinity_np verwendet, um die Thread-Affinität unter OpenMP festzulegen?

Siehe auch: CPU-Affinität

    
Jakub M. 30.11.2011, 11:55
quelle

1 Antwort

14

Ja, benannte Aufrufe funktionieren, um die Thread-Affinität festzulegen. Das einzige Problem besteht darin, die Thread-Nummer zu korrigieren und die richtige Affinität im rechten Thread festzulegen (Sie können versuchen, die statische Planung von for loop für die bekannte Anzahl von Threads zu verwenden).

Wie ich weiß, erlaubt fast jedes openmp, die Affinität über die Umgebung einzustellen. Der Name der Umgebungsvariablen variiert (vor einiger Zeit nicht standardisiert). Ich verwende die Seite Ссылка , um die openMP-Implementierung zu finden, und sucht nach dem Namen der spezifischen Umgebungsvariablen. Die Affinität wird in ~ der Hälfte der specOMP-Ergebnisse festgelegt. Es gibt einige zusätzliche Einstellungen für die Einstellung der OpenMP-Leistung in den Ergebnissen.

z. Für den Intel-Compiler lautet die Variable

%Vor%

Für den Sun-Compiler:

%Vor%

Für gcc (pre-openmp 3.1)

%Vor%

wobei 63 die maximale CPU-Nummer ist (wenn von 0 gezählt wird)

Und der neuere OpenMP Standard, Version 3.1 definiert die Umgebungsvariable OMP_PROC_BIND (siehe Abschnitt 4.4), die ist eine standardisierte Methode zum Festlegen der Affinität in OpenMP. Verwendung ist:

%Vor%     
osgx 30.11.2011, 12:09
quelle

Tags und Links