添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

我尝试使用多处理来加快代码的性能,同时也使用numba jitclass。jitted函数中包含jitclass实例,该函数是多处理池的目标。

运行代码时,收到以下错误消息:cPickle.PicklingError: Can't pickle : attribute lookup numba.jitclass.boxing.MyClass failed

我尝试在python3中运行代码,它也有相同的问题:

^{pr2}$

我甚至试过了”病理学.多处理或“multiprocessing_-on-dill”模块代替了原来的“multiprocessing”模块,但两个模块都不起作用。

我怎么处理这个问题?提前谢谢。在

下面是我的测试代码。在import numba as nb

from scipy.integrate import odeint

import multiprocessing as mp

@nb.jit(nopython=True)

def odeSystem(x, t, a):

v = a.func(x, t)

return 1-x+v

@nb.jitclass([])

class B(object):

def __init__(self):

spec = [("b", B.class_type.instance_type),("c", nb.f8)]

@nb.jitclass(spec)

class A(object):

def __init__(self, b, c):

self.b = b

self.c = c

def func(self, x, t):

return 0

def odeSolve(x, t, a):

sol = odeint(odeSystem, x, t, args=(a,))

return sol

if __name__ == "__main__":

a = A(B(), 3)

from functools import partial

initialx = range(10)

ode = partial(odeSolve, t=range(0, 10), a=a)

nProcess = 1

pool = mp.Pool(nProcess)

sol = pool.map(ode, initialx)

print sol

如果我运行这个,我得到一个错误消息:cPickle.PicklingError: Can't pickle : attribute lookup numba.jitclass.boxing.A failed

我尝试使用多处理来加快代码的性能,同时也使用numba jitclass。jitted函数中包含jitclass实例,该函数是多处理池的目标。运行代码时,收到以下错误消息:cPickle.PicklingError: Can't pickle : attribute lookup numba.jitclass.boxing.MyClass failed我尝试在python3中运行代码,它也有相同的...
-------------------------------------------------------------------------------------------------------------- numba 用户手册 1. numba 基础 2.@ jit 3.使用自动并行化@ jit 4.性能提升 5.创建ufunc 6.@ jitclass 7.@cfunc
今天本来程序运行好着呢,中间修改了一段代码,出现如下 误: jit 调试失败,出现以下 误:拒绝访问。 jit 调试由用户帐户"NT AUTHORITY\NETWORK SERVICE" 启动。 有关更多信息,请查看文档索引中的“实时调试, 误”。 在网上查了一下出现这种问题的还挺多,找到一个解决方法如下: 设置--控制面板--管理工具--Microsoft .NET Framework ...
您好, Numba 是一个用于加速 Python 代码的库,它使用了一些 JIT (Just-In-Time)编译技术来提高 Python 代码的执行速度。在使用 Numba 时,需要设置一些环境变量,以确保它能够正常工作。 如果您的 Numba 环境变量未通过,请按照以下步骤进行设置: 1. 打开终端或命令提示符窗口。 2. 输入以下命令: set NUMBA _DISABLE_ JIT =0 或者,在Linux或macOS中,输入以下命令: export NUMBA _DISABLE_ JIT =0 3. 再次运行您的 Python 组态软件,看看是否已经解决了问题。 如果上述方法无法解决问题,请确保您已经正确安装了 Numba ,并按照官方文档中的指南进行设置。如果仍然无法解决问题,请尝试在 Numba 的社区论坛中寻求帮助。