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
Yorlik_ has quit [Ping timeout: 268 seconds]
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 268 seconds]
K-ballo1 is now known as K-ballo
Yorlik_ has joined #ste||ar
Yorlik_ is now known as Yorlik
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 268 seconds]
K-ballo1 is now known as K-ballo
freemint has joined #ste||ar
<freemint>
Do i understand it correctly that HPX is less suited for applications with large mutable state that gets operated on?
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 268 seconds]
K-ballo1 is now known as K-ballo
freemint has quit [Remote host closed the connection]
<john98zakaria[m]>
<freemint> "Do i understand it correctly..." <- Why do you think that's the case?
<gonidelis[m]>
satacker: was out. apologies. will be available throughout this week though. feel free to ping me
<satacker[m]>
gonidelis[m]: np, as hartmut will be unavailable this week, shall we meet casually or next week?
<gonidelis[m]>
let's meet
<satacker[m]>
alrighty
<gonidelis[m]>
coo
freemint has joined #ste||ar
<freemint>
john98zakaria[m] because 1) i didn't see anything how i can make precondition that a task is only scheduled when some collection of locks can be be acquired, 2) i know `future`s mostly from languages such as Scheme, JavaScript, Java, R and Haskell which have poor performance (or no support) for mutation operations on complicated and shared data structures. 3) data tasks depend on in the examples mostly seem to be small number
<freemint>
types or arrays of numbers.
<john98zakaria[m]>
<freemint> "john98zakaria because 1) i didn..." <- Conditional task execution is unfortunately not directly supported (as far as I know) . You can of course create a new task within a task if a condition is satisfied.
<john98zakaria[m]>
3) if you are looking for larger examples
<john98zakaria[m]>
If you want to do mutations, you could create a lambda and capture your object by reference. You would only have to guarantee that you won't introduce race conditions and that your object doesn't go out of scope before the function gets executed.
<freemint>
Do you have any recommendations whether one should vectorise the inner most loop in a task? What libraries do you recommend for a low technical debt, low maintainance cross CPU arch vectorisation when vectorising loops when the loops can not be expressed with BLAS like code.