我正在尝试使用针对 Julia 函数的 multiprocessing.Process 来并行化 python 中的代码。
当我直接调用它时,即当我执行时,该函数工作正常:
if __name__ == "__main__":
import julia
julia.Julia(compiled_modules=False)
julia.Pkg_jl.func_jl(*args)
Run Code Online (Sandbox Code Playgroud)
但是,当我在Process函数中定义相同的函数作为目标时,出现错误。
这是代码:
from multiprocessing import Process
import julia
julia.Julia(compiled_modules=False)
class JuliaProcess(object):
...
def _wrapper(self, *args):
ret = julia.Pkg_jl.func_jl(args)
self.queue.put(ret) # this is for save the result of the function
def run(self, *args):
p = Process(target=self._wrapper, args=args)
self.processes.append(p) # this is for save the process job
p.start()
...
if __name__ == "__main__":
...
Jlproc = JuliaProcess()
Jlproc.run(some_args)
Run Code Online (Sandbox Code Playgroud)
错误发生在进程启动时,并显示以下输出:
fatal: error thrown and no exception …Run Code Online (Sandbox Code Playgroud)