2014-04-22 12 views
5

ich die parallele Berechnung von Julia zu erkunden und versucht, dies:Wie legt man Werte für die Elemente von DArray fest?

a=dzeros(5);a[1]=5 

aber gerade diesen Fehler bekam:

setindex! not defined for DArray{{Float64, 1, Array{Float64, 1}} 

Nun, dachte ich, das Handbuch sagte setindex! vollständig durch DArray umgesetzt wird. Was habe ich verpasst?

Ich verwendete v0.2.1 für Windows 32-Bit.

+0

was sagen Methoden (Setindex!)? Wird DArray irgendwo in seiner Liste aufgeführt? –

+0

@ JeremyWall Ich sehe mehrere DArrays in der Liste, bin mir aber nicht sicher, ob es sich um Methoden handelt, die das unterstützen, was ich tun möchte. (Ich bin immer noch nicht so vertraut mit der Syntax von Julia.) – xzczd

Antwort

3

Ich bin nur ein Forscher auch, aber nach dem Lesen Julia's Distributed Arrays Docs, versuchte ich dies, was zu funktionieren schien.

$ ./julia 
       _ 
    _  _ _(_)_  | A fresh approach to technical computing 
    (_)  | (_) (_) | Documentation: http://docs.julialang.org 
    _ _ _| |_ __ _ | Type "help()" to list help topics 
    | | | | | | |/ _` | | 
    | | |_| | | | (_| | | Version 0.3.0-prerelease+2703 (2014-04-22 18:57 UTC) 
_/ |\__'_|_|_|\__'_| | Commit 942ae42* (0 days old master) 
|__/     | i686-redhat-linux 

julia> versioninfo() 
Julia Version 0.3.0-prerelease+2703 
Commit 942ae42* (2014-04-22 18:57 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> a=dzeros(5) 
5-element DArray{Float64,1,Array{Float64,1}}: 
0.0 
0.0 
0.0 
0.0 
0.0 

julia> localpart(a)[1]=5 
5 

julia> a 
5-element DArray{Float64,1,Array{Float64,1}}: 
5.0 
0.0 
0.0 
0.0 
0.0 

julia> 

Es scheint, dass verteilte Arrays nicht "lokal" sind, bis Sie sie "lokal" machen.

+0

N.B .: Der 'lokale Teil' eines DArray muss dem 'proc/worker' zugewiesen werden, wo es existiert. – rickhg12hs

Verwandte Themen