如何将 InfiniBand 网络与 Dask 一起使用?

How do I use an InfiniBand network with Dask?

我有一个带有高性能网络 (InfiniBand) 的集群。但是,当我设置我的 Dask 调度程序和工作程序时,性能似乎没有我预期的那么快。我怎样才能告诉 Dask 使用这个网络?

免责声明:我问这个问题只是为了回答。已成为常见问题

从 dask.distributed 版本 1.16.3 开始,您可以使用 --interface 关键字为 dask-schedulerdask-worker 可执行文件指定网络接口,如下所示:

dask-scheduler --interface ib0 --scheduler-file ~/my.cluster.yaml
dask-worker --interface ib0 --scheudler-file ~/my.cluster.yaml

在上面的代码示例中,我假设您的 infininband 网络接口称为 ib0。您可以通过询问您的 IT 部门或检查 ifconfig

的输出来检查这一点
$ ifconfig
lo          Link encap:Local Loopback                       # Localhost
            inet addr:127.0.0.1  Mask:255.0.0.0
            inet6 addr: ::1/128 Scope:Host
eth0        Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX   # Ethernet
            inet addr:192.168.0.101
            ...
ib0         Link encap:Infiniband                           # Fast InfiniBand
            inet addr:172.42.0.101