如何在Dask中使用InfiniBand网络?

MRo*_*lin 8 python infiniband dask

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

免责声明:我只是问这个问题,以便我可以回答.它已成为一个经常被问到的问题

MRo*_*lin 11

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

dask-scheduler --interface ib0 --scheduler-file ~/my.cluster.yaml
dask-worker --interface ib0 --scheudler-file ~/my.cluster.yaml
Run Code Online (Sandbox Code Playgroud)

在上面的代码示例中,我假设您的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
Run Code Online (Sandbox Code Playgroud)