How can a remote proc discover, on its own, that it is "hosting" a portion
of a DArray?
Here a DArray is distributed across two workers, but the workers'
`whos` don't see it.
$ ./julia
_
_ _ _(_)_ | A fresh approach to technical computing
(_) | (_) (_) | Documentation: http://docs.julialang.org
_ _ _| |_ __ _ | Type "help()" to list help topics
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 0.3.0-prerelease+2921 (2014-05-07 17:56
UTC)
_/ |\__'_|_|_|\__'_| | Commit ea70e4d* (0 days old master)
|__/ | i686-redhat-linux
julia> versioninfo()
Julia Version 0.3.0-prerelease+2921
Commit ea70e4d* (2014-05-07 17:56 UTC)
Platform Info:
System: Linux (i686-redhat-linux)
CPU: Genuine Intel(R) CPU T2250 @ 1.73GHz
WORD_SIZE: 32
BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY)
LAPACK: libopenblas
LIBM: libopenlibm
julia> addprocs(2)
2-element Array{Any,1}:
2
3
julia> remotecall_fetch(2, whos)
From worker 2: Base Module
From worker 2: Core Module
From worker 2: Main Module
julia> dz=dzeros(512)
512-element DArray{Float64,1,Array{Float64,1}}:
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
julia> dz.chunks
2-element Array{RemoteRef,1}:
RemoteRef(2,1,3)
RemoteRef(3,1,4)
julia> dz.indexes
2-element Array{(UnitRange{Int32},),1}:
(1:256,)
(257:512,)
julia> remotecall_fetch(2, whos)
From worker 2: Base Module
From worker 2: Core Module
From worker 2: Main Module
julia>
If you tell the remote proc the name of the DArray, it can find its part.
julia> remotecall_fetch(2, localpart, dz)
256-element Array{Float64,1}:
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
julia>