OpenMP, VTune, свободные потоки - PullRequest
0 голосов
/ 03 ноября 2011

Я использую VTune для проверки параллельности моего кода. Здесь - снимок экрана вывода. Вы можете видеть, что есть некоторый начальный период с 1 потоком, затем ~ 0,3 сек интенсивной многопоточной работы (коричневые пики) и затем почти 3 секунды простоя (без коричневого "CPU", только зеленый "Running").

Есть идеи, что может привести к тому, что потоки будут в зеленом состоянии? Мой код должен вернуться после выполнения всех интенсивных вычислений, нет причин ждать 3 дополнительных секунды ...

1 Ответ

0 голосов
/ 18 апреля 2012

Сколько стоит ваша программа для выполнения без профилировщика? Это быстрее? Глядя на временную шкалу VTune, у меня складывается впечатление, что основной поток может выходить из функции main () с помощью pthread_exit (), и поэтому рабочие потоки OpenMP продолжают жить, не давая программе завершиться, пока не истечет некоторое время ожидания, и рабочие потоки решат закрыться. Смотрите здесь обсуждение pthread_exit.

...