hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar-group.org | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | This channel is logged: irclog.cct.lsu.edu
Yorlik__ has joined #ste||ar
Yorlik_ has quit [Ping timeout: 265 seconds]
hkaiser has quit [Quit: Bye!]
hkaiser has joined #ste||ar
hkaiser has quit [Quit: Bye!]
hkaiser has joined #ste||ar
<ms[m]1>
hkaiser: is https://github.com/STEllAR-GROUP/hpx/pull/6251 about the destruction of the `barrier` happening concurrently with other threads calling `arrive`/`arrive_and_wait`? if yes, isn't that the concern of the owner of the `barrier` to keep it alive e.g. with a `shared_ptr` until all threads have arrived? seems to me like the same problem as in https://github.com/STEllAR-GROUP/hpx/pull/3749 (with `condition_variable`)
<hkaiser>
ms[m]1: you don't know when the last thread has exited the barrier
<hkaiser>
you could keep the barrier alive with a shared_ptr, yes - but that means that you would have to wrap all uses of a barrier in a shared_ptr
<ms[m]1>
not all uses, you may have cases where you know from other synchronization that the barrier has been arrived at
<hkaiser>
well, that sounds very convoluted to me
<ms[m]1>
but independently of the fix, is that the problem the PR is solving?
<hkaiser>
yes
<hkaiser>
and yes, it's the same as for CVs
<ms[m]1>
ok, thanks, makes sense
<hkaiser>
ms[m]1: bors goes out of commision, did you do anything about this for pika already?
<ms[m]1>
iiuc they won't take down the public bors instance until merge queue has feature parity
<ms[m]1>
but I've tried merge queue and it's fine as well, only thing I missed was that there's no equivalent to "bors try", otherwise the transition is straightforward
<ms[m]1>
instead of having the required checks in bors.toml it uses the required checks in the repo settings
<hkaiser>
ok
<hkaiser>
do you have an example on what needs to be done there?
<dkaratza[m]>
hkaiser: I read online that in openmp the completion of a task does not necessarily synchronize with the point where the #pragma omp task block ends. The only way to synchronize with the task is if you explicitly use taskwait or task group or sth like that.
<dkaratza[m]>
So, we could say that the equivalent of `#pragma omp task` in hpx is either `hpx::async` or even `hpx::post`(since be default openmp does not synchronize)? or would this be misleading?
<hkaiser>
hpx::post doesn't synchronize in any way on it's own, so it's similar, I think
<hkaiser>
mdiers[m]: essentially calling the outer function repeatedly from inside the continuation
<dkaratza[m]>
ok i will include both and will add a note to clarify that if the users want any kind of synchronization they should go with async and not post
<hkaiser>
dkaratza[m]: yes
K-ballo has quit [Quit: K-ballo]
K-ballo has joined #ste||ar
hkaiser_ has joined #ste||ar
hkaiser has quit [Ping timeout: 240 seconds]
<dkaratza[m]>
hkaiser_: I see openmp has multiple cases where they use #pragma omp parallel without always having a for loop. so I think i should include an example about this as well
<dkaratza[m]>
hkaiser_: without the pragmas right?
<hkaiser_>
yes
<hkaiser_>
I left them for you to see the correspondence of code
<gdaiss[m]>
hkaiser_: Could you have another look at the DGX Jenkins PR? Al finished setting up the node with the fabric manager and the tests now pass locally for me - the only thing left doing is to merge master into it (to get the fixes from the other Jenkins PR) and to change to CUDA architecture. Hopefully the pipeline succeeds after that and this PR can be merged as well :-)