【干貨】快速部署微軟開源GPU管理利器: OpenPAI


【干貨】快速部署微軟開源GPU管理利器: OpenPAI

介紹

不管是機器學習的老手,還是入門的新人,都應該裝備上盡可能強大的算力。除此之外,還要壓榨出硬件的所有潛力來加快模型訓練。OpenPAI作為GPU管理的利器,不管是一塊GPU,還是上千塊GPU,都能夠做好調度,幫助加速機器學習的模型訓練過程。

關於什么是OpenPAI,請參考介紹視頻:微軟開源GPU集群管理利器

本文提供了簡化的OpenPAI安裝步驟。如果有更復雜的安裝要求或部署環境,請參考官網

准備工作

環境要求如下:

  1. 推薦Ubuntu 16.04 LTS(暫不支持CentOS等其它Linux系統)。
  2. 靜態IP地址。
  3. 能夠訪問外網,可下載Docker Hub的鏡像文件。
  4. 為集群中每台機器提供統一的用戶名密碼,並有sudo權限。
  5. 有統一的時間同步服務(默認即可)。
  6. 推薦干凈環境進行安裝。如果已經安裝了Docker,API版本必須大於等於1.26。
  7. 各台計算機之間網絡可達。

安裝過程

1. 安裝用於配置的docker

即管理、安裝整個OpenPAI的docker(在官方文檔中稱為dev-box)。以后的管理、配置工作都會在這個docker中進行。

登錄進某台計算機(可選用集群中的機器),確保有sudo權限。然后按順序執行下列命令。

安裝docker,如果安裝有更新的版本可跳過。

sudo apt-get -y install docker.io
# 拉取,並啟動dev-box
sudo docker run -itd -e COLUMNS=$COLUMNS -e LINES=$LINES -e TERM=$TERM -v /var/lib/docker:/var/lib/docker -v /var/run/docker.sock:/var/run/docker.sock -v /pathHadoop:/pathHadoop -v /pathConfiguration:/cluster-configuration  --pid=host --privileged=true --net=host --name=dev-box docker.io/openpai/dev-box

# 登錄dev-box
sudo docker exec -it dev-box /bin/bash

2. 配置安裝環境

以下腳本需要修改一下安裝環境相關的信息。machines表示GPU集群的服務器IP,ssh-username和ssh-password分別代表登錄這些服務器要用到的用戶名、密碼。

注意:第一台會作為master節點,其余節點作為worker。關於master/worker可參考視頻介紹。暫時推薦不要用GPU服務器做master角色,或將worker角色部署到master上,因為這樣可能會造成資源緊張,從而造成master進程的內存不夠用。所以,master節點可以用沒有GPU的服務器,推薦8核16G或以上配置。

cd /pai/pai-management

cat << EOF > quick-start.yaml
machines:
  - 192.168.1.2
  - 192.168.1.3

ssh-username: <用戶名>
ssh-password: <密碼>
EOF

CONFIG_PATH=/cluster-configuration
rm $CONFIG_PATH/*

3. 安裝節點

根據quick-start的基本信息,在/cluster-configuration目錄中生成配置文件。配置文件的具體內容可參考github,這里就不詳細介紹了。

python paictl.py cluster generate-configuration -i quick-start.yaml -o $CONFIG_PATH

安裝kubenetes

python paictl.py cluster k8s-bootup -p $CONFIG_PATH

安裝並啟動OpenPAI相關服務

python paictl.py service start -p $CONFIG_PATH

運行最后一步時,如果網速很慢或服務器很多,有可能會花一天。完成后,即可在瀏覽器中試着訪問第一台服務器的web地址。因為服務器還需要啟動一會兒,可能並不能馬上看到結果。等一會兒,或者多試幾次即可。

默認的用戶名、密碼如下,可點擊右上方的login連接登錄。建議第一時間改掉。

admin
admin-password

好了!大功告成!

可以參考github中的任務模板來配置自己的任務模板。也可以看看Github中的文檔來探索更多高級功能。接下來就可以看看前面的介紹視頻來學習如何從Tools for AI來提交任務了。

如果集群比較小,可以給集群去掉end-to-end測試用例,從而節省資源。(參考常見問答)

常見問題

遇到問題,可在官網提交Issue

如何刪除end-to-end測試任務?

如果沒有足夠的服務器資源,建議在部署過程中刪除掉end-to-end測試。否則,它會定期進入隊列,以測試系統是否可用。在dev-box中運行:

python paictl.py service delete -p $CONFIG_PATH -n end-to-end-test

安裝過程中出現 ... is not ready yet. Please wait for a moment!,該怎么辦?

這種一般是網絡問題造成的,可以進入以下網址(注意替換master IP),將出現pull image錯誤的pods刪掉,加快Kubernetes重新pull的速度。

http://<替換成master的IP>:9090/#!/pod?namespace=default


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM