Wie kann man feststellen, ob OpenMP funktioniert?
Ich versuche, LIBSVM im parallelen Modus auszuführen, meine Frage ist jedoch in OpenMP im Allgemeinen. GemäßLIBSVM FAQIch habe den Code mit # Pragma-Aufrufen geändert, um OpenMP zu verwenden. Ich habe auch das Makefile (für un * x) geändert, indem ich ein -fopenmp-Argument hinzugefügt habe, so dass es wie folgt aussieht:
<code>CFLAGS = -Wall -Wconversion -O3 -fPIC -fopenmp </code>
Der Code lässt sich gut kompilieren. Ich überprüfe (da es nicht mein PC ist), ob OpenMP installiert ist durch:
<code>/sbin/ldconfig -p | grep gomp </code>
und stellen Sie sicher, dass es -wahrscheinlich- installiert ist:
<code> libgomp.so.1 (libc6,x86-64) => /usr/lib64/libgomp.so.1 libgomp.so.1 (libc6) => /usr/lib/libgomp.so.1 </code>
Jetzt; Wenn ich das Programm starte, sehe ich keine Geschwindigkeitsverbesserungen. Auch wenn ich mit "top" überprüfe, dass der Prozess höchstens% 100 CPU verwendet (es gibt 8 Kerne), gibt es auch keinen CPU-Engpass (nur ein weiterer Benutzer mit% 100 CPU-Auslastung), hatte ich mehr als erwartet % 100 (oder ein anderer Indikator), für den mehrere Kerne verwendet werden.
Gibt es eine Möglichkeit zu überprüfen, ob es mit mehreren Kernen funktioniert?