本文为您提供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
说明 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')