小编Mig*_*rro的帖子

使用 Numba 限制活动 CPU 核心的数量

@njit(parallel=True)当使用 Numba 库中的装饰器运行函数时,我试图限制活动 CPU 核心的数量。

到目前为止,我已经做了这样的事情(示例):

from numba import njit, prange, set_num_threads

import numpy as np


@njit(parallel=True)
def func():

    for i in prange(int(1e10)):

        print(np.cos(i))


if __name__ == '__main__':
    
    num_threads = input(f'Enter max number of threads to use: ')

    set_num_threads(int(num_threads))

    func()
Run Code Online (Sandbox Code Playgroud)

但即使将线程数设置为 1,使用任务管理器进行快速检查显示工作负载仍然由所有核心共享(在我的例子中为 4)。

在下面的屏幕截图中可以看到这一点。红色圆圈表示程序启动和中断的时间。

任务管理器截图

有没有更好的方法来限制活动核心的数量?

python parallel-processing numba

9
推荐指数
1
解决办法
3003
查看次数

标签 统计

numba ×1

parallel-processing ×1

python ×1