Ich bin ein Entwickler (unter Linux) und habe einen Python -Workflow implementiert, in dem eine mit OpenMP parallelisierte C/C ++ - als ungefähr 100 -mal bezeichnet wird. Ich habe den Workflow auf verschiedene Zahlen von Threads getestet. In der ersten Implementierung habe ich die Umgebungsvariable omp_num_threads verwendet, um die Anzahl der parallelen Threads festzulegen, aber ich habe ein seltsames Verhalten beobachtet. In einer zweiten Implementierung habe ich die Anzahl der parallelen Threads zur Laufzeit mit omp_set_num_threads festgelegt und omp_num_threads = 1 festgelegt, was zu einer besseren Leistung führte. Anscheinend wird jeder Thread initialisiert und der Speicher für jeden Thread zugewiesen, was einen Moment dauert. Bei 48 Threads und ~ 100 Aufrufen geschieht dies ~ 4800 Mal. Dies wirkt sich jedoch auf andere Anwendungen aus, die auf diese Umgebungsvariable zugreifen. < /P>
Gibt es eine Möglichkeit, das Verhalten von OpenMP zu ändern? Ich bin ein Entwickler und weiß, dass die Umgebungsvariable festgelegt ist und auch andere Anwendungen betrifft. Ich teile den Workflow jedoch auch mit anderen Personen, die keine Entwicklungserfahrung haben und mit Linux nicht vertraut sind, die einfach den Workflow ausführen möchten. (18.1.3) & libomp, gleiches Ergebnis.
Ich bin ein Entwickler (unter Linux) und habe einen Python -Workflow implementiert, in dem eine mit OpenMP parallelisierte C/C ++ - als ungefähr 100 -mal bezeichnet wird. Ich habe den Workflow auf verschiedene Zahlen von Threads getestet. In der ersten Implementierung habe ich die Umgebungsvariable omp_num_threads verwendet, um die Anzahl der parallelen Threads festzulegen, aber ich habe ein seltsames Verhalten beobachtet. In einer zweiten Implementierung habe ich die Anzahl der parallelen Threads zur Laufzeit mit omp_set_num_threads festgelegt und omp_num_threads = 1 festgelegt, was zu einer besseren Leistung führte. Anscheinend wird jeder Thread initialisiert und der Speicher für jeden Thread zugewiesen, was einen Moment dauert. Bei 48 Threads und ~ 100 Aufrufen geschieht dies ~ 4800 Mal. Dies wirkt sich jedoch auf andere Anwendungen aus, die auf diese Umgebungsvariable zugreifen. < /P> Gibt es eine Möglichkeit, das Verhalten von OpenMP zu ändern? Ich bin ein Entwickler und weiß, dass die Umgebungsvariable festgelegt ist und auch andere Anwendungen betrifft. Ich teile den Workflow jedoch auch mit anderen Personen, die keine Entwicklungserfahrung haben und mit Linux nicht vertraut sind, die einfach den Workflow ausführen möchten. (18.1.3) & libomp, gleiches Ergebnis.
Ich bin ein Entwickler (unter Linux) und habe einen Python -Workflow implementiert, in dem eine mit OpenMP parallelisierte C/C ++ - als ungefähr 100 -mal bezeichnet wird. Ich habe den Workflow auf...
Ich bin ein Entwickler (unter Linux) und habe einen Python -Workflow implementiert, in dem eine mit OpenMP parallelisierte C/C ++ - als ungefähr 100 -mal bezeichnet wird. Ich habe den Workflow auf...
Ich bin ein Entwickler (unter Linux) und habe einen Python -Workflow implementiert, in dem eine mit OpenMP parallelisierte C/C ++ - als ungefähr 100 -mal bezeichnet wird. Ich habe den Workflow auf...
Ich versuche, die OpenMP-Bibliothek für ein C++ CLion-Projekt unter MacOS zu verwenden, aber es scheint nicht gut zu funktionieren. Ich kann die Header-Datei omp.h verwenden, aber wenn ich diesen...