OpenMP set_num_threads () не работает

Я пишу параллельную программу с использованием OpenMP на C ++.

Я хочу контролировать количество потоков в программе, используяomp_set_num_threads(), Но это не работает.

#include <iostream>
#include <omp.h>
#include "mpi.h"

using namespace std;

int myrank;
int groupsize;
double sum;
double t1,t2;
int n = 10000000;

int main(int argc, char *argv[])
{
    MPI_Init( &argc, &argv);
    MPI_Comm_rank( MPI_COMM_WORLD, &myrank );
    MPI_Comm_size(MPI_COMM_WORLD,&groupsize);

    omp_set_num_threads(4);

    sum = 0;
    #pragma omp for  reduction(+:sum)
    for (int i = 0; i < n; i++)
        sum+= i/(n/10);

    cout<<"sum="<<sum<<endl;
    cout<<"threads="<<omp_get_num_threads()<<endl;

    MPI_Finalize();
    return 0;
}

Программа выводит:

sum = 4.5e+007
threads=1

Как контролировать количество потоков?

Ответы на вопрос(5)

Ваш ответ на вопрос