之前用千兆网跑MXNet的分布式,由于训练数据量比较大并且通信比较频繁,网络通信开销太大,训练速度非常慢,正好实验室有闲置的万兆网设备(万兆网卡、万兆交换机),因此打算给各个工作节点配上万兆网卡(Chelsio T310),并共同接入万兆交换机(RackSwitch G8100)中,下面说一下具体过程。
1、插网卡
将万兆网卡插入节点的PCI插槽中(节点要有空闲的PCI插槽才行)
2、安装网卡驱动
(1)节点的系统是Ubuntu 14.04桌面版的,系统已经集成了相应的驱动,可以不用安装了,没有驱动的话也可以去网卡设备商官网下载安装即可。
(2)使用命令,查看是否安装成功。
lspci | grep 'et'
可以看到系统识别到了两个网卡,一个是千兆网卡,另一个是万兆网卡也就是刚刚安装的Chelsio T310。
3、配置万兆网卡地址
使用命令,查看当前网卡IP的配置情况。
ifconfig
可以看到千兆网卡eth0已经配置好了IP地址,而万兆网卡eth1还没配置好IP,我们的万兆交换机没有外网接入,因此打算把千兆网卡
配置为外网,万兆网卡配置为内网。
修改网络配置文件:
sudo vim /etc/network/interfaces
配置信息如下:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 211.69.198.225
netmask 255.255.255.0
dns-nameservers *.*.*.*(自己的dns地址)
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
配置完后重启节点,再次使用ifconfig命令查看:
可以看到万兆网卡eth1已经配置好了地址了。
使用相同的方法,给另外一个节点IP配置成192.168.0.2,在节点1中,使用命令:ping 192.168.0.2,ping通了,说明网络可以连通,结果如下:
4、测试万兆网的效果
可以使用命令查看,结果如下:
nm-tool
当然还是自己用命令测一下实际效果更踏实一点,我们使用iperf3命令测试,iperf3安装命令:
sudo apt-get install iperf3
(在此提醒一点,不要用iperf2版本测,因为这个版本对万兆光纤网支持不是很好,测试结果会有误)
使用iperf3命令,一个节点做服务端,另外一个节点做客户端。
服务端命令:
iperf3 -s
客户端命令:
(1)测试千兆网:
iperf3 -c 211.69.198.225 (-c 参数后跟服务端的千兆网卡ip)
结果如下:
(2)测试万兆网:
iperf3 -c 192.168.0.1 (-c 参数后跟服务端的万兆网卡ip)
结果如下:
按以上方法给各个gpu节点搭建万兆网即可。
接下来就可以使用万兆网跑MXNet的分布式了(如果你有InfiniBand网络就最好了,万兆光纤网只能算是一种折中吧)。