DistributedArrays.jl icon indicating copy to clipboard operation
DistributedArrays.jl copied to clipboard

Add gather(d::DArray{T,N,Array{T,N}}) where {T, N}

Open oskarpfeffer opened this issue 4 years ago • 1 comments

I am wondering why it is not possible to gather a DArray{T,N,Array{T,N}}?

I wrote this method to the gather function, it works for my purpose. Maybe it is possible to add it? (or maybe I did a mistake and it should be changed somehow?)

function gather(d::DArray{T,N,Array{T,N}}) where {T, N}
    a=Array{T}(undef, size(d))
    indices = collect.(d.indices)
    @sync for (i,p) in enumerate(procs(d))
        @async a[indices[i]...] = remotecall_fetch(localpart, p, d)
    end
    a
end

oskarpfeffer avatar Nov 11 '20 19:11 oskarpfeffer

This is what Array(d::DArray) does. So it is already implemented.

raminammour avatar Jan 14 '21 20:01 raminammour