python - 如何通过 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()
解决方案
这是您的实际代码吗?由于foo
如此简单,此代码将运行得如此之快,以至于看起来可能是 0% 的 CPU 使用率。
如果您看到产生了子流程,那么pool.map
就是在做它的工作。如果你想看到他们都真正使用全 CPU,给他们一些真正的肉来咀嚼(也许像sum([sum(range(x)) for x in range(1000)])
.
推荐阅读
- pygame - 在pygame中分配键的便捷方法
- python - 多处理嵌套循环
- typescript - 为什么下拉值不使用打字稿来?
- javascript - 作为 WebSocket 消息发送时,压缩的 Java String 的长度不等于 content-length
- windows - 如何在 Windows 10 上安装 ROS - 但不在 C 盘中?
- ramda.js - 如何使用 Ramda 将数组拆分为子列表?
- javascript - Django项目中的jQuery Ajax问题
- python - 将列表转换为字典,其中包含 Python 中重复键的值列表
- javascript - 每10升价格上涨
- embedded - 使用 STM32F042F6 产生 0-5V 输出