MPIMapReduce.jl
MPIMapReduce.Cat — TypeCat(dims)Operator that performs a concatenation over the dimensions dims.
Examples
julia> c1 = MPIMapReduce.Cat(1);
julia> c1([1], [2])
2-element Vector{Int64}:
1
2
julia> c2 = MPIMapReduce.Cat(2);
julia> c2([1], [2])
1×2 Matrix{Int64}:
1 2MPIMapReduce.pmapgatherv — Methodpmapgatherv(f, op, iterators...; [root = 0], [comm = MPI.COMM_WORLD])Apply function f to each element(s) in iterators, and then reduce the result using the concatenation operator op. Both the map and the reduction are evaluated in parallel over the processes corresponding to the communicator comm. The result of the operation is returned at root, while nothing is returned at the other processes.
The result of pmapgatherv is equivalent to that of mapreduce(f, op, iterators...).
The concatenation operator op may be one of vcat, hcat and Cat.
Anonymous functions are not supported as the concatenation operator.
MPIMapReduce.pmapreduce — Methodpmapreduce(f, op, iterators...; [root = 0], [comm = MPI.COMM_WORLD])Apply function f to each element(s) in iterators, and then reduce the result using the elementwise binary reduction operator op. Both the map and the reduction are evaluated in parallel over the processes corresponding to the communicator comm. The result of the operation is returned at root, while nothing is returned at the other processes.
The result of pmapreduce is equivalent to that of mapreduce(f, (x, y) -> op.(x, y), iterators...).
Unlike the standard mapreduce operation in Julia, this operation is performed elementwise on the arrays returned from the various processes. The returned value must be compatible with the elementwise operation.
MPI reduction operators require each worker to return only one array with an eltype T that satisfies isbitstype(T) == true. Such a limitation does not exist for Julia operators.