到目前为止,所有的Pipeline Run 都是运行在默认的队列和默认套餐下。
而在实际使用中,不同的节点运行所需的资源(CPU/GPU/MEM)等是不一样的,也即不同的节点可能需要运行在不同的队列或者套餐下。
本文便讲解如何在pipeline中配置节点的队列与套餐信息
下面的示例是在base pipeline的基础上给节点增加了队列和套餐等信息而得来。
该示例中pipeline定义,以及示例相关运行脚本,来自Paddleflow项目下example/pipeline/queue_example示例。
示例链接:queue_example
name: queue_example
entry_points:
preprocess:
command: bash queue_example/shells/data.sh {{data_path}}
docker_env: centos:centos7
env:
PF_JOB_FLAVOUR: flavour1
PF_JOB_QUEUE_NAME: ppl-queue
PF_JOB_TYPE: single
USER_ABC: 123_{{PF_USER_NAME}}
parameters:
data_path: ./queue_example/data/{{PF_RUN_ID}}
train:
command: bash queue_example/shells/train.sh {{epoch}} {{train_data}} {{model_path}}
deps: preprocess
env:
PF_JOB_FLAVOUR: flavour1
PF_JOB_QUEUE_NAME: ppl-queue
PF_JOB_TYPE: single
parameters:
epoch: 5
model_path: ./output/{{PF_RUN_ID}}
train_data: '{{preprocess.data_path}}'
validate:
command: bash queue_example/shells/validate.sh {{model_path}}
deps: train
env:
PF_JOB_FLAVOUR: flavour1
PF_JOB_QUEUE_NAME: ppl-queue
PF_JOB_TYPE: single
parameters:
model_path: '{{train.model_path}}'
docker_env: nginx:1.7.9
parallelism: 1
在Paddleflow pipeline中,指定节点运行时的队列和套餐的方式非常简单,只需在节点中添加相应的环境变量即可。
相关的变量说明如下:
变量名 | 含义 |
---|---|
PF_JOB_FLAVOUR | 节点运行时使用的套餐 |
PF_JOB_QUEUE_NAME | 节点运行时使用的队列 |
PF_JOB_TYPE | 节点的任务类型,当前只支持 single 类型 |