In den folgenden DateienJulia: mit @parallel für oder pmap innerhalb Kind/Submodule
test.jl
push!(LOAD_PATH, string(pwd(), "/lib/"))
@everywhere using Parent
addprocs(2)
Parent.Child.test()
lib/Parent.jl
@everywhere module Parent
struct INT
i::Int64
end
include("Child.jl")
end
lib/Kind. jl
module Child
import Parent
function test()
a = [1, 2, 3, 4, 5]
@parallel (+) for x in a
i = Parent.INT(x)
println(x)
x
end
end
end
Ich bekomme folgende erro rs:
% julia test.jl
ERROR: ERROR (unhandled task failure): On worker 3:
UndefVarError: Parent not defined
Verwendung entweder @parallel für oder pmap würden die gleichen Fehler bekommen.
Wenn ich jedoch alles außerhalb von Modulen platziere, dann funktionieren die Codes gut.
Entfernen von "addprocs (2)" dann funktioniert auch alles gut.
Mein Projekt besteht aus vielen Modulen und Submodulen und würde gerne die modulare Struktur behalten. Allerdings bin ich Julia sehr neu und weiß wahrscheinlich nicht, wie ich das richtig machen soll. Was mache ich hier falsch?
sein fand ich auch, dass Funktionstest setzen() in Parent-Modul und das Kind Modul komplett zu entfernen, den gleichen Fehler gibt. –