Maybe odd only in the eye of novice user, but I would like to know why.
So, I have the settings for multi process environment
- JULIA_NUM_THREADS = 4
- number of precesses = 4 (-p4)
Also, I have push!(LOCAL_PATH, “.”) in startup.jl.
There is a very simple module (MyMod.jl) define as:
module MyMod
function func()
Core.println("1234")
end
end # MyMod
Now, I do in REPL: using MyMod
Then I get the error: (this error only happens when #processes are more than 1)
I feel this is very strange because there is no multi process calls in the module.
One notable thing is that error is not produced if I do:
include("/path/to/MyMod.jl")
using .MyMod
So I guess that unless a module is not part of a package system, then correct way of import a module is to use include() and .using syntax. but I have no idea.
ERROR: On worker 2:
ArgumentError: Package MyMod [top-level] is required but does not seem to be installed:
- Run
Pkg.instantiate()
to install all recorded dependencies._require at .\loading.jl:982
require at .\loading.jl:911
#2 at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Distributed\src\Distributed.jl:78
#116 at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Distributed\src\process_messages.jl:307
run_work_thunk at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Distributed\src\process_messages.jl:79
run_work_thunk at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Distributed\src\process_messages.jl:88
#102 at .\task.jl:268
#remotecall_wait#154(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(remotecall_wait), ::Function, ::Distributed.Worker) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Distributed\src\remotecall.jl:421
remotecall_wait(::Function, ::Distributed.Worker) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Distributed\src\remotecall.jl:412
#remotecall_wait#157(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(remotecall_wait), ::Function, ::Int64) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Distributed\src\remotecall.jl:433
remotecall_wait at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.2\Distributed\src\remotecall.jl:433 [inlined]
(::getfield(Distributed, Symbol(“##1#3”)){Base.PkgId,Int64})() at .\task.jl:268…and 3 more exception(s).
Stacktrace:
[1] sync_end(::Array{Any,1}) at .\task.jl:235
[2] _require_callback(::Base.PkgId) at .\task.jl:254
[3] #invokelatest#1 at .\essentials.jl:790 [inlined]
[4] invokelatest at .\essentials.jl:789 [inlined]
[5] require(::Base.PkgId) at .\loading.jl:914
[6] require(::Module, ::Symbol) at .\loading.jl:906