Julia 模块不支持预编译,但由支持预编译的模块导入
我正在Julia中使用Julia 模块不支持预编译,但由支持预编译的模块导入,julia,Julia,我正在Julia中使用pmap和分布式数组来并行化代码。当运行命令@everywhere include(“./code.jl”)时,会输出一长串警告消息,并且在这个过程中会消耗大量的时间。文件code.jl中的包是,例如: using DataFrames using Images 我不知道如何解决缓存中缺少的问题 这是正在运行的线路 @everywhere include("./code.jl") 我没想到会有一连串的抱怨。但是,所有工人的输出与此类似: From worker 2:
pmap
和分布式数组来并行化代码。当运行命令@everywhere include(“./code.jl”)
时,会输出一长串警告消息,并且在这个过程中会消耗大量的时间。文件code.jl
中的包是,例如:
using DataFrames
using Images
我不知道如何解决缓存中缺少的问题
这是正在运行的线路
@everywhere include("./code.jl")
我没想到会有一连串的抱怨。但是,所有工人的输出与此类似:
From worker 2: │ This may mean CategoricalArrays [324d7699-5711-5eae-9e2f-1d82baa6b597] does not support precompilation but is imported by a module that does.
From worker 2: └ @ Base loading.jl:947
From worker 6: ┌ Warning: Module CategoricalArrays with build ID 5344443537363826 is missing from the cache.
From worker 4: ┌ Warning: Module DataFrames with build ID 5344463834994296 is missing from the cache.
From worker 4: │ This may mean DataFrames [a93c6f00-e57d-5684-b7b6-d8193f3e46c0] does not support precompilation but is imported by a module that does.
From worker 4: └ @ Base loading.jl:947
From worker 2: ┌ Warning: Module DataFrames with build ID 5344464953933087 is missing from the cache.
From worker 2: │ This may mean DataFrames [a93c6f00-e57d-5684-b7b6-d8193f3e46c0] does not support precompilation but is imported by a module that does.
您可能有一个需要重新编译的包,并且您将得到一个竞争条件,在该条件下,所有工作人员都决定他们需要独立地重新编译它。尝试启动单个julia会话并键入]precompile
(进入pkg模式的]
)。完成后,为了安全起见,您可以尝试使用数据帧,以确保其正常工作。然后尝试上面的代码。而@tholy答案是正确的-您需要记住在每次更新包时重新编译
对抗竞争条件的另一种方法是在本地导入包,而不是在分布式版本中导入包:
using DataFrames
@everywhere using DataFrames
假设您的文件只导入包和定义函数,您可以尝试:
include("./code.jl")
@everywhere include("./code.jl")
这应该会有所帮助,并且在更新应用程序使用的某些包时,不需要记住重新编译 是否每次调用程序时都需要执行此步骤?否,仅当包已更改时才执行。您认为该文件仅导入包(使用…)并定义函数的假设是正确的。即使按照您的处方操作,我仍然会收到一长串警告消息。您的代码是在一台机器上运行还是分发的?在具有多个处理器的单个节点上因此有两个问题:(1)当您运行include(“./code.jl”)
时,还是仅当@everywhere include(“./code.jl”)时,才有此列表
在include(“./code.jl”)之后运行。
?(2) 您的代码是一个模块吗(如果是这样的话,您需要确保它也被编译),在这种情况下,分布式计算不是问题,而是包安装的问题。尝试删除~/.julia
文件夹并重新安装软件包