按照我最近的一个问题(Parallel processing: @everywhere, distributions and types)后建议的方向工作,我尝试使用@everywhere设置一个模块,其类型取决于包。
然而,这产生了一个不同的问题 - 正如我在meta中所建议的那样创建了一个新帖子。假设我有以下模块(在test.jl中):
@everywhere module test
using Distributions
type TypeDistrib{T <: Float64}
d::Distributions.Normal{T}
end
include('./folder1/fun1.jl');
export TypeDistrib, fun1
end
其中fun1是一个函数(在fun1.jl中)和一个简单的脚本(在script.jl中):
include("./testdir/test.jl");
using test
另外,我们假设这些文件存储如下:
-> example/
- script.jl
-> testdir/
- test.jl
-> folder1/
- fun1.jl
当我使用示例作为我的工作目录而没有@everywhere运行它时,它没有任何错误。如果我用@everywhere运行它,它说文件fun1.jl不存在。
我注意到当我使用@everywhere时,相对路径与我的工作目录相关联,而不是与存储模块的目录相关联。我错过了什么吗?您能否澄清我应该如何使用@everywhere正确设置相对路径 - 或者更常见的是我的设置不准确?