OpenMP functions in static library

OpenMP functions in static library

If I use openmp commands such as:

int nthreads, tid;

#pragma omp parallel private(tid)
{

/* Obtain and print thread id */
tid = omp_get_thread_num();
printf("Hello World from thread = %d\\n", tid);

/* Only master thread does this */
if (tid == 0)
{
nthreads = omp_get_num_threads();
printf("Number of threads = %d\\n", nthreads);
}

} /* All threads join master thread and terminate */

in my main project they work properly (I have 4 cores, and four threads are shown).

BUT if create a static library and THE SAME commands are used in some function of from this static library program shows only 1 thread available.

Why is that ?

2 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

Make sure that you use the proper compiler option to compile your code with OpenMP pragmas: "-openmp" on Linux and "/Qopenmp" on Windows.

You might not notice any problems while compiling your code because the compiler just emits the warning about unrecognized pragma but not the error.

Deixar um comentário

Faça login para adicionar um comentário. Não é membro? Inscreva-se hoje mesmo!