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 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.

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.

Kommentar hinterlassen

Bitte anmelden, um einen Kommentar hinzuzufügen. Sie sind noch nicht Mitglied? Jetzt teilnehmen