hkaiser changed the topic of #ste||ar to: The topic is '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/
bobakk3r has quit [Quit: No Ping reply in 180 seconds.]
<Yorlik> I am currently experimenting with dynamic resolution of templated types and -functions, like this: : I am currently experimenting with dynamic resolution of template types and -functions, like this: https://godbolt.org/z/YvydT4
<Yorlik> Do you see any serious problem here - ideas?
<Yorlik> woops - copypaste mess - but I guess the question is clear.
diehlpk has joined #ste||ar
<diehlpk> Anyone some idea what could case terminate called without an active exception
<Yorlik> thread going out of scope without a join?
<diehlpk> Ok, any experience why this happens only one multiple nodes and not on one node?
<Yorlik> Sry - I have no clue about that.
<diehlpk> hkaiser, I give up with octotiger and libfabric
<diehlpk> We should use MPI for the SC20 paper
diehlpk has quit [Ping timeout: 260 seconds]
hkaiser has quit [Quit: bye]
simbergm has joined #ste||ar
daissgr has joined #ste||ar
daissgr has quit [Remote host closed the connection]
hkaiser has joined #ste||ar
hkaiser has quit [Quit: bye]
hkaiser has joined #ste||ar
hkaiser has quit [Ping timeout: 260 seconds]
hkaiser has joined #ste||ar
bibek has joined #ste||ar
bibek has quit [Client Quit]
diehlpk has joined #ste||ar
<diehlpk> jbjnr, I sent you the outout for fi_info
<diehlpk> Right know I compile the libfabric version
<hkaiser> jbjnr: yt?
diehlpk has quit [Ping timeout: 260 seconds]
<Yorlik> Any comments on this mechanics of dynamic (yeah - lol) template instantiation and function dispatch? Trying to simplify things and having a template easily extensible and typecodes for dynamic dispatch being usable. https://godbolt.org/z/Wdkg7S
hkaiser has quit [Quit: bye]
RostamLog has joined #ste||ar
hkaiser has joined #ste||ar
<Yorlik> hkaiser: YT and up for a guru advice ;) ?
<hkaiser> Yorlik: here
<Yorlik> Nice! I'm re-posting:
<Yorlik> Or - just look up - you were there ...
<Yorlik> Can you see my last question?
<Yorlik> About this: https://godbolt.org/z/Wdkg7S
<hkaiser> ok
<hkaiser> what's the question
<Yorlik> I am trying to make my entity system as autoconfiguring as possible, with instantiations forcved from enums.
<Yorlik> So - I want all to work and just add new components and entities. The rest shouzld just work automagically.
<hkaiser> sure, but what's the question?
<Yorlik> Like calling update_frame() and it auto loops over all instantiations and updates them.
<Yorlik> I used a specific mechanic in that code for two things
<Yorlik> 1. force instantiate from an enum
<Yorlik> 2. Allow dynamic dispatch from a code.
<Yorlik> I guess you might have had to solve similar problems in HPX as heavily templated as it is
<Yorlik> It's like: is that OK? Anything sunstantial to improve?
<hkaiser> not really
<hkaiser> we didn't do anything like that
<Yorlik> Dynamic Dispatch ofc is not the common case - but might be needed.
<hkaiser> otherwise, if it works for you - just go with it
<Yorlik> Imagine CreateEntity(type2_code)
<Yorlik> Things like that - after all we expose it to Lua
<Yorlik> I thought filling an array with std::functions and having it exactly the right size automagically would do one of the tricks.
<hkaiser> ok - so does it?
<Yorlik> I just use one additional enum.
<Yorlik> And use myenum::LAST to get the size
<Yorlik> Also when doing chained instantiations recursivley i can use a LAST instance as stopper
<Yorlik> Basically doing compile time loops over types.
<hkaiser> Yorlik: ok, but what's your question?
<Yorlik> The question is, if it's good practise, has some serious negative implicatiuons and such.
<Yorlik> Also if it coiuzld be done better.
<Yorlik> newbie insecurity kicking in here.
<hkaiser> as said - if it works for you - go with it
<hkaiser> std::function might have some perf impact - not sure how critical that could be, though
<Yorlik> What would be faster? Raw function pointer?
<hkaiser> Yorlik: std::function is equivalent to using a virtual function as it is type-erasing the bound function
<hkaiser> might not be an issue - just saying
<Yorlik> So - it's another level of indirection then?
<hkaiser> nod
<hkaiser> but you need type erasure, do you?
<Yorlik> IC - might just rewrite to use raw typed function pointers instead.
<Yorlik> Not really
<Yorlik> The functions can have same prototype
<Yorlik> Later I might need more
<Yorlik> I am using function templates which take an index and the type is encoded in the instantiation
<Yorlik> So - same prototyp like update_entity<typecode>(slot)
<Yorlik> or update_all_parloop<typecode>()
<Yorlik> Note to self: Gotta learn function pointers correctly.
hkaiser has quit [Ping timeout: 240 seconds]
hkaiser has joined #ste||ar
<hkaiser> Yorlik: sorry - I dropped out
<Yorlik> Saw it. The gist is many functions are just templated and have the same prototype
<hkaiser> ok, then a pointer should work
<Yorlik> Like: void update_all_parloop<typecode>()