hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar-group.org | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | This channel is logged: irclog.cct.lsu.edu
jehelset has quit [Ping timeout: 250 seconds]
hkaiser has quit [Quit: Bye!]
jehelset has joined #ste||ar
jehelset has quit [Ping timeout: 250 seconds]
jehelset has joined #ste||ar
hkaiser has joined #ste||ar
nanmiao has quit [Quit: Client closed]
hkaiser_ has joined #ste||ar
hkaiser has quit [Ping timeout: 240 seconds]
<gonidelis[m]>
"Under NUMA, a processor can access its own local memory faster than non-local memory..."
<gonidelis[m]>
does local mean just cache or does it mean dram too?
<hkaiser_>
gonidelis[m]: NUMA means 'Non-Uniform Memory Access', it's not related to caches
<hkaiser_>
it's only referring to different access times to various parts of the main (dram) memory
<gonidelis[m]>
ah great!
<gonidelis[m]>
so my question was, how can access times differ since dram is a concrete memory thing. i mean it's not physically partitioned and allocated to processors, right?
<hkaiser_>
gonidelis[m]: each socket usually has it's own memory bus connexted to it's own dram memory
<hkaiser_>
memory reads/writes to that part of the memory is faster than having to go through the socket interconnect and the other memory bus
<gonidelis[m]>
yes
<hkaiser_>
so memory is physically partitioned
<gonidelis[m]>
how? different memory chips??
<gonidelis[m]>
wow!
<hkaiser_>
well, as said, each socket has it's own
<gnikunj[m]>
(I want to achieve something like this^^)
<hkaiser_>
do you need the tuple as an integral (non-type) template parameter
<gnikunj[m]>
hkaiser_: not really. It was just for an example. But I need an argument pack and use that pack to instantiate another type (function pointer)
<hkaiser_>
well, that's easy enough, I think
<gnikunj[m]>
I could do it using the struct specialization trick you mentioned yesterday but I was wondering if this can be done with functions too
<hkaiser_>
you can't specialize function templates
<gnikunj[m]>
It looks somewhat similar to what I've done
<gnikunj[m]>
hkaiser_: Should I update the resiliency libraries with retry sender? Or should I add that to execution?
<gnikunj[m]>
Also, what cmake 3.18 functions are we using?
<hkaiser_>
gnikunj[m]: first add it to execution and then create a new version allowing to compare performance
<gnikunj[m]>
Got it. I should be able to add one this week! I think I understand the code now too.
<gnikunj[m]>
hkaiser_: Btw I leave tomorrow morning. Want to catch up again tonight?
<hkaiser_>
gnikunj[m]: I think I can do that
<gnikunj[m]>
hkaiser_: Perfect! Where do you want to go? Chimes again?
<hkaiser_>
whatever you like
<gnikunj[m]>
well you know better. Any recommendations?
<hkaiser_>
none
<gnikunj[m]>
lol. Let's go to chimes again then
<hkaiser_>
ok
<gnikunj[m]>
hkaiser_: I have a debug build and I'm trying to step-into the code but there still seems to be optimizations from compilers end (trying to debug one of the sender tests). Is there an additional flag that I need to provide so that the compiler doesn't optimize anything and I can nicely view the call stack?
<hkaiser_>
-Od should do the trick
<hkaiser_>
sorry O0
<hkaiser_>
-O0
<gnikunj[m]>
So, I add that to CMAKE_CXX_FLAGS?
<hkaiser_>
look at what command lines are being generated: make VERBOSE=1
<gnikunj[m]>
I thought HPX was adding -O0 when building with debug flag
<hkaiser_>
yah
<hkaiser_>
it should
<gnikunj[m]>
hkaiser_: there's no -O0 with CMAKE_BUILD_TYPE=Debug
<hkaiser_>
uhh
<hkaiser_>
the flags are generated by cmake, not us
<gnikunj[m]>
Yeah, I thought setting debug on would ensure it also had -O0 but make VERBOSE=1 doesn't emit -O0 in the command
<gnikunj[m]>
anyway, I've added that as an additional flag.