Обнаружение во время выполнения, если OPENMP используется в программе C ++ - PullRequest
2 голосов
/ 16 мая 2019

Я хотел бы знать во время выполнения, была ли программа на С ++ скомпилирована с включенным OPENMP или нет. Есть некоторые вещи, которые OPENMP 2.0 не может легко сделать, поэтому я хотел бы подделать их с помощью другого механизма. Однако если код скомпилирован с отключенным OPENMP, я бы также хотел отключить другой механизм и запускать все последовательно.

Например

if( isOpenMPEnabled() )
    runFakeParallelAlgorithm();
else
    runSequentialAlgorithm();

Как я мог реализовать

bool isOpenMPEnabled()

Я должен сказать, что мы используем OPENMP 2.0

1 Ответ

4 голосов
/ 16 мая 2019

Если флаг / openmp был передан компилятору и компиляция прошла успешно, будет добавлена ​​директива препроцессора, которую вы можете использовать для проверки этого во время выполнения:

#if defined(_OPENMP)
   #pragma omp ...
#endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...