<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi Pavan, <br></div><div><br></div><div>Yes, the argobots and execution are under my control, but I'm having issues to use pthread_setaffinity_np(), I added some code from the example in <a href="http://man7.org/linux/man-pages/man3/pthread_getaffinity_np.3.html">http://man7.org/linux/man-pages/man3/pthread_getaffinity_np.3.html</a>, but it seems it is only supported by the GNU compilers as I have to add "#define _GNU_SOURCE" to the beginning of the code. But the application is usually compile with Intel compilers on NERSC machines, so it won't work in that case. I'm not very familiar with the thread binding related things, is there any other ways to do it?</div><div><br></div><div><br></div><div>Thanks,</div><div>Houjun Tang<br></div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 25, 2019 at 1:24 PM Balaji, Pavan <<a href="mailto:balaji@anl.gov" target="_blank">balaji@anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Houjun,<br>
<br>
> On Apr 25, 2019, at 3:19 PM, Houjun Tang <<a href="mailto:htang4@lbl.gov" target="_blank">htang4@lbl.gov</a>> wrote:<br>
> I have tried different things as you suggested, and it seems setting OMP_PROC_BIND=false (previously it is set to "spread") can solve the problem. With that variable set, ABT_eventual_set() takes similar time (under 0.00001 seconds) to when OpenMP is disabled. So maybe it's because the Argobots threads and OpenMP threads are executing on the same core and causes the slowdown?<br>
<br>
That's a good find.  Yes, it looks like the OpenMP runtime is forcing the pthread to a specific core, so any child threads created by that thread would also be bound to the same core.<br>
<br>
Presumably the argobots thread and execution stream are under your control.  Can you unset the binding in your execution stream when you create it?  You can use pthread_setaffinity_np, although that needs to be executed inside your ULT.<br>
<br>
  -- Pavan<br>
<br>
</blockquote></div>