运行分布在数十个节点的 Dask,我发现如果在发送到 Dask 之前使用
zlib
压缩数据,计算往返时间从大约 10 秒减少到 5 秒。通过压缩,每个任务的数据大小可以从 14,536 字节减少到 8,981 字节,其中每次计算发送大约 30 个任务。
我使用默认客户端设置:
client = dd.Client(master)
所以我想知道默认的 Dask 序列化不会产生任何压缩。
但是,正如issue#30中所讨论的,Dask 似乎已经支持压缩。那么如何启用它呢?
经过一番搜索后回答我的问题... Dask Configuration 确实支持压缩调整:
distributed.comm.compression
要使用的压缩算法。 'auto' 如果安装则默认为 lz4,否则默认为 snappy,否则为 false。 zlib 和 zstd 仅在此处明确请求时使用。
但是,如上所述,必须安装 lz4 或手动将压缩设置设置为已有的 zlib 才能打开压缩。