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>
>
>
>
>

Reply via email to