[argobots-discuss] Argobots ABT_eventual_set too slow
htang4 at lbl.gov
Thu Apr 25 17:27:17 CDT 2019
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
http://man7.org/linux/man-pages/man3/pthread_getaffinity_np.3.html, 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?
On Thu, Apr 25, 2019 at 1:24 PM Balaji, Pavan <balaji at anl.gov> wrote:
> Hi Houjun,
> > On Apr 25, 2019, at 3:19 PM, Houjun Tang <htang4 at lbl.gov> wrote:
> > 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?
> 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.
> 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.
> -- Pavan
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the discuss