I’ve got a Weave document (.jmd) and I’m using
@everywhere include("./utilities.jl")
There’s an error that says the remote machine is trying to load a file not in the current directory, but the same directory as on my local machine, which doesn’t exist on the remote machine.
documentation for @everywhere macro says:
Similar to calling remotecall_eval(Main, procs, expr), but with two extra
features:
- `using` and `import` statements run on the calling process first, to ensure
packages are precompiled.
- The current source file path used by `include` is propagated to other processes.
I think the second feature is a misfeature. If I wanted it to read from the same path as on my local computer, I’d send it an absolute path… instead it takes the relative path, converts it to an absolute path, and sends that to the remote machine, which fails since my home directory is not mounted on the remote machine…
What’s the workaround? and should this be a bug?
At the moment, I’m trying to work around with Distributed.remotecall_eval(…) we’ll see how it goes.