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: 264 seconds]
hkaiser has quit [Quit: Bye!]
hkaiser has joined #ste||ar
HHN93 has joined #ste||ar
HHN93 has quit [Quit: Client closed]
HHN93 has joined #ste||ar
<satacker[m]> How do I launch hpx::async without new thread spawning for execution? (deferred policy? but don't know the semantics/usage)
<hkaiser> satacker[m]: why would you want to do that?
<hkaiser> async's task _is_ to create a new thread
HHN93 has quit [Quit: Client closed]
<satacker[m]> Yes, I know it does not make sense, but just wanted to try if I can get a proper reasoning for a implementation problem which is described in detail on discord
<satacker[m]> s/a/an/
<hkaiser> if you don't need a new thread, just call the the function
<satacker[m]> But will it be the same thread as hpx's thread or will it be the thread where python's interpreter is or where will that be?
<hkaiser> not sure what you're asking - if you call a function then it will run on the same thread as the parent is running on
<satacker[m]> If I build it as a library and invoke it from another process (not a thread)?
<hkaiser> satacker[m]: you always run code on a thread, it's the main facility that executes operations
<Aarya[m]> hkaiser @hkaiser:libera.chat: Is this correctly starting and ending hpx runtime - https://github.com/light2802/hpxmp_meta/blob/main/hpx_example/hello.cpp
<satacker[m]> private*
<satacker[m]> <hkaiser> "satacker: you always run code on..." <- Yes i understand that, thanks. It is more complicated to understand how pybind11 is handling the ref count and managing lifetimes when entering a funciton (python) and then deleting it for example https://github.com/pybind/pybind11/blob/v2.10.4/include/pybind11/detail/type_caster_base.h#L68 . I could not figure out how to manage lifetime with hpx shared future
<hkaiser> Aarya[m]: no, disconnect doesn't do what you think, use finalize instead
<Aarya[m]> Finalize isn't calling the shutdown functions though
<Aarya[m]> It says it should call in the docs
<Aarya[m]> But isn't
tufei has joined #ste||ar
<hkaiser> Aarya[m]: finalize tells the runtime that it's ok to exit once no more work is available
<hkaiser> you still need to tell the threads that omp created that they should exit
<hkaiser> Aarya[m]: essentially do what the global destructor is doing anyways, just earlier
<hkaiser> I'd first call finalize and then invoke that functionality that makes the omp threads exit
hkaiser has quit [Quit: Bye!]
HHN93 has joined #ste||ar
HHN93 has quit [Client Quit]
HHN93 has joined #ste||ar
HHN93 has quit [Quit: Client closed]
hkaiser has joined #ste||ar