SkyForm任務調度系統技術速遞(第二期)

用SkyForm AIP調度Ray分布式強化學習任務
Ray是一個針對強化學習以及類似學習過程而設計的一個分布式計算框架,囊括強化學習主要計算并分布式化,包含模型訓練,模型推理和仿真。
Ray并不替代深度學習框架,而是疊合使用、無縫集成,即同樣的強化學習算法既可以使用TensorFlow的框架,也可以使用PyTorch的框架。
Ray的優勢之一就是能夠將一個程序運行在多機器集群中,集群由一個head節點和多個worker節點組成。
Head節點需要先啟動,然后worker節點使用head節點的地址啟動以形成集群。在有GPU的情況下,worker節點利用GPU可以提高性能。
SkyForm AIP可以為Ray程序構建滿足資源需求的集群,啟動程序運行在集群上,并在任務結束后自動銷毀集群。
下面是Ray利用PyTorch框架學習mnist的作業定義例子:
csub -R "2 {span[hosts=1]} 4 {span[ptile=2] rusage[gpu=1]}" -I \
ray-run.sh train_fashion_mnist_torch.py
參數說明:
-R:定義作業運行的資源需求。Ray作業包含head節點和worker節點,節點數量和資源需求都不同,需要使用SkyForm AIP多節資源需求。
多節資源需求的語法為:n1{資源需求} n2{資源需求}…
其中n1,n2為CPU核數。例子中“2 {span[hosts=1]} 4 {span[ptile=2] rusage[gpu=1]}”,表示head節點需要2個核,分布在一臺機器上;worker節點需要4個核,每個節點兩個核,同時每個核對應一塊GPU。
-I:交互式作業。作業標準輸出重定向到終端,可選。也可以通過-o將作業標準輸出重定向到文件中。
ray-run.sh:SkyForm AIP提供的Ray多機分布式計算的wrapper,負責將head節點和worker節點在調度器分配的資源上啟動,啟動Ray程序,并監控任務狀態和收集資源使用信息。當Ray程序運行結束后,銷毀Ray集群。Ray多機分布式計算任務必須通過ray-run.sh啟動。ray-run.sh根據調度器分配的機器和端口,在啟動Ray程序前會設置環境變量“ip_head”,供Ray程序初始化時使用,比如:ray.init(address=os.environ["ip_head"])
Train_fashion_mnist_torch.py:Ray的Python程序,后面可以跟程序參數,程序名和參數都是用戶自定義的。

作業屏幕輸出例子:

 
 
Ray提供內置的dashboard,啟動在head節點,默認端口8265。
訪問dashboard:http://192.168.166.165:8265
 
SkyForm AIP深度學習的作業運行例子和作業遞交腳本可以下載:
https://skyformaip.com/aip/skyformaip_examples.tar.gz

推薦閱讀 

在線咨詢 MESSAGE

姓名 *

電話 *

郵箱 *

咨詢意向 *

公司名稱

所屬行業

需求概述 *

{转码词},{转码词1},{转码词2},{转码词3}