更改多处理的序列化协议 (windows)

Change serialisation protocol for multiprocessing (windows)

我正在使用

dask.compute(*delayeds, scheduler='processes', num_workers=4)

至 运行 并行计算。

但是我在检索计算结果时遇到了问题,因为返回的对象大小超过 4GB。 multiprocessing 中默认的 pickle 协议是 3,4GB 是它的限制。

我想知道是否可以将协议更改为 4。

我在 中找到了一些提示,但它似乎不适用于 windows。

谢谢

在回答具体问题之前,先说明几点:

  • 您可能不应该使用多处理,而应该使用分布式调度程序,它更现代、更强大,并且具有非常 well defined、可插入的序列化协议

  • 发送 4GB to/from worker 看起来很像 anti-pattern;有没有办法直接把数据加载到worker中,在检索之前写入或聚合,完全避免序列化问题?