我每年都在计算一些计算量相对较大的数据。我使用 numba(效果很好)来减少运行迭代计算数据所需的时间。但是,鉴于我有 20 年的独立数据,我想将它们分成 5 x 组,每组 4 个,可以运行在 4 个不同的 cpu 内核上。
def compute_matrices(self):
for year in self.years:
self.xs[year].compute_matrix()
在上面的代码片段中,函数是类中的一个方法,其中包含属性 year 和 xs。year
只是一个整数年,xs
是一个包含 xs.data 和 compute_matrix() 方法的横截面对象。
将其拆分为多个核心的最简单方法是什么?
如果有一个 Numba 风格的装饰器可以自动分解循环并在不同的进程上运行它们并将结果粘合在一起,那就太好了。这存在吗?
使用 Python.multiprocessing 是我最好的选择吗?