#pragma omp parallel num_threads is not working

16,531

Solution 1

You need to compile your program with -fopenmp.

g++ a.cc -fopenmp

Solution 2

In VisualStudio just switch on OMP. You can refer to https://msdn.microsoft.com/de-de/library/fw509c3b(v=vs.120).aspx

Share:
16,531
user08
Author by

user08

Updated on July 26, 2022

Comments

  • user08
    user08 over 1 year
        #include<omp.h>
        #include<stdio.h>
        #include<stdlib.h>
    
        void main(int argc, int *argv[]){
    
    
       #pragma omp parallel num_threads(3)
       {
    
        int tid = omp_get_thread_num();
        printf("Hello world from thread = %d \n",tid);
        if(tid == 0){
            int nthreads = omp_get_num_threads();
            printf("Number of threads = %d\n",nthreads);
        }
       }
    
      }
    

    I am learning OpenMP and I don't understand why it executes only one thread when I have specified the number of threads 3? The program ouptut:

       Hello world from thread = 0
       Number of threads = 1