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>
we should combine these two at some point...
<gonidelis[m]>
hkaiser: ahh great
<gonidelis[m]>
hkaiser: so with release i get the same results. i supsect the problem is on the iterator being bidir
<gonidelis[m]>
and not random
<hkaiser>
makes sense
<gonidelis[m]>
so no one hacked the math. i was wrong
<gonidelis[m]>
hkaiser: our hope lies in asyncrhony
<K-ballo>
remove_if view cannot possibly be random access
<gonidelis[m]>
K-ballo: because of math
<K-ballo>
math how?
<gonidelis[m]>
hkaiser: and yes, if i just use "parallelizable" views, say `transfrom`, we do have a performance boost
<gonidelis[m]>
hkaiser: so bottom line, it's what operations you choose to chain
<gonidelis[m]>
K-ballo: there is no algorithmical way to chain the result of `remove_if` to some other "simple" operation (e.g. `transform`) and expect for the `remove_if` to provide the result with rand. iterators
<K-ballo>
I don't know what that means
<gonidelis[m]>
since the predicate needs to be applied to all the elements
<gonidelis[m]>
one by one
<gonidelis[m]>
you cannot find an algorithm impl of remove_if that gives me random access to the elements of its result
<gonidelis[m]>
its = remove_if
<gonidelis[m]>
K-ballo: ^^
<K-ballo>
so it can't be random access because it can't be random access? I'll agree to that
<hkaiser>
everything is determined by the iterator category of the iterators the range view generates
<gonidelis[m]>
hkaiser: that's a perfect explanation. but there is no way for remove_if to generate random access
<gonidelis[m]>
<K-ballo "so it can't be random access bec"> what's your reasoning?
<K-ballo>
advance can't meet the O(1) complexity guarantee required by random access
<K-ballo>
because, as you said, needs to apply the predicate one by one until it finds the next element
<gonidelis[m]>
we aggree
<gonidelis[m]>
i like your wording though
<K-ballo>
similarly for distance
<gonidelis[m]>
yy
<gonidelis[m]>
K-ballo: now put `future`s on that... and you may get sth better than non-parallel-at-all
<K-ballo>
futures on a view..?
<gonidelis[m]>
K-ballo: ahh not exactly... sorry
<gonidelis[m]>
i meant, take advantage of the pipelining operation by using async.algorithms (instead of views) + executors (chain continuation)
<gonidelis[m]>
that's like an inbred of views i know
<gonidelis[m]>
but you still get to chain things
<gonidelis[m]>
not that composable though
<gonidelis[m]>
i don't want to spoil it for you, "Come to CppNow talk and find everything you need to know, Now!"
<gonidelis[m]>
my^^
<gonidelis[m]>
gnikunj[m]: cppnow published your talk on twitter