aserio changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar.cct.lsu.edu | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | Buildbot: http://rostam.cct.lsu.edu/ | Log: http://irclog.cct.lsu.edu/
taeguk has joined #ste||ar
titzi has joined #ste||ar
thundergroudon[m has joined #ste||ar
taeguk[m] has joined #ste||ar
Matombo has quit [Remote host closed the connection]
EverYoun_ has quit [Ping timeout: 246 seconds]
bikineev has quit [Remote host closed the connection]
jaafar has joined #ste||ar
K-ballo has quit [Quit: K-ballo]
Rodario has joined #ste||ar
Rodario has left #ste||ar [#ste||ar]
mcopik has quit [Ping timeout: 276 seconds]
hkaiser has quit [Quit: bye]
diehlpk_work has joined #ste||ar
eschnett has joined #ste||ar
eschnett has quit [Quit: eschnett]
vamatya has joined #ste||ar
vamatya has quit [Ping timeout: 240 seconds]
jaafar has quit [Ping timeout: 246 seconds]
Rodario has joined #ste||ar
<Rodario>
Hi @all, can i ask a question regarding the building process here or is an issue on git the correct way to go?
bikineev has joined #ste||ar
Matombo has joined #ste||ar
Rodario1 has joined #ste||ar
Rodario has quit [Ping timeout: 240 seconds]
<taeguk>
Rodario1: As I think, whatever
<taeguk>
There are three ways to question: IRC, github issue, and mailing list.
Rodario has joined #ste||ar
<Rodario>
Allright, currentlich after using gmake -jN the building process reaches: "Linking CXX shared library ../lib/libhpx.so" then fills the screen with error messages and ends with:
<Rodario>
host_target.cpp:(.text+0x24): undefined reference to `hpx::get_runtime()'
<Rodario>
host_target.cpp:(.text+0x35): undefined reference to `hpx::get_os_thread_count()'
<Rodario>
CMakeFiles/hpx.dir/compute/host/numa_domains.cpp.o: In function `hpx::compute::host::numa_domains()':
<Rodario>
numa_domains.cpp:(.text+0x9c): undefined reference to `hpx::get_runtime()'
<Rodario>
numa_domains.cpp:(.text+0xad): undefined reference to `hpx::get_os_thread_count()'
<Rodario>
numa_domains.cpp:(.text+0xe6): undefined reference to `hpx::throws'
<Rodario>
numa_domains.cpp:(.text+0xfd): undefined reference to `hpx::throws'
<Rodario>
numa_domains.cpp:(.text+0x1a6): undefined reference to `hpx::throws'
<Rodario>
numa_domains.cpp:(.text+0x1b3): undefined reference to `hpx::find_here(hpx::error_code&)'
<Rodario>
collect2: error: ld returned 1 exit status
bikineev has quit [Remote host closed the connection]
Rodario has joined #ste||ar
Rodario has quit [Ping timeout: 246 seconds]
bikineev has joined #ste||ar
Kiril_ has joined #ste||ar
pree has joined #ste||ar
Kiril_ has quit [Quit: Page closed]
Rodario has joined #ste||ar
bikineev has quit [Ping timeout: 246 seconds]
Rodario has quit [Ping timeout: 240 seconds]
K-ballo has joined #ste||ar
bikineev has joined #ste||ar
bikineev has quit [Ping timeout: 240 seconds]
pree has quit [Ping timeout: 246 seconds]
pree has joined #ste||ar
eschnett has joined #ste||ar
hkaiser has joined #ste||ar
<github>
[hpx] hkaiser closed pull request #2811: Adding hpx::launch::lazy and support for async, dataflow, and future::then (master...fixing_2800) https://git.io/v7Me7
bikineev_ has quit [Remote host closed the connection]
jaafar_ has joined #ste||ar
pree has joined #ste||ar
pree has quit [Client Quit]
jaafar has quit [Ping timeout: 255 seconds]
pree has joined #ste||ar
bikineev has joined #ste||ar
pree has quit [Ping timeout: 240 seconds]
pree has joined #ste||ar
<pree>
For a given hpx-thread, whether the continuation executes on the same hpx-thread or execute in some other hpx-threads ?
<pree>
same hpx-thread means thread which executes its associative async call
<pree>
If it executes in different how come thread level info's can be shared ?
<pree>
thanks : )
<heller>
the continuation is on the same hpx thread, if the launch policy is sync
<heller>
what exactly is the question?
<pree>
please wait .
<pree>
If I have a hpx-thread(task) which spawns a task via async call. like hpx::future<T> lm = hpx::asunc(...);
<pree>
whether lm.then.then .... executes on the same thread ??
<pree>
chain of continuations
<pree>
whether all continuations executes on the same thread ?
<pree>
Or different hpx::threads are spwaned until uncertain length of chain is reached ?
<pree>
Please let me know whether the provided info is understandable or not .
<pree>
Thanks
<pree>
heller : I hope has sufficient info
<jbjnr>
pree: as heller said, if you use hpx::launch::sync policy when you attache the continuation, then the continuation is run on the same thread without some of the overhead of putting the continuation task onto the task queues.
<jbjnr>
there are policies - sync, async, fork, err - some more but I've forgotten
<jbjnr>
aserio was suggesting a new async_if policy too that is on the issue list
<pree>
jbjnr : But
<jbjnr>
...
<pree>
how information is passed to another thread if async policy is followed ?
<pree>
info is the task result
<jbjnr>
what information do you mean
<jbjnr>
future.then() takes a parameter, the parameter is the future that has just becomre ready
<jbjnr>
so the result of the first task goes to the second
<pree>
whether even between threads
<pree>
?
<jbjnr>
this happens regardeless of the launch policy - yes
<pree>
how this happens internally ?
<jbjnr>
so f.thenlaunch::sync, [](future && f) { blah; blah; });
<pree>
whether at thread creation
<pree>
?
<jbjnr>
the f result is passed frme the first task to the seconf
<jbjnr>
internally, when a future becomes ready, it has a shared state (like a shared pointer internally), it is passed as aparam to the continuation via the usual mechanism that parameters are passed
<jbjnr>
(it's going to be stored in a tuple like structure and moved into the continuation when it runs)
<jbjnr>
(K-ballo: knows the exact mechanism if you need more detail)
<jbjnr>
does that help?
<pree>
okay thanks : ) I'm doubt at whether the actual thread is created as continuation
<pree>
Yes good
<jbjnr>
remember that the "thread" is an OS thread and the tasks are just functions that are called on that thread
<pree>
yes hpx::threads are task which are assigned to the large OS-thread
<jbjnr>
so when one task completes, the worker "thread" either gets a new task from the scheduler queues, or if a continuation is ready, it can just jump into that
<pree>
I remember that
<pree>
Oh okay.
<pree>
But how about work-stealing
<pree>
I know hpx does not perform work-stealing
<jbjnr>
if the task completes and the queues for that "os thread" are empty, it looks in the queues of other threads
<jbjnr>
it does
<pree>
but though I don't know what work -stealing is
<jbjnr>
perform work stealing
<pree>
perform stealing ??
<jbjnr>
many tasks are in queues, those queues are assigned to worker "threads", each thread can steal tasks from other threads if it has no work in it's own queues
<pree>
but sec
<pree>
I long before find one post with tag "DEAR HPX how " ?
<jbjnr>
?
<pree>
sorry. It states that "not doing randomized work stealing " ?
<pree>
My mistake
<pree>
I left the word randomized
<aserio>
HPX does not steal work across localities
<aserio>
HPX does work steal inside of one locality unless specifically told not to
pree has quit [Read error: Connection reset by peer]
eschnett has quit [Quit: eschnett]
hkaiser has joined #ste||ar
pree has joined #ste||ar
aserio has quit [Quit: aserio]
parsa has quit [Quit: Zzzzzzzzzzzz]
eschnett has joined #ste||ar
pree has quit [Quit: AaBbCc]
EverYoun_ has joined #ste||ar
EverYoung has quit [Ping timeout: 276 seconds]
parsa has joined #ste||ar
EverYoun_ has quit [Remote host closed the connection]
EverYoung has joined #ste||ar
zbyerly_ has joined #ste||ar
EverYoun_ has joined #ste||ar
EverYoung has quit [Ping timeout: 276 seconds]
EverYoun_ has quit [Ping timeout: 246 seconds]
EverYoung has joined #ste||ar
Matombo has quit [Remote host closed the connection]