之前用千兆網跑MXNet的分佈式,由於訓練數據量比較大並且通信比較頻繁,網絡通信開銷太大,訓練速度非常慢,正好實驗室有閒置的萬兆網設備(萬兆網卡、萬兆交換機),因此打算給各個工作節點配上萬兆網卡(Chelsio T310),並共同接入萬兆交換機(RackSwitch G8100)中,下面說一下具體過程。
1、插網卡
將萬兆網卡插入節點的PCI插槽中(節點要有空閒的PCI插槽才行)
2、安裝網卡驅動
(1)節點的系統是Ubuntu 14.04桌面版的,系統已經集成了相應的驅動,可以不用安裝了,沒有驅動的話也可以去網卡設備商官網下載安裝即可。
(2)使用命令,查看是否安裝成功。
lspci | grep 'et'
可以看到系統識別到了兩個網卡,一個是千兆網卡,另一個是萬兆網卡也就是剛剛安裝的Chelsio T310。
3、配置萬兆網卡地址
使用命令,查看當前網卡IP的配置情況。
ifconfig
配置爲外網,萬兆網卡配置爲內網。
修改網絡配置文件:
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命令查看:
使用相同的方法,給另外一個節點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網絡就最好了,萬兆光纖網只能算是一種折中吧)。