K-ballo 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/
<hkaiser> gnikunj[m]: yt?
hkaiser has quit [Quit: bye]
bita has quit [Ping timeout: 264 seconds]
bita has joined #ste||ar
bita has quit [Ping timeout: 260 seconds]
heller1 has quit [Quit: Idle for 30+ days]
<gonidelis[m]> what's the purpose of having just an `ExPolicy` here as an argument, compared to the rvalue ref argument in the `parallel()` overload?
<gonidelis[m]> K-ballo: yt??
hkaiser has joined #ste||ar
<gonidelis[m]> hkaiser: please ping me whenever you have a spare 5 minutes within the day
<hkaiser> gonidelis[m]: will do, need some coffee and breakfast first
<gonidelis[m]> hkaiser: sure
parsa[m] has quit [*.net *.split]
parsa[m] has joined #ste||ar
gonidelis[m] has quit [Ping timeout: 244 seconds]
pedro_barbosa[m] has quit [Ping timeout: 240 seconds]
parsa[m] has quit [Ping timeout: 246 seconds]
gnikunj[m] has quit [Ping timeout: 244 seconds]
teonnik has quit [Ping timeout: 258 seconds]
klaus[m] has quit [Ping timeout: 258 seconds]
rori has quit [Ping timeout: 244 seconds]
ms[m] has quit [Ping timeout: 240 seconds]
k-ballo[m] has quit [Ping timeout: 240 seconds]
jpinto[m] has quit [Ping timeout: 240 seconds]
tiagofg[m] has quit [Ping timeout: 240 seconds]
gonidelis[m] has joined #ste||ar
gnikunj[m] has joined #ste||ar
teonnik has joined #ste||ar
klaus[m] has joined #ste||ar
parsa[m] has joined #ste||ar
hkaiser has quit [Read error: Connection reset by peer]
hkaiser has joined #ste||ar
gnikunj[m] has quit [Ping timeout: 240 seconds]
gonidelis[m] has quit [Ping timeout: 240 seconds]
klaus[m] has quit [Ping timeout: 246 seconds]
teonnik has quit [Ping timeout: 260 seconds]
parsa[m] has quit [Ping timeout: 258 seconds]
rori has joined #ste||ar
jpinto[m] has joined #ste||ar
ms[m] has joined #ste||ar
k-ballo[m] has joined #ste||ar
pedro_barbosa[m] has joined #ste||ar
tiagofg[m] has joined #ste||ar
klaus[m] has joined #ste||ar
parsa[m] has joined #ste||ar
teonnik has joined #ste||ar
gonidelis[m] has joined #ste||ar
gnikunj[m] has joined #ste||ar
hkaiser has quit [Read error: Connection reset by peer]
hkaiser has joined #ste||ar
<hkaiser> ms[m]: yt?
<ms[m]> hkaiser: hey
<hkaiser> ms[m]: hey
<hkaiser> ms[m]: I'm struggling with build system settings again
<hkaiser> ms[m]: for instance jenkins/cscs/clang-oldest sets NETWORKONG=OFF, does that mean that DISTRIBUTED_RUNTIME is off as well?
<hkaiser> the actual question is, how do I disable tests/examples that have to run in distributed (num_localities > 1)?
<ms[m]> nope, the first does not imply the second
<ms[m]> HPX_WITH_NETWORKING=OFF implies that things will run on one locality for sure, so if you need more than one locality that has to be on
<hkaiser> but the tests are run anyways
<ms[m]> those are independent I suppose
<hkaiser> I figured as much ;-)
<ms[m]> or does the distributed resiliency module actually not work with just one locality?
<hkaiser> should I just change the tests themselves to exit gracefully if num_localities == 1?
<hkaiser> yah, the tests need more than one locality
<ms[m]> it sounds like you want to disable the tests if HPX_WITH_NETWORKING=OFF
<ms[m]> or that ^
<hkaiser> ok
<hkaiser> thanks
<ms[m]> but the module itself is fine with just one locality, right?
weilewei has joined #ste||ar
<hkaiser> ms[m]: I think so, yes
<weilewei> hkaiser are we meeting today?
<hkaiser> weilewei: I wasn't planning to meet - do you want/need to?
<weilewei> hkaiser I see, not much for update, let's skip it today then.
<hkaiser> ok
<hkaiser> I'll be at cct tomorrow morning
<weilewei> hkaiser I see, I can be there tomorrow morning then
<weilewei> I plan to run some experiments today (parameter sweep)
<hkaiser> if you like, sure - around 10 should be fine
<weilewei> Great, then I will be there tomorrow around 10
weilewei has quit [Quit: Connection closed]
weilewei has joined #ste||ar
<hkaiser> gonidelis[m]: yt?
<gonidelis[m]> sorry
<gonidelis[m]> hkaiser: no i am
<hkaiser> would you have time to talk now?
<gonidelis[m]> yes please
<hkaiser> gonidelis[m]: https://lsu.zoom.us/j/3340410194
<gonidelis[m]> hkaiser: i am in
<gonidelis[m]> hkaiser: you suggested that I abandon `iterator_range` and create a more high level corresponding function obejct instead, right?
<hkaiser> no
<hkaiser> I suggested that you don't create an overload of make_iterator_range in the util namespace
<gonidelis[m]> ok
<weilewei> what is the hpx command line option that prints hpx idle rate periodically? hkaiser
<hkaiser> weilewei: sec
<weilewei> yup, sure
<weilewei> --hpx:print-counter-interval ?
<hkaiser> nod
<weilewei> hkaiser different threads have different thread idling pattern, what should I look into?
<hkaiser> that's not deterministic
<hkaiser> but you know that some tasks are long running (walkers) leading to low idle-rates
<weilewei> Yes
<hkaiser> other tasks are short (accumulators)
<hkaiser> look at APEX traces
<hkaiser> what I'd suggest is to look into correlation of the overall idle-rate and execution time vs. number of walkers/accumulators
<weilewei> I see, let me try to figure that out
<weilewei> The overall idle-rate, is it represented as /threads/{locality#0/total}/idle-rate ?
<hkaiser> weilewei: yes
<hkaiser> actually for any locality#N
<hkaiser> weilewei: if you specify /threads{locality#*}/idle-rate on the command line you'll see only the overall numbers
<weilewei> I saw the printout at the end: /threads{locality#0/total}/idle-rate,1,61.689660,[s],6491,[0.01%], does it mean that the overall idle rate is 64.49%?
<weilewei> hkaiser ^^
<hkaiser> weilewei: yes
<hkaiser> that's across all cores
<weilewei> good, then I will do a parameter sweep with idle rate enabled
<hkaiser> nod
<weilewei> and another same experiment but without idle rate (Release build)
<hkaiser> weilewei: the idle-rate sweep should be don eusing release as well
<weilewei> Oh, I see, then I will build a Release version, good to know!
bita has joined #ste||ar
<weilewei> hkaiser for 1 walker and 1 accumulator case, I found the overall idle rate is 96.70%, and I noticed most of idle rate is 99%, except one 0.62%
<weilewei> I think 47 physical cores are being idle in most cases, because only 1 long-running walker
<gnikunj[m]> hkaiser: turns out it was a stupid bad memory access in 1d stencil replay example. I've corrected it and also changed the parameters of other performance test examples to mitigate the time out issue. Things should build and execute as expected now!
<gnikunj[m]> apologies for the 2d delay
bita has quit [Ping timeout: 260 seconds]
<gnikunj[m]> K-ballo: hkaiser really curious why std::span is introduced in the C++20 standard. What was std::array and std::vector missing? For one, I can think of initializing vector from a c-style array. Two, compile time initialization of elements (But constexpr tuple can do compile time initialization, then why this?)
<k-ballo[m]> span isn't a container
<gnikunj[m]> k-ballo[m]: what exactly is std::span's intended use case?
<k-ballo[m]> a view over a continuous range
<k-ballo[m]> it's not wrong, because it doesn't say its a container
<gnikunj[m]> sure, but why do we need a view over an already existing array?
<gnikunj[m]> the array is a continuous range as well. What is it's exact use?
<k-ballo[m]> same as any other view
<k-ballo[m]> you get to look at it
<gnikunj[m]> aah, is it a helper for ranges?
<k-ballo[m]> think string_view, but general purpose
<gnikunj[m]> got it!
<gnikunj[m]> I got confused from https://github.com/kokkos/mdspan proposal
<gnikunj[m]> it should not be called mdspan in case it gets accepted in C++23
<k-ballo[m]> why not? it's a multi dimensional span
hkaiser has quit [Quit: bye]