Skip to content

Commit 4887abd

Browse files
Update darray.jl
1 parent 207cf4c commit 4887abd

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/array/darray.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,14 +511,16 @@ function distribute(A::AbstractArray{T,N}, dist::Blocks{N}, assignment::Union{Sy
511511
procgrid = nothing
512512
elseif assignment == :blockcyclic
513513
p = ntuple(i -> i == N ? num_processors() : 1, N)
514-
procgrid = reshape([proc for i in procs() for proc in get_processors(OSProc(i))], p)
514+
availprocs = [proc for i in procs() for proc in get_processors(OSProc(i))]
515+
sortedavailprocs = sort!(availprocs, by = x -> (x.owner, x.tid))
516+
procgrid = reshape(sortedavailprocs, p)
515517
else
516518
error("Unsupported assignment symbol: $assignment, use :arbitrary or :blockcyclic")
517519
end
518520
elseif assignment isa AbstractArray{<:Int, N}
519521
missingprocs = filter(p -> p procs(), assignment)
520522
isempty(missingprocs) || error("Missing processors: $missingprocs")
521-
procgrid = [first(get_processors(OSProc(proc))) for proc in assignment]
523+
procgrid = [Dagger.ThreadProc(proc, 1) for proc in assignment]
522524
elseif assignment isa AbstractArray{<:Processor, N}
523525
availprocs = [proc for i in procs() for proc in get_processors(OSProc(i))]
524526
missingprocs = filter(p -> p availprocs, assignment)

0 commit comments

Comments
 (0)