Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements #11
Like
split=:scatter
, this option is a bit scary to expose fortmapreduce
because it also requires that the reducing op be commutative.I almost wonder if we should do some sort of argument validation to detect if the user gave us a non-commutative reducing operator...
e.g.
This is not a problem for
tforeach
,tmap(f, OutputElementType, A)
, ortmap!
, but it is a concern for regulartmap
, as well astmapreduce
,treducemap
, andtreduce
.One other potential problem is that this algorithm is prone to giving errors if you run it on a small array and don't provide an
init
argument:this is because we're doing
so if one task gets spawned after the channel gets emptied, then we're in trouble.