Не удается получить OpenMP для создания более одного потока - PullRequest
0 голосов
/ 31 августа 2010
#include <omp.h>
#include <stdio.h>


int main(int argc, char* argv[])
{
 omp_set_num_threads(4);
 printf("numThreads = %d\n", omp_get_num_threads());
}

Этот код печатает:

numThreads = 1

Это скомпилировано в Visual Studio 2010 Ultimate.Я включил Свойства конфигурации проекта (Все конфигурации) -> C / C ++ -> Язык -> Поддержка Open MP для Да (/ openmp)

Я в растерянности.Я выделил эту проблему из более крупного проекта, в котором я хотел бы использовать более одного потока.

Есть идеи?

1 Ответ

0 голосов
/ 31 августа 2010

omp_get_num_threads - размер активной команды

Возвращает количество потоков в текущей команде. В последовательном разделе программы omp_get_num_threads возвращает 1.

http://gcc.gnu.org/onlinedocs/libgomp/omp_005fget_005fnum_005fthreads.html#omp_005fget_005fnum_005fthreads

Это означает, что используйте эту функцию внутри параллельного цикла, чтобы узнать, сколько потоков использует OMP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...