hkaiser 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/ | GSoC: https://github.com/STEllAR-GROUP/hpx/wiki/Google-Summer-of-Code-%28GSoC%29-2020
weilewei has quit [Remote host closed the connection]
karame_ has quit [Remote host closed the connection]
bita_ has quit [Quit: Leaving]
diehlpk_work_ has quit [Remote host closed the connection]
sayef_ has quit [Read error: Connection reset by peer]
sayef_ has joined #ste||ar
sayefsakin has joined #ste||ar
sayef_ has quit [Ping timeout: 246 seconds]
sayef_ has joined #ste||ar
sayefsakin has quit [Ping timeout: 256 seconds]
sayefsakin has joined #ste||ar
sayefsakin has quit [Read error: Connection reset by peer]
sayefsakin has joined #ste||ar
sayef_ has quit [Ping timeout: 256 seconds]
sayef_ has joined #ste||ar
sayefsakin has quit [Ping timeout: 256 seconds]
sayefsakin has joined #ste||ar
sayef_ has quit [Ping timeout: 258 seconds]
sayef_ has joined #ste||ar
sayefsakin has quit [Ping timeout: 246 seconds]
sayef_ has quit [Ping timeout: 240 seconds]
hkaiser has joined #ste||ar
akheir has joined #ste||ar
Yorlik has joined #ste||ar
nan11 has joined #ste||ar
diehlpk_work has joined #ste||ar
weilewei has joined #ste||ar
<diehlpk_work> Stack overflow in coroutine at address ERROR: One or more process (first noticed rank 0) terminated with signal 11`
<diehlpk_work> Any idea what could case this error?
<diehlpk_work> Adding --hpx:ini=hpx.stacks.use_guard_pages=0 results that the code hangs
<zao> Does HPX tasks have small fixed stack sizes, or does it grow on demand?
<diehlpk_work> I am running Octotiger on Summit
<diehlpk_work> Interesting fact is that using one GPU everything works and with multiple not
<gonidelis[m]> When one wants to use an iterator - sentinel pair for their implementation. Do they always have to create their own `struct Sentinel{}` implementation and `struct Iterator` implementation in order to use the pair on the algorithm???
K-ballo has quit [Ping timeout: 246 seconds]
karame_ has joined #ste||ar
K-ballo has joined #ste||ar
rtohid has joined #ste||ar
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 272 seconds]
K-ballo1 is now known as K-ballo
<K-ballo> gonidelis[m]: if you want an iterator/pair you have to create it... where else would it come from? I'm think I'm missing the underlying question...
<weilewei> diehlpk_work how do you issue jsrun command lines to use 2 gpus?
<diehlpk_work> weilewei, I just run with two localities and gave one locality one GPU
<diehlpk_work> and asked for two GPUs in total
<weilewei> jsrun -n2 -a1 -c21 -g1 ./myApp?
<diehlpk_work> Sounds good
<diehlpk_work> You could increase -c
<diehlpk_work> So the two localities would use more cores
<weilewei> Yes, there are 42 cores you can use in one node
<weilewei> or if you use 2 nodes, then jsrun -n2 -a1 -c42 -g1 -b rs ./myApp
<gonidelis[m]> K-ballo: No your answer is right on point. I am just new to the topic and I didn't know that the only obvious way is to create the pair. Thanks a lot!
<diehlpk_work> weilewei, I have multiple issues
<weilewei> diehlpk_work but I haven't tried if let hpx manage locality/ranks, what should I do...
<weilewei> diehlpk_work what else
<diehlpk_work> 1) It seems there is some race condition with multiple GPUs in our IO, you can not helpt there
<diehlpk_work> 2) I have issues with --hpx:ini=hpx.stacks.use_guard_pages=0
<diehlpk_work> weilewei, Can you run your code with this flag and let me know what happens?
<K-ballo> gonidelis[m]: are you sure..? the question sounds to me like "does one have to create an X if he wants to create an X", makes me think I'm missing the point
<weilewei> diehlpk_work let me try
<diehlpk_work> Does not have to be computational expensive. Just add this flag and run your code and check if your code hangs
<diehlpk_work> For me using this flags HPX hangs and nothing happens
<weilewei> diehlpk_work ok, I don't have any workable hpx application on Summit yet, give me sometime
<diehlpk_work> weilewei, Take your time, I still wait for Dominic to address the IO issues
<weilewei> ms[m] may I ask, what commit starts to hide hpx_wrap? I just want to fall back to hpx_wrap to test one of my program where can try hpx mpi future
<gonidelis[m]> K-ballo: I was thinking the possibility of using a sentinel straight away as an argument like `for_each(begin_iter, 0)` and 0 being the sentinel while `begin_iter` being the default iterator... but I guess that's not a case
<K-ballo> but `0` isn't a sentinel.. if it were then sure one could
<K-ballo> for `0` to be a sentinel, it would have to be comparable against an iterator
<K-ballo> it there were comparison operators between that particular iterator and an int, it would be rather awkward, but it would make `0` a sentinel for that iterator
<weilewei> diehlpk_work I did get code hang with your flag by trying hpx hello_world_1
<weilewei> bash-4.2$ jsrun -n1 -a1 -c7 ./hello_world_1 Hello World!bash-4.2$ jsrun -n1 -a1 -c7 ./hello_world_1 --hpx:ini=hpx.stacks.use_guard_pages=0
<diehlpk_work> weilewei, Thanks for testing
<weilewei> diehlpk_work np
bita_ has joined #ste||ar
<diehlpk_work> weilewei, Which version of HPX are you using?
<weilewei> a commit from Apr 29 d3ccbcc3f7629d75a95c76273acaacbf40752dc0
<diehlpk_work> I generated an issue
<weilewei> diehlpk_work thanks!
<gonidelis[m]> K-ballo: is there a built in sentinel data type that is comparable to an iterator?
<K-ballo> confusing... all sentinels are comparable to iterators
<K-ballo> by sentinel "data type" you mean the internals of a sentinel?
<K-ballo> if so, which sentinel...?
<K-ballo> if a particular iterator would be comparable against say an int to determine if the int was reached, then the int itself would be the sentinel, there would be no "data type"
<gonidelis[m]> ok great! I think I get it. The reason I was asking is because there are iterators that can be created like `vector<int>::iterator ptr; ` and then there are custom iterators like this one https://github.com/gonidelis/hpx/blob/master/libs/algorithms/tests/regressions/iter_sent.hpp . So how am I supposed to know wether `ptr` is comparable to an int for example...
<K-ballo> `ptr` (weird name) is a vector iterator, I'd expect it to model the iterator concept and nothing else.. if it did implement extra functionality, like additional comparisons to ints (that would be super awkward) then I would have to go read the specification to find out
<hkaiser> gonidelis[m]: you could use decltype(std::declval<Iterator>() == std::declval<Sentinel>()) to implement a is_sentinel_for<Sentinel, Iterator> trait
<hkaiser> see th eis_iterator implementation we have for some inspiration
<K-ballo> ah, is that what you had in mind? programatically detecting whether certain comparisons are well formed?
rtohid has left #ste||ar [#ste||ar]
<gonidelis[m]> hkaiser: thanks a lot. Just studied and learnt the use of `decltype` `std::declval` . What do we mean with *for* in the `is_sentinel_for` name ?
<K-ballo> sentinels don't exist in isolation, for x to be a sentinel it has to be comparable with y, and that makes x a sentinel for y (but not necessarily for z)
<gonidelis[m]> K-ballo: No, I am just trying to create a test for an iterator sentinel pair in `for_each` (late response to your previous question)
<K-ballo> gonidelis[m]: that sounds very much like "yes" then :)
<gonidelis[m]> K-ballo: But what if I plug already some comparable types on my test ;p . Then I won't have to check the comparison validity with a trait (programatically)...
<gonidelis[m]> isn't that right?
<K-ballo> uh..?
<gonidelis[m]> K-ballo: What is the use of `is_sentinel_for<Sentinel, Iterator>` trait? Isn't that we use it in order to check the validity of the `Sentinel` for the `Iterator`?
<K-ballo> yes
<K-ballo> and how do you determine the validity of a sentinel for an iterator? you programmatically check whether their comparisons are well formed
<K-ballo> when you said "how am I supposed to know" I figured "I" meant you, not the code
<gonidelis[m]> ...with the use of a trait?
<K-ballo> how do you implement such trait
<gonidelis[m]> By imitating the `is_iterator` example that mr.Kaiser sent above ??
<K-ballo> which programmatically checks (among other things) whether the comparisons are well formed
<gonidelis[m]> Yes I am not raising any objections to this. I totally agree...
<hkaiser> gonidelis[m]: btw, you want to check for != (inequality) as well
<gonidelis[m]> hkaiser: got it
<hkaiser> gonidelis[m]: here is a nice short explanation of how all of this works: https://devtut.github.io/cpp/sfinae-substitution-failure-is-not-an-error.html
<gonidelis[m]> ok I ll check it right away. What's your opinion Josuttis book "The C++ Standard Library" ? I see that there is a "Writing User-Defined Iterators" chapter...
<hkaiser> sure, Josuttis' books are a nice read
rtohid has joined #ste||ar
<weilewei> another milestone, distributed G4 implementation now is on Pull request and review: https://github.com/CompFUSE/DCA/pull/201
<zao> \o/
nan11 has quit [Remote host closed the connection]