Как сказать, работает ли OpenMP в моей программе C++

vi должен уважать вкладки и пробелы, однако необходимо полагать, что vi может использовать различные вкладки длины, чем другой редактор. Можно ли быть больше конкретными, чем "целая испорченная вещь"?

5
задан Tim 19 August 2009 в 20:11
поделиться

3 ответа

#include <omp.h>

...
int target_thread_num = 4;
omp_set_num_threads(target_thread_num);
unsigned long times[target_thread_num];

// Initialize all the times
#pragma omp parallel
{
   int thread_id = omp_get_thread_num();
   times[thread_id] = start_time();

   std::cout << "Thread number: " << omp_get_thread_num() << endl;

   times[thread_id] = end_time();
}
...

Очевидно, вам не нужно предоставлять две функции таймера, но в этом суть. Функции OMP говорят сами за себя. Также убедитесь, что ваша среда настроена правильно и что вы компилируете с соответствующими механизмами. Параметр g ++ - -fopenmp. В Visual Studio перейдите в настройки проекта, C ++, Язык и включите «Поддержка OpenMP».

9
ответ дан 13 December 2019 в 19:32
поделиться

Вы можете использовать диспетчер задач Windows (CTRL-SHIFT-ESC) в Windows для мониторинга загрузки ЦП или использовать * nix-боксы.

Просто проверьте, используется ли много ядер или нет

1
ответ дан 13 December 2019 в 19:32
поделиться

Вы можете использовать свой отладчик (Visual Studio, если вы работаете в Windows), чтобы:

  • видеть, как могут выполняться потоки
  • , видеть, какой код выполняется каждым из них
  • приостановить некоторые из них, позволяя другим продолжить
1
ответ дан 13 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: