並列モードで LIBSVM を実行しようとしていますが、私の質問は一般的に OpenMP にあります。LIBSVM FAQに従って、#pragma 呼び出しでコードを変更して OpenMP を使用しました。また、-fopenmp 引数を追加して Makefile (un*x 用) を次のように変更しました。
CFLAGS = -Wall -Wconversion -O3 -fPIC -fopenmp
コードはうまくコンパイルされます。OpenMPがインストールされているかどうかを確認します(私のPCではないため):
/sbin/ldconfig -p | grep gomp
-おそらく-インストールされていることを確認します。
libgomp.so.1 (libc6,x86-64) => /usr/lib64/libgomp.so.1
libgomp.so.1 (libc6) => /usr/lib/libgomp.so.1
今; プログラムを実行しても、速度の向上は見られません。また、「top」でチェックすると、プロセスは最大で %100 CPU (8 コアあり) を使用しており、CPU ボトルネックもありません (%100 CPU 使用率のユーザーが 1 人だけ)。プロセスが複数のコアを使用している %100 (または別の指標)。
複数のコアが動作していることを確認する方法はありますか?