小编Iva*_*hor的帖子

将 Julia 函数定位到 multiprocessing.Process of Python 时出错

我正在尝试使用针对 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)

python multiprocessing julia pycall

5
推荐指数
1
解决办法
244
查看次数

标签 统计

julia ×1

multiprocessing ×1

pycall ×1

python ×1