工作流子任务在运行过程中,底层基于阿里云容器计算服务ACS以Serverless的方式运行Pod。实际业务场景可能对Pod算力规格有特殊需求,例如:需要更多的CPU核数和内存、高性能CPU、GPU、更大的临时存储、AMD机型等。本文介绍如何配置工作流子任务ACS Pod的算力规格。
配置Pod算力
计算类型(Compute Class)
ACS Pod支持下列算力计算类型:
计算类型 | 标签 | 适用场景 |
通用型(默认) | general-purpose | 满足绝大部分无状态微服务应用 、Java Web应用、计算类任务等。 |
性能型 | performance | 满足性能需求更强的业务场景,如CPU Based AI/ML训练和推理、HPC批处理等。 |
GPU型 | gpu | 满足AI/HPC等异构计算场景,如GPU单卡、多卡推理,GPU并行计算等。 |
高性能网络GPU型(gpu-hpn) | gpu-hpn | 满足AI/HPC等异构计算场景,如GPU分布式训练,分布式推理,GPU高性能计算等。 |
通过使用Pod上的alibabacloud.com/compute-class标签指定实例的计算类型。下方示例分别演示了四种计算类型的配置方法:
关于ACS Pod计算类型的更多说明,请参见ACS Pod实例概述。
通用型(默认)
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: helloworld--
spec:
entrypoint: helloworld
templates:
- name: helloworld
metadata:
labels:
alibabacloud.com/acs: "true" # 默认配置可以省略
alibabacloud.com/compute-class: general-purpose # 默认配置可以省略
container:
image: mirrors-ssl.aliyuncs.com/busybox:latest
resources: # 默认配置可以省略
limits:
cpu: 2
memory: "4Gi"
requests:
cpu: 2
memory: "4Gi"
command:
- sh
- -c
args:
- echo "Hello, world!";
sleep 30;性能型
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: helloworld--
spec:
entrypoint: helloworld
templates:
- name: helloworld
metadata:
labels:
alibabacloud.com/acs: "true" # 默认配置可以省略
alibabacloud.com/compute-class: performance
container:
image: mirrors-ssl.aliyuncs.com/busybox:latest
resources: # 配置更大的CPU和内存
limits:
cpu: 8
memory: "16Gi"
requests:
cpu: 8
memory: "16Gi"
command:
- sh
- -c
args:
- echo "Hello, world!";
sleep 30;GPU
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: helloworld--
spec:
entrypoint: helloworld
templates:
- name: helloworld
metadata:
labels:
alibabacloud.com/acs: "true" # 默认配置可以省略
# 指定compute-class为gpu类型
alibabacloud.com/compute-class: "gpu"
# 指定GPU型号为example-model,请按实际情况填写,如T4
alibabacloud.com/gpu-model-series: "T4"
container:
image: mirrors-ssl.aliyuncs.com/busybox:latest
resources:
limits:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # 指定GPU数量,资源标签和数量请按实际情况填写
requests:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # 指定GPU数量,资源标签和数量请按实际情况填写
command:
- sh
- -c
args:
- echo "Hello, world!";
sleep 30;高性能网络GPU型
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: helloworld--
spec:
entrypoint: helloworld
templates:
- name: helloworld
metadata:
labels:
alibabacloud.com/acs: "true" # 默认配置可以省略
# 指定compute-class为gpu-hpn类型
alibabacloud.com/compute-class: "gpu-hpn"
container:
image: mirrors-ssl.aliyuncs.com/busybox:latest
resources:
limits:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # 指定GPU数量,资源标签和数量请按实际情况填写
requests:
cpu: 4
memory: "8Gi"
nvidia.com/gpu: "1" # 指定GPU数量,资源标签和数量请按实际情况填写
command:
- sh
- -c
args:
- echo "Hello, world!";
sleep 30;如需在ACS使用高性能网络GPU,请先创建GPU-HPN容量预留,并在资源关联页面选择Argo工作流集群。
算力质量(Compute QoS)
不同的算力质量在资源供给上会有所区别,以适应不同的业务场景,ACS当前提供了2种算力质量:
算力质量 | 标签 | 特点 | 典型应用场景 |
默认型 | default |
|
|
BestEffort型 | best-effort |
|
|
通过使用Pod上的alibabacloud.com/compute-qos标签指定实例的算力质量。
BestEffort算力质量实例为动态库存,强烈建议在生产环境配置库存优先调度策略,在库存不足时由平台自动切换至默认型。更多信息,请参见高级配置参数。
默认型
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: helloworld--
spec:
entrypoint: helloworld
templates:
- name: helloworld
metadata:
labels:
alibabacloud.com/acs: "true" # 默认配置可以省略
alibabacloud.com/compute-qos: default # 默认配置可以省略
container:
image: mirrors-ssl.aliyuncs.com/busybox:latest
resources: # 默认配置可以省略
limits:
cpu: 2
memory: "4Gi"
requests:
cpu: 2
memory: "4Gi"
command:
- sh
- -c
args:
- echo "Hello, world!";
sleep 30;BestEffort型
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: helloworld--
spec:
entrypoint: helloworld
templates:
- name: helloworld
metadata:
labels:
alibabacloud.com/acs: "true"
alibabacloud.com/compute-qos: best-effort
container:
image: mirrors-ssl.aliyuncs.com/busybox:latest
resources: # 配置更大的CPU和内存
limits:
cpu: 2
memory: "4Gi"
requests:
cpu: 2
memory: "4Gi"
command:
- sh
- -c
args:
- echo "Hello, world!";
sleep 30;