J'ai une fonction et je veux l'appeler dans la fonction principale. tous les arguments sont sharedArray
et nous avons une variable qui est type
. quand je veux lancer le programme, j'ai une erreur.Comment pouvons-nous appeler SharedArray dans Julia?
@everywhere type dty{T <: Real}
...... (some variable)
end
@everywhere function func2!(v::dty,
out::SharedArray,
out2::SharedArray)
........
end
function func1()
...
out = SharedArray{Float64,2}(n,m)
out2 = SharedArray{Float64,2}(n,m)
......
func2!(v , out, out2)
end
Erreur:
MethodError: no method matching func2!(::dty{Float64}, ::Array{Float64,2}, ::SharedArray{Float64,2}, ::SharedArray{Float64,2})
Closest candidates are:
func2!(::dty, ::SharedArray, ::SharedArray) at In[3]:64
out était une matrice avant que je voulais parallèle au code. mais la matrice est le tableau 2D et quand j'utilise typeof (out), je trouve qu'il peut être Array. donc je l'ai utilisé comme sharedArray – ReD
Droit, mais si vous le faites comme ça, alors chaque version fonctionnera, peu importe le tableau que vous mettez là-dedans. –