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
Nikunj__ has joined #ste||ar
nikunj has quit [Ping timeout: 260 seconds]
nikunj has joined #ste||ar
nikunj97 has quit [Ping timeout: 260 seconds]
hkaiser has quit [Quit: bye]
nanmiao11 has quit [Remote host closed the connection]
Yorlik has quit [Ping timeout: 246 seconds]
Nikunj__ has quit [Read error: Connection reset by peer]
bita_ has quit [Ping timeout: 260 seconds]
otto[m] has quit [Quit: Idle for 30+ days]
rajpalsanyam1997 has quit [Quit: Idle for 30+ days]
mdiers[m] has left #ste||ar ["Kicked by @appservice-irc:matrix.org : Idle for 30+ days"]
kordejong has left #ste||ar ["Kicked by @appservice-irc:matrix.org : Idle for 30+ days"]
hkaiser has joined #ste||ar
Yorlik has joined #ste||ar
parsa has quit [Quit: Free ZNC ~ Powered by LunarBNC: https://LunarBNC.net]
parsa has joined #ste||ar
weilewei has quit [Remote host closed the connection]
nikunj97 has joined #ste||ar
Nikunj__ has joined #ste||ar
nikunj97 has quit [Ping timeout: 256 seconds]
<ms[m]> nikunj97: just a reminder that https://github.com/STEllAR-GROUP/hpx/pull/4769 would still need some changes if you'd like it in for the release (I'd certainly like that)
<ms[m]> rc willl hopefully be done this week, but it can also be merged in the next few weeks before the final release
<Nikunj__> ms[m], crap I forgot. Give me today. I'll make changes for sure.
<ms[m]> no problem :) thanks!
Nikunj__ is now known as nikunj97
<ms[m]> hkaiser: hey, I wanted to move the kokkos/hpx repo to STEllAR-GROUP... would you like it to be hpxkokkos (or hpxk... please no) to fit with the other repos, or can I just name it hpx-kokkos? :P
<hkaiser> as you like it, I don't mind
<hkaiser> ms[m]: you should have full access to do that
<ms[m]> thanks, yeah, I think I do have the rights for that (just wanted to check if there was some sort of convention for the names)
<hkaiser> ms[m]: there are no conventions, afaict
<nikunj97> hkaiser, btw I was thinking to leave replicate's invocation localities to the user himself
<nikunj97> this way, we only take care of the invocation part and we don't need to explicitly worry about load balancing
<nikunj97> the user will provide the vector<hpx::id_type> and we'll invoke it on all the provided localities
<hkaiser> nikunj97: the invocation part can be handled by an executor
<nikunj97> yes
<hkaiser> (and should be)
<nikunj97> but the executor should know the list of localities. That will come from the user (instead of us)
<nikunj97> that's what I meant.
<hkaiser> so no std::vector<id_type>, just perhaps a distributed_executor(std::vector<id_type>)
<nikunj97> yes, right.
<hkaiser> or it can get it from a distribution policy, we have such an executor
<nikunj97> yes. But previously I was taking only 1 locality from the user with replicate and then relying on node affinities to find the neighbors. Now what I'm suggesting is to get all localities on which the user wants to invoke the functions and use executor to invoke it.
<hkaiser> yes
<nikunj97> so with replication of 3, the user will provide a vector of localities of size 3
<hkaiser> the user has to provide the policy that decides on the localities to use
<nikunj97> yes
klaus[m] has quit [*.net *.split]
rori has quit [*.net *.split]
gdaiss[m] has quit [Remote host closed the connection]
gretax[m] has quit [Remote host closed the connection]
toralf[m]1 has quit [Write error: Connection reset by peer]
mariella[m] has quit [Write error: Connection reset by peer]
freifrau_von_ble has quit [Read error: Connection reset by peer]
ms[m] has quit [Read error: Connection reset by peer]
noise[m] has quit [Read error: Connection reset by peer]
amspina[m] has quit [Remote host closed the connection]
alexandros[m] has quit [Write error: Connection reset by peer]
gonidelis[m] has quit [Remote host closed the connection]
ben[m] has quit [Read error: Connection reset by peer]
vroni[m] has quit [Read error: Connection reset by peer]
oscar[m] has quit [Write error: Connection reset by peer]
wladimir[m] has quit [Write error: Connection reset by peer]
diehlpk_mobile[m has quit [Remote host closed the connection]
mathegenie[m] has quit [Remote host closed the connection]
tiagofg[m] has quit [Remote host closed the connection]
chelsea[m] has quit [Write error: Connection reset by peer]
fred[m]1 has quit [Read error: Connection reset by peer]
jbjnr1 has quit [Remote host closed the connection]
heller1 has quit [Remote host closed the connection]
nikunj has quit [Ping timeout: 246 seconds]
nikunj has joined #ste||ar
mariella[m] has joined #ste||ar
jbjnr has joined #ste||ar
oscar[m] has joined #ste||ar
rori has joined #ste||ar
richard[m] has joined #ste||ar
alexandros[m] has joined #ste||ar
chelsea[m] has joined #ste||ar
toralf[m] has joined #ste||ar
diehlpk_mobile[m has joined #ste||ar
fred[m] has joined #ste||ar
ms[m] has joined #ste||ar
noise[m] has joined #ste||ar
wladimir[m] has joined #ste||ar
joe[m]1 has joined #ste||ar
neill[m] has joined #ste||ar
amspina[m] has joined #ste||ar
gdaiss[m] has joined #ste||ar
ralph[m] has joined #ste||ar
gretax[m] has joined #ste||ar
oleg[m] has joined #ste||ar
freifrau_von_ble has joined #ste||ar
vroni[m] has joined #ste||ar
tiagofg[m] has joined #ste||ar
klaus[m] has joined #ste||ar
heller1 has joined #ste||ar
mathegenie[m] has joined #ste||ar
ben[m]1 has joined #ste||ar
gonidelis[m] has joined #ste||ar
nickrobison has joined #ste||ar
<nickrobison> Good morning folks! I've been looking at the template_accumulator example in the HPX repo. Seems pretty straightforward, but not sure how to expand it to support a class with multiple template parameters. Do each of the template type names need to be appended to the name using the underscore delimiter?
kale[m] has joined #ste||ar
<hkaiser> nickrobison: the name must be unique
<hkaiser> nickrobison: with c++17 we will be able to generate those names, for now you'll need to take care of this yourself :/
<nickrobison> Ok. Here's my attempt at expanding the registration macro from the example;
<nickrobison> #define REGISTER_MAPPER(input_key, map_key, mapper) \ HPX_REGISTER_ACTION(mt::server::MapServer<input_key, map_key, mapper>::map_action, \ HPX_PP_CAT(__MapServer_map_action_, Mapper));
<nickrobison> \ \ typedef ::hpx::components::component<mt::server::MapServer<input_key, map_key, mapper>> HPX_PP_CAT(__MapServer_, mapper); \ HPX_REGISTER_COMPONENT(HPX_PP_CAT(__MapServer_, mapper)) \
<nickrobison> I'm getting an unknown typename error, which makes me think I'm confused as to how the registration process works.
<hkaiser> nickrobison: I'd need to see the code to tell
<K-ballo> how will be generating the names in 17?
<hkaiser> might be in c++20 only
<hkaiser> hmmm, we could derive it today from the typeid()name already...
nickrobison has quit [Remote host closed the connection]
nickrobison has joined #ste||ar
<K-ballo> what's the c++20 approach?
<hkaiser> using template to represent string
nickrobison has quit [Remote host closed the connection]
richard[m] has left #ste||ar ["Kicked by @appservice-irc:matrix.org : Idle for 30+ days"]
kale[m] has quit [Ping timeout: 240 seconds]
kale[m] has joined #ste||ar
bita_ has joined #ste||ar
nikunj97 has quit [Quit: Leaving]
nanmiao11 has joined #ste||ar
weilewei has joined #ste||ar
diehlpk__ has joined #ste||ar
diehlpk__ has quit [Ping timeout: 260 seconds]
nanmiao11 has quit [Remote host closed the connection]
nanmiao11 has joined #ste||ar
weilewei has quit [Remote host closed the connection]
<gonidelis[m]> I am really trying to understand the intuition behind making the customization points -> global function objects
<gonidelis[m]> The author reasons the need for that in two points. The one suggests that:
<gonidelis[m]> Suppose that a future version of std::begin requires that its argument model a Range concept. Adding such a constraint would have no effect on code that uses std::begin idiomatically:
<gonidelis[m]> `using std::begin;
<gonidelis[m]> begin(a);`
<gonidelis[m]> If the call to begin dispatches to a user-defined overload, then the constraint on std::begin has been bypassed.
<gonidelis[m]> Why is the last statement true? Why is the constraint bypassed when calling unqualifying names?
<K-ballo> ADL, are you familiar with it?
<K-ballo> ADL would look for `begin` overloads in the associated namespaces of `a`
nikunj97 has joined #ste||ar
<gonidelis[m]> K-ballo: yeah I know what ADL is. wow that makes sense indeed
<gonidelis[m]> So when we use CPO's the compiler is "forced" to look into the constraints... is that right?
<gonidelis[m]> Just because we overload the call operator ??
<K-ballo> somewhat, more like ADL doesn't happen
<K-ballo> ADL only kicks in for unqualified function calls, a function object is not that
<K-ballo> begin(a); where begin is a CPO is effectively begin.operator()(a); qualified on begin
weilewei has joined #ste||ar
<gonidelis[m]> ahhhhhh....... now i see!! So the trick is that their function objects after all! So the compiler HAS to go through the begin CPO
<gonidelis[m]> K-ballo: ^^
<gonidelis[m]> they are *
<K-ballo> yes, the object "kills" ADL
<gonidelis[m]> Thank you so much... great explanation!
<gonidelis[m]> Any ideas what is the corresponding of these traits in the standard?
<gonidelis[m]> http://eel.is/c++draft/algorithms#alg.transform
<gonidelis[m]> hkaiser: K-ballo
<K-ballo> concept, projected
<K-ballo> wait, struct?
<K-ballo> I take that back, I don't think I now
<K-ballo> so, it's a struct, ... used to constrain projections
<gonidelis[m]> what do you mean it's a struct?
<gonidelis[m]> plus I think you are right that it is the `projected<>` thing
<gonidelis[m]> K-ballo:
<K-ballo> projected is a struct template that applies the constraints to its arguments
<K-ballo> and... I don't know what else it does, it's not clear whether it is actually usable, or is just a construct to aid typing
<gonidelis[m]> hmmm ok thanks! how does it aid typing? (if it does)
<gonidelis[m]> K-ballo:
<K-ballo> it let's you associate an iterator and a transformation in a projection relation
<gonidelis[m]> hmmm ok.... i guess? :p
<gonidelis[m]> Thanks anyways 8)
Nikunj__ has joined #ste||ar
<K-ballo> it seems to be all it does... but it is unclear
nikunj97 has quit [Ping timeout: 244 seconds]
<gonidelis[m]> yeah but I mean: what if you don't associate the iter with the transformation in this projection relation? What's the drawback?
<gonidelis[m]> K-ballo:
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 240 seconds]
K-ballo1 is now known as K-ballo
nanmiao11 has quit [Remote host closed the connection]
nanmiao11 has joined #ste||ar
nanmiao11 has quit [Remote host closed the connection]
nanmiao11 has joined #ste||ar
weilewei has quit [Remote host closed the connection]
sayefsakin has joined #ste||ar
sayefsakin has quit [Client Quit]
<gonidelis[m]> Except from lines 51-52
<gonidelis[m]> should I also remove these decays?
<gonidelis[m]> hkaiser: K-ballo1
Nikunj__ is now known as nikunj97
<nikunj97> hkaiser, I talked to parsa about the load balancing stuff and I have a few ideas.
<nikunj97> I see 2 methods of getting distributed resiliency done. One, the user decides where the next replay happens and the one after and so on. Same for replicate. Two, the user provides one locality (similar to async calls) and we use performance counters to identify which nodes are idle and invoke it there.
<nikunj97> btw thanks for woorking on cpos.
weilewei has joined #ste||ar
Nikunj__ has joined #ste||ar
nikunj97 has quit [Ping timeout: 256 seconds]
Nikunj__ has quit [Quit: Leaving]
<hkaiser> nikunj: both options can be implemented using executors, so let's build a generic API
<nikunj> hkaiser: on it :D
<hkaiser> nikunj: I have an executor version of async_replay working here ;-)
<diehlpk_work> Would anyone be interested to review https://github.com/openjournals/joss-reviews/issues/2504
<hkaiser> was trivial
<diehlpk_work> RK-Opt: A package for the design of numerical ODE
<nikunj> hkaiser: I should learn how to convert them to executor
<hkaiser> I don't know anything about ODEs
<nikunj> diehlpk_work: what are ODEs?
<diehlpk_work> nikunj, Ordinary differential equation
<nikunj> Aah I see. I only have freshmen worth of knowledge on ODEs. Don't think that count as knowledge though ;-)
<K-ballo> gonidelis[m]: why?
Yorlik has quit [Ping timeout: 240 seconds]
<weilewei> When I build hpx master with apex develop tag, and run it with DCA, i got this error: pthread_setaffinity_np: Invalid argument
<weilewei> Anyone has idea? Or I will need to ask Kevin
<hkaiser> nikunj: I have pushed the executor APIs for async_replay and async_replicate
<nikunj> hkaiser: let me have a look
<weilewei> ok, just send Kevin a note
<hkaiser> weilewei: do youhave a stack-backtrace for this?
<weilewei> hkaiser ^^
<hkaiser> yah, that's an APEX problem
<hkaiser> send him the back trace as well
kale[m] has quit [Ping timeout: 246 seconds]
<weilewei> Ok, just sent
Yorlik has joined #ste||ar
Yorlik has quit [Ping timeout: 265 seconds]
<gonidelis[m]> K-ballo: There were these issues were we couldn't call functions by reference (using `&`)
<gonidelis[m]> So you suggested that we should remove decay
<gonidelis[m]> the thing is I don't quite get what transform_iteration does so I don't get if we need to remove the decay there
<K-ballo> that one was decay<>&, both decay by itself and & by itself can make sense
nikunj97 has joined #ste||ar
nanmiao11 has quit [Remote host closed the connection]
weilewei has quit [Remote host closed the connection]
weilewei has joined #ste||ar
nikunj97 has quit [Remote host closed the connection]
<weilewei> hkaiser got some apex profiling result, see emails... though I haven't really looked into what does these infomation mean
<gonidelis[m]> K-ballo: my bad. Thanks ;)
nanmiao11 has joined #ste||ar
<hkaiser> weilewei: nice
<nanmiao11> In CircleCI, my branch build fails with the error "/phylanx/src/src/execution_tree/primitives/assert_condition.cpp:10:10: fatal error: 'hpx/distributed/iostream.hpp' file not found
<hkaiser> nanmiao11: sorry for that - we've just changed it back to hpx/iostreams.hpp - could you adapt all of Phylanx to use that instead, please?
<hkaiser> (top of HPX master, that is)
<hkaiser> I meant hpx/iostream.hpp
<nanmiao11> Chang "hpx/distributed/iostream.hpp" back to "hpx/iostreams.hpp" ?
<nanmiao11> * Change