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

姓名 *

电话 *

邮箱 *

咨询意向 *

公司名称

所属行业

需求概述 *