Search code examples
c++cparallel-processingopenmp

#pragma omp parallel num_threads is not working


    #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

Solution

  • You need to compile your program with -fopenmp.

    g++ a.cc -fopenmp