I have a similar question about getting data to all workers. Consider the 
following code:

'''
addprocs(2)
using pfuncs

#=
@everywhere function showData()
  @show(data)
end
=#

function pstep()
  @sync begin
    for p in workers()
        @async begin
            remotecall_fetch(p, showData)
        end
    end
  end
end

@everywhere data = myid()
pstep()
'''

If I uncomment the part where the showData() function is defined, it works 
as expected. If I put the definition of showData() into the file pfuncs.jl 
and import it as in the example above, it does not work.

>From the manual I figure

"using DummyModule causes the module to be loaded on all processes; 
however, the module is brought into scope only on the one executing the 
statement."

addresses the problem, but does not help me solve it.
I also tried the let block posted by Jameson.

How do I get the same behaviour as with the @everywhere function definition 
in the commented block but being able to use modules?

For completeness here is the pfuncs.jl module:

'''
module pfuncs
  export showData

function showData()
  @show(data)
end

end
'''



Reply via email to