本文为您提供ncluster组件的使用说明,帮助您更便捷的使用ncluster将人工智能训练和推理脚本快速部署到云上进行计算。
配置环境变量
在您的ECS实例、本地机器或阿里云Cloud Shell工具上,获取阿里云账号AccessKey、默认地域、默认可用区等信息。
export ALIYUN_ACCESS_KEY_ID=L**** # Your actual aliyun access key id
export ALIYUN_ACCESS_KEY_SECRET=v**** # Your actual aliyun access key secret
export ALIYUN_DEFAULT_REGION=cn-hangzhou # The actual region the resource you want to use
export ALIYUN_DEFAULT_ZONE=cn-hangzhou-i # The actual zone of the region you want to use
调用ncluster
ncluster是一套Python库,使用时您需要在Python脚本中导入ncluster。
import ncluster
创建资源
使用ncluster的ncluster.make_job接口,创建任务所需的资源或者复用已经存在的资源。
job = ncluster.make_job(name=args.name,
run_name=f"{args.name}-{args.machines}",
num_tasks=args.machines,
image_name=IMAGE_NAME,
instance_type=INSTANCE_TYPE)
ncluster.make_job的参数如下表所示。
参数名称 | 参数说明 | 参数示例 |
---|---|---|
name | job的名称。 | 'perseus-bert' |
run_name | 运行时的环境名,一般设置为job名+实例数量。 | f"perseus-bert-1" |
num_tasks | 需要创建实例的个数。 | 1
表示创建1台实例,名称为task0.perseus-bert,对应perseus-bert.tasks[0]。 |
image_name | 实例使用的镜像,支持公共镜像和自定义镜像。 | 'ubuntu_18_04_64_20G_alibase_20190624.vhd' |
instance_type | 需要创建实例的实例规格。 | 'ecs.gn6v-c10g1.20xlarge' |
运行任务
支持以job或task的形式运行任务,job为一组task。关系图如下:
说明 job和task支持相同的API,调用job的API作用于所有的task,调用task的API只作用于指定的task。
示例如下:
- 调用job的API
# 为job中所有实例打开perseus-bert文件夹 job.run('cd perseus-bert') # 将当前目录中的perseus-bert文件夹上传到job中所有实例的/root目录下 job.upload('perseus-bert')
- 调用task的API
# 为task0对应实例打开perseus-bert文件夹 job.tasks[0].run('cd perseus-bert') # 将当前目录中的perseus-bert文件夹上传到task0对应实例的/root目录下 job.tasks[0].upload('perseus-bert')