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 ?

publicaciones de 2 / 0 nuevos
Último envío
Para obtener más información sobre las optimizaciones del compilador, consulte el aviso sobre la optimización.

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.

Deje un comentario

Por favor inicie sesión para agregar un comentario. ¿No es socio? Únase ya