JuliaParallel / JuliaParallel/DistributedArrays.jl
Multiple chunks on one process
- Dominant language
- Julia
- Stars
- 205
- Forks
- 34
- PR merge metrics
- No merged PRs in 30d
Description
I build a DArray as follows:
```
@everywhere using DistributedArrays
r1 = @spawnat 2 zeros(4,4)
r2 = @spawnat 2 zeros(4,4)
r3 = @spawnat 2 rand(4,4)
r4 = @spawnat 3 rand(4,4)
ras = [r1 r2; r3 r4]
D = DArray(ras)
```
My expectation is that the output should have two 4x4 blocks of zeros and two 4x4 blocks of random numbers. Instead, I get three blocks of zeros and one block of random numbers:
```
8×8 DArray{Float64,2,Array{Float64,2}}:
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.525043 0.321681 0.489682 0.586815
0.0 0.0 0.0 0.0 0.569794 0.780382 0.542156 0.215128
0.0 0.0 0.0 0.0 0.00308504 0.912877 0.179453 0.568009
0.0 0.0 0.0 0.0 0.410886 0.333188 0.743346 0.969894
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the example using DArray and the four spawned 4×4 arrays, then trace how DArray consumes the block matrix and assigns chunks to processes. Compare the observed 8×8 layout with the expected two zero and two random blocks; done means the intended block values are preserved, with a regression test for multiple chunks on one process.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100