It can't. All part references are in the DArray object, `dz` in your example above.
On Thu, May 8, 2014 at 1:07 AM, Rick Graham <[email protected]> wrote: > 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> > > > >
