How to launch 100 workers in multiprocessing?(如何在多进程中启动100个工人?)
本文介绍了如何在多进程中启动100个工人?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试使用python调用我的函数,my_function()
100次。由于my_function
需要一段时间才能运行,我希望将此进程并行化。
我尝试阅读https://docs.python.org/3/library/multiprocessing.html的文档,但找不到启动100个工作人员的简单示例。顺序并不重要;我只需要该函数运行100次。
有什么建议/代码提示吗?
推荐答案
您链接到的页面上的第一个示例可以正常工作。因此,我只需将其复制并粘贴到此处,然后更改两个值。
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
with Pool(100) as p:
print(p.map(f, range(100)))
编辑:您刚刚说您正在使用Google CoLab。我认为Google CoLab为您提供了两个CPU核心,而不是更多。(您可以通过运行!cat /proc/cpuinfo
进行检查)。2个CPU核,一次只能执行两次计算。
因此,如果您的函数主要不是等待外部IO(例如来自网络)的东西,那么这就没有意义:您有50个执行在竞争一个内核。现代多处理的魔力在于,这意味着突然间,一个函数将被中断,其状态保存到RAM中,然后另一个函数可能运行一段时间,被中断,以此类推。
当然,整个进程状态的交换都是开销。只需并行运行与拥有内核一样多的实例,您的函数就会更快。有关详细信息,请阅读上述Pool
上的文档。
这篇关于如何在多进程中启动100个工人?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何在多进程中启动100个工人?


基础教程推荐
猜你喜欢
- PermissionError: pip 从 8.1.1 升级到 8.1.2 2022-01-01
- 在Python中从Azure BLOB存储中读取文件 2022-01-01
- 包装空间模型 2022-01-01
- 无法导入 Pytorch [WinError 126] 找不到指定的模块 2022-01-01
- 在同一图形上绘制Bokeh的烛台和音量条 2022-01-01
- 使用大型矩阵时禁止 Pycharm 输出中的自动换行符 2022-01-01
- PANDA VALUE_COUNTS包含GROUP BY之前的所有值 2022-01-01
- Plotly:如何设置绘图图形的样式,使其不显示缺失日期的间隙? 2022-01-01
- 求两个直方图的卷积 2022-01-01
- 修改列表中的数据帧不起作用 2022-01-01