quot;chunksizequot; parameter in multiprocessing.Pool.map(“块大小multiprocessing.Pool.map 中的参数)
问题描述
例如,如果我有一个带有 2 个处理器的池对象:
If I have a pool object with 2 processors for example:
p=multiprocessing.Pool(2)
我想遍历目录中的文件列表并使用 map 函数
and I want to iterate over a list of files on directory and use the map function
谁能解释一下这个函数的块大小是多少:
could someone explain what is the chunksize of this function:
p.map(func, iterable[, chunksize])
如果我将 chunksize 例如设置为 10,这是否意味着每 10 个文件都应该使用一个处理器进行处理?
If I set the chunksize for example to 10 does that means every 10 files should be processed with one processor?
推荐答案
看Pool.map 的文档 看来您几乎是正确的: chunksize 参数将导致可迭代对象被拆分为大约该大小,并且每件作品都作为单独的任务提交.
Looking at the documentation for Pool.map it seems you're almost correct: the chunksize parameter will cause the iterable to be split into pieces of approximately that size, and each piece is submitted as a separate task.
所以在您的示例中,是的,map 将采用前 10 个(大约),将其作为单个处理器的任务提交......然后接下来的 10 个将作为另一个任务提交,等等.请注意,这并不意味着这会使处理器每 10 个文件交替一次,很有可能处理器 #1 最终得到 1-10 和 11-20,而处理器 #2 得到 21-30 和 31-40.
So in your example, yes, map will take the first 10 (approximately), submit it as a task for a single processor... then the next 10 will be submitted as another task, and so on. Note that it doesn't mean that this will make the processors alternate every 10 files, it's quite possible that processor #1 ends up getting 1-10 AND 11-20, and processor #2 gets 21-30 and 31-40.
这篇关于“块大小"multiprocessing.Pool.map 中的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:“块大小"multiprocessing.Pool.map 中的参数
基础教程推荐
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
- 对多索引数据帧的列进行排序 2022-01-01
- Kivy 使用 opencv.调整图像大小 2022-01-01
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
