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 has joined #ste||ar
bita has quit [Read error: Connection reset by peer]
bita has joined #ste||ar
akheir has quit [Read error: Connection reset by peer]
nanmiao11 has quit [Remote host closed the connection]
akheir has joined #ste||ar
hkaiser has quit [Quit: bye]
akheir has quit [Remote host closed the connection]
shahrzad has quit [Quit: Leaving]
bita has quit [Ping timeout: 240 seconds]
<ms[m]> hkaiser: ok, thanks
Yorlik has joined #ste||ar
hkaiser has joined #ste||ar
akheir has joined #ste||ar
<hkaiser> parsa: can we cancel our meeting today?
<parsa> hkaiser: sure. i did see the email. i don't have any related updates this week
<hkaiser> nod, thought so ;-)
<parsa> hkaiser: i did submit the stuff. haven't heard back from yet, got two interviews next week
<hkaiser> good luck
bita has joined #ste||ar
<K-ballo> hkaiser: can you explain the advantage of reading then writing vs atomically reading and writing?
<hkaiser> K-ballo: writing to a variable causes false sharing being cores, just reading doesn't do that
<hkaiser> see the two examples here: for the differences: https://en.cppreference.com/w/cpp/atomic/atomic_flag
<K-ballo> I see
weilewei has joined #ste||ar
weilewei has quit [Remote host closed the connection]
bita has quit [Ping timeout: 244 seconds]
diehlpk_work has quit [Remote host closed the connection]
<hkaiser> K-ballo: btw: here is an extensive writeup about the spinlock issue: https://rigtorp.se/spinlock/
<K-ballo> thanks
<K-ballo> hkaiser: couldn't you implement the read only approach over the original loop?
<K-ballo> the important bit seems to be changing atomic_flag to atomic<bool>
<hkaiser> yes, that would work
<hkaiser> the use of yield_while() was just convenience as we have that available
<hkaiser> otoh, that creates the circular dependency
<K-ballo> sounds like it's not as low level as it could be
<K-ballo> that shows implementing the desired behavior is trivial, just change `try_locked`, also it may be undesirable (at least to peter)
<hkaiser> K-ballo: sure it's trivial, albeight not optimal, especially in high contention scenarios
<K-ballo> mmh?
<hkaiser> Peter's implementation is trivial, sure
<K-ballo> the changes to read then read write are trivial, just change try_locked
<K-ballo> it's a change you'd want anyhow, under the same rationale
<hkaiser> you want to do the yield_k inside the inner loop
<hkaiser> but sure
<K-ballo> you don't need two loops, that's the point
<hkaiser> k, good point
bita has joined #ste||ar
<K-ballo> default constructor should be `noexcept`
khuck has quit []