OMP Helper thread - binds or doesn't?

OMP Helper thread - binds or doesn't?

In the OMP Runtime we have a helper thread.  My customers are asking where this thread is bound (or is it bound?) when using KMP_AFFINITY and a proclist.  To make it simple, assume the proclist is 1,2,3,4.  And OMP_NUM_THREADS=4.  Pretty obvious where the worker threads get bound.  What about the helper?  Empirically on a HSW Cray XC-40 the customer is reporting seeing the helper bound to proc 2.  Which surprised me.  I would have thought proc 1.  OR is it that the helper doesn't bind and floats within the proclist?

They are worried about how much 'noise' or interference one gets from this helper thread.


2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

The monitor thread is not bound to any specific logical CPU. It will float within the set of logicalCPUs that are available to the process in the incoming affinity mask. (Which could, potentially, be wider than the set in the proclist, I think).

Since this is the OPEN SOURCE OpenMP runtime forum, I can't resist adding "As you can see if you look at the source" (vide __kmp_create_monitor in z_Linux_util.c ).


Leave a Comment

Please sign in to add a comment. Not a member? Join today