Ah, okay.

That reminds me, my neighbor keeps telling me about a family living in my 
coat closet, but when I look on my own I can never find them.  8-)

On Thursday, May 8, 2014 5:18:38 AM UTC-4, Amit Murthy wrote:
>
> 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]<javascript:>
> > 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