diff --git a/src/darray.jl b/src/darray.jl index 34aa6f5..76ffc50 100644 --- a/src/darray.jl +++ b/src/darray.jl @@ -285,7 +285,7 @@ end # get array of start indices for dividing sz into nc chunks function defaultdist(sz::Int, nc::Int) if sz >= nc - return round.(Int, range(1, stop=sz+1, length=nc+1)) + return ceil.(Int, range(1, stop=sz+1, length=nc+1)) else return [[1:(sz+1);]; zeros(Int, nc-sz)] end diff --git a/test/darray.jl b/test/darray.jl index e7b18bb..19d3214 100644 --- a/test/darray.jl +++ b/test/darray.jl @@ -56,6 +56,13 @@ using SparseArrays: nnz @test DistributedArrays.empty_localpart(Float64,2,LowerTriangular{Float64,Matrix{Float64}}) isa LowerTriangular end + + @testset "Consistent Uneven Distribution issue #166" begin + DA = drand((2+length(OTHERIDS),), [MYID, OTHERIDS]) + @test fetch(@spawnat MYID length(localpart(DA)) == 2) + @test fetch(@spawnat OTHERIDS length(localpart(DA)) == 1) + close(DA) + end end check_leaks()