Might be in relation to this thread 
<https://groups.google.com/forum/#!msg/julia-users/FjGXSTzvfmc/j0ZDG629IwAJ> 
- I've ported some code from 0.3.11 to 0.4, but when trying to run it in 
parallel I encounter all kinds of issues. 

My main file starts with 

nprocs()==CPU_CORES || addprocs(CPU_CORES-1)
@everywhere begin
  include(path*"Optimizations.jl")
  include(path*"Interpolations.jl")
  include(path*"Parameters.jl")
  ...
end

Each file included here has a using statement at the beginning importing 
the necessary modules (e.g. Optimizations.jl will start with using Optim). 
Now when I run this, I get warnings about "replacing modules", one for each 
worker. Furthermore, every now and then (I'd say about half the time), I 
also get warnings of the form "both Grid and Grid export "CoordInterpGrid"; 
uses of it in module Main must be qualified", and the whole thing ends in 
an UndefVarError on one of the workers, complaining that a function from 
one of the modules that should have been imported is undefined. 

If I get past this stage and my code gets to the parallel loop, it finishes 
after a couple of seconds without any results. I've narrowed this down to 
the fact that the function being called in my parallel loop for some reason 
doesn't work on the worker processes (i.e. I can call func(a,b,c) on the 
main process, but remotecall_fetch(3,func,a,b,c,) gives a MethodError), but 
instead of getting lots of errors from my workers (as in 0.3.11), it seems 
that the loop simply skips over the errors and returns an empty results 
array without displaying an error. Is this expected behavior?

Reply via email to