更改多处理的序列化协议 (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中,在检索之前写入或聚合,完全避免序列化问题?
我正在使用
dask.compute(*delayeds, scheduler='processes', num_workers=4)
至 运行 并行计算。
但是我在检索计算结果时遇到了问题,因为返回的对象大小超过 4GB。 multiprocessing 中默认的 pickle 协议是 3,4GB 是它的限制。
我想知道是否可以将协议更改为 4。
我在
谢谢
在回答具体问题之前,先说明几点:
您可能不应该使用多处理,而应该使用分布式调度程序,它更现代、更强大,并且具有非常 well defined、可插入的序列化协议
发送 4GB to/from worker 看起来很像 anti-pattern;有没有办法直接把数据加载到worker中,在检索之前写入或聚合,完全避免序列化问题?