显式通信

通信和调度开销可能是Dask/Distributed中的一个主要瓶颈。Dask-CUDA通过引入一个API来解决这个问题,该API用于在Dask任务中进行显式通信。 其思想是Dask/Distributed像往常一样生成工作节点并分发数据,而用户可以在工作节点上提交显式通信的任务。

这使得可以绕过Distributed的调度器,编写手动调整的计算和通信模式。目前,Dask-CUDA包含了一个用于合并和排序的Dataframe shuffle操作的显式通信实现。

用法

为了在Dask/Distributed中自动使用显式通信,只需定义环境变量DASK_EXPLICIT_COMMS=True或在Dask配置中设置"explicit-comms"键。

也可以在任务中手动使用显式通信,请参阅API和我们的shuffle实现以获取指导。