Compiler 11.0 OpenMP programs exhibit high core usage

With the initial release of the Compiler Pro 11.0 on Windows, Linux, and Mac OS X, you may see that OpenMP-enabled programs consume nearly all processing cycles on all available cores, even though you know that not all threads should be busy 100% of the time. 

Further, setting OpenMP environment variable KMP_BLOCKTIME=0, or calling kmp_set_blocktime(0) has no effect, i.e., it appears that threads never sleep (KMP_BLOCKTIME is the time that a thread should wait, after completing the execution of a parallel region, before sleeping).

This issue has been resolved in the 1st update of the 11.0 compilers, which are:

Windows:  w_cproc_p_11.0.066 and w_cprof_p_11.0.066

Linux:  l_cproc_p_11.0.074 and l_cprof_p_11.0.074

Mac OS X:  m_cproc_p_11.0.056 and m_cprof_p_11.0.056

For more complete information about compiler optimizations, see our Optimization Notice.

2 comments

Top
anonymous's picture

Please let me know where these enviromental variables are supposed to appear. At the top of the fortran listing? I'm curious because my openMp coding most always runs slower than the serial version.

Is there a listing of all the applicable KMP variables somewhere as well ?

anonymous's picture

I need to know some detail about OpenMP programming under Windows.

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.