Как определить, работает ли OpenMP?
Я пытаюсь запустить LIBSVM в параллельном режиме, но мой вопрос в целом в OpenMP. В соответствии сLIBSVM FAQЯ изменил код с помощью вызовов #pragma для использования OpenMP. Я также изменил Makefile (для un * x), добавив аргумент -fopenmp, чтобы он стал:
<code>CFLAGS = -Wall -Wconversion -O3 -fPIC -fopenmp </code>
Код хорошо компилируется. Я проверяю (поскольку это не мой компьютер), установлен ли OpenMP:
<code>/sbin/ldconfig -p | grep gomp </code>
и увидеть, что он, вероятно, установлен:
<code> libgomp.so.1 (libc6,x86-64) => /usr/lib64/libgomp.so.1 libgomp.so.1 (libc6) => /usr/lib/libgomp.so.1 </code>
Сейчас; когда я запускаю программу, я не вижу каких-либо улучшений скорости. Кроме того, когда я проверяю с помощью "top" процесс использует не более 100% ЦП (имеется 8 ядер), также нет узких мест ЦП (только еще один пользователь с использованием 100% ЦП), я ожидал увидеть более 100% (или другой индикатор) этот процесс использует несколько ядер.
Есть ли способ проверить, что работает многоядерный?