首页 > 解决方案 > 如何通过 Windows 10 在 jupyter notebook 中使用多处理

问题描述

我尝试在 windows 10、python2.7 和 jupyter notebook 中对简单代码使用多处理。当我运行代码时,内核得到了堆栈,没有抛出任何错误。我检查了任务管理器的性能,看到 8 个(我的 CPU 中的核心数)进程在运行,每个进程的 CPU 使用率为 0%。我几乎到处找,但什么也没找到。我也在 anaconda 提示符中尝试过,但出现了无穷无尽的错误循环。

这是我的代码:

import multiprocessing

n_cpu = multiprocessing.cpu_count()

def foo(x):
    return x**2

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes = n_cpu)
    res = pool.map(foo, [1,2,3])  
    pool.close() 

标签: pythonmultiprocessingjupyter-notebook

解决方案


这是您的实际代码吗?由于foo如此简单,此代码将运行得如此之快,以至于看起来可能是 0% 的 CPU 使用率。

如果您看到产生了子流程,那么pool.map就是在做它的工作。如果你想看到他们都真正使用全 CPU,给他们一些真正的肉来咀嚼(也许像sum([sum(range(x)) for x in range(1000)]).


推荐阅读