Je porte un programme qui fonctionnait dans Julia 0.4 à Julia 0.5 et qui a des problèmes.Comment exécuter une fonction Julia à partir d'un package à distance?
Voici le programme:
addprocs(3)
ref = @spawn factor(21883298135690819)
factors = fetch(ref)
@assert factors == Dict(234711901=>1,93234719=>1)
Lors de l'exécution sur Julia 0.5, je reçois l'erreur
ERROR: On worker 2:
factor(21883298135690819,) has been moved to the package Primes.jl.
Run Pkg.add("Primes") to install Primes on Julia v0.5-
assez juste. Mais même quand je vais dans le terminal interactif, mon code ne fonctionne toujours pas! Voici la transcription:
julia> Pkg.add("Primes")
INFO: Nothing to be done
julia> using Primes
julia> Primes.factor(21883298135690819)
Dict{Int64,Int64} with 2 entries:
234711901 => 1
93234719 => 1
julia> addprocs(3)
3-element Array{Int64,1}:
2
3
4
julia> ref = @spawn factor(21883298135690819)
Future(2,1,5,Nullable{Any}())
julia> factors = fetch(ref)
ERROR: On worker 2:
factor(21883298135690819,) has been moved to the package Primes.jl.
Run Pkg.add("Primes") to install Primes on Julia v0.5-
Même problème!
J'ai lu le documentation qui semble indiquer que la déclaration using
rend le code accessible à tous les processus, mais ce n'est pas le cas.
Qu'est-ce que je fais mal?
mettre 'addprocs (3)' avant d'utiliser 'Primes'? – Gnimuc