MXNet 分布式環境部署
阿新 • • 發佈:2018-09-09
src 開啟 基本上 參考文獻 uda 數據傳遞 6.0 -c 安裝
在安裝好MxNet和設置好ssh免密碼登錄以後就可以使用了, 基本上不需要添加任何設置.
為了說明運行參數,同時為了測試分布式環境,我們將在分布式下運行apache-mxnet-src-1.2.1-incubating/examples/image-classification/train_mnist.py進入源代碼的目錄下的
MXNet 分布式環境部署
1. MxNet 分布式介紹
先忽略吧, 回頭在填上去
2. 分布式部署方法
假設有兩臺主機ip地址分別是xxx.xxx.xxx.114
和 xxx.xxx.xxx.111
這兩臺主機的環境如下
ubuntu Server 16.04SLT
python3.6| anaconda3
opencv3
cuda8
cudnn7
2.2 Step1. 搭建MxNet環境
根據文獻[^Installing MXNet]以源代碼的方式安裝MxNet; 註意每臺機器生配置的環境需要保持一致;
需要分別在114 和111主機上搭建MxNet環境
MxNet的安裝方法有很多,免密碼登錄只是其中的一種方式. 建議使用源代碼的方式去安裝, 因為後面需要使用MxMet的源代碼裏面的文件.
#進入anaconda虛擬環境 source activate base # root # 下載MxNet1.2.1 源代碼 wget https://github.com/apache/incubator-mxnet/releases/download/1.2.1/apache-mxnet-src-1.2.1-incubating.tar.gz # 解壓源代碼到目錄 ~/source/下面 tar -zvxf apache-mxnet-src-1.2.1-incubating.tar.gz -d ~/source/ # 進入source目錄,並編譯 cd ~/source/apache-mxnet-src-1.2.1-incubating # 編譯參數解析 # USE_OPENCV=1 代表使用opencv # USE_CUDA_PATH=/usr/local/cuda 是指定使用的cuda路徑 #USE_CUDNN=1是使用cudann make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_CUDA=1 USE_CUDA_PATH=/usr/local/cuda USE_CUDNN=1 # 進入源文件的python目錄, 編譯python接口的MxNet cd ~/source/apache-mxnet-src-1.2.1-incubating python setup.py install
等待安裝好以後,進如python終端,測試是否可以識別mxnet即可:
import mxnet
print(mxnet.__version__) # 應該可以輸出版本 1.2.1
好, 到此為止,MxNet安裝完畢;
2.1 Step2. 設置SSH免密碼登錄
在網上找到一片很靠譜的博客,參考這篇文章即可,不再贅述.
ubuntu開啟SSH服務遠程登錄
2.3 Step3. 搭建分布式的環境
解析:
兩臺主機免密碼互聯是分布式之間數據傳遞的前提,再搭建分布式之前,一定要確保第2步沒有問題;
mxNet的分布式運行比較簡單,在tools文件夾中的launcher.py是管理分布式下運行的文件的,直接在哪運行該文件的時候添加相應的參數即可;
為了說明運行參數,同時為了測試分布式環境,我們將在分布式下運行apache-mxnet-src-1.2.1-incubating/examples/image-classification/train_mnist.py
進入源代碼的目錄下的tools
文件夾, 找到launcher.py
文件
cd ~/source/apache-mxnet-src-1.2.1-incubating/tools
在此處建立文件名host文件, 並在該文件中輸入兩臺主機的ip地址;
xxx.xx.xxx.111
aaa.aa.aaa.114
ps: 這個名字host可以隨意的起的,是為了在運行lanucher的時候讓服務器知道在哪裏進行分布式運行
運行launch.py
MxNet官方文檔中有詳細介紹MxNet分布式的使用方式,可以查看官方文檔的詳細內容[^distributed_training]
python launch.py -n 2 -H host --launcher ssh `which python` ../example/image-classification/train_mnist.py
# --n 是代表要啟動幾臺host
# -H 是要指定host的ip地址
如果不出任何錯誤,且train_mnist.py運行成功表明環境搭建成功了.
參考文獻
[^Installing MXNet]: Installing MXNet
[^distributed_training]: distributed_training
MXNet 分布式環境部署