Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

OpenMP functions in static library

AdamD85
Beginner
99 Views
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 ?





0 Kudos
1 Reply
Olga_M_Intel
Employee
99 Views

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.

Reply