如何为大数据集选择Python多进程的chunksize

5 投票
1 回答
4632 浏览
提问于 2025-04-15 21:59

我正在尝试用Python来提高一个可以高度并行处理的任务的性能,具体是使用这个库

在查看这个库的时候,他们提到对于非常长的可迭代对象(就是可以一个一个取出数据的东西)要使用“块大小”。不过,我的可迭代对象并不长,但里面有一个字典是巨大的:大约有100000条记录,键是元组,值是numpy数组。

我该如何设置块大小来处理这个问题?还有,我怎么能快速传输这些数据呢?

谢谢。

1 个回答

3

要让多个工作者同时处理一个大的任务,唯一的方法就是把这个任务拆分开。multiprocessing这个工具是通过把工作分成小块来运作的,但它能处理的最小单位就是一个对象——它不知道怎么合理地把一个对象拆分开。所以你得自己来做这件事。与其把整个字典发送过去,不如把字典拆分成更小的工作单位,然后把这些小单位发送过去。如果你不能拆分字典,因为里面的数据是相互依赖的,那你也就无法真正地拆分工作了。

撰写回答