昇腾社区首页
中文
注册

(可选)配置实例级亲和调度

Atlas 800I A3 超节点场景下,MindCluster集群调度组件支持MindIE Motor推理任务配置任务级别亲和性调度策略,可实现将MindIE Server实例尽量调度到同一个物理超节点中,充分利用HCCS网络,加速实例间的网络通信。

关于虚拟超节点的亲和性调度规则的详细说明,请参见灵衢总线设备节点网络说明章节。

图1 灵衢总线设备节点网络

配置实例级亲和性调度

在已完成镜像的准备工作后,用户在进行准备任务YAML时,如需为MindIE Motor推理任务配置实例级亲和性调度策略,可同时进行如下配置。

  • 任务YAML中指定sp-block字段,sp-block的值必须和job芯片数量一致,保证整个job调度到一个物理超节点中。
  • MindIE Server实例调度优先保证物理超节点内有预留节点。
  • 设置sp-fit为idlest时,MindIE Server实例往更空闲的物理超节点调度。
  • 设置podAffinity时,MindIE Server实例往具有更多亲和性pod的物理超节点调度。
YAML示例如下。
apiVersion: mindxdl.gitee.com/v1
kind: AscendJob
metadata:
  name: mindie-server-0
  namespace: mindie
  labels:
    framework: pytorch        
    app: mindie-ms-server        # 表示MindIE Motor在Ascend Job任务中的角色,不可修改
    jobID: mindie-ms-test        # 当前MindIE Motor任务在集群中的唯一识别ID,用户可根据实际情况进行配置
    ring-controller.atlas: ascend-910b
    fault-scheduling: force
  annotations:
    sp-block: "16"              # 指定sp-block字段,集群调度组件会在物理超节点的基础上根据切分策略划分出逻辑超节点,用于训练任务的亲和性调度
    sp-fit: "idlest"            # 超节点调度策略,详细说明请参见YAML参数说明
spec:
  schedulerName: volcano   # Ascend Operator启用“gang”调度时所选择的调度器
  runPolicy:
    schedulingPolicy:      # Ascend Operator启用“gang”调度生效时且调度器为Volcano时,本字段才生效
      minAvailable: 2      # 任务运行总副本数
      queue: default
  successPolicy: AllWorkers
  replicaSpecs:
    Master:
      restartPolicy: Never
      template:
        metadata:
          labels:
            ring-controller.atlas: ascend-910b
        spec:
          affinity:
            podAffinity:            # 表示虚拟超节点会往具有更多亲和性Pod的物理超节点调度
              preferredDuringSchedulingIgnoredDuringExecution:
              - weight: 100         # 不可修改
                podAffinityTerm:
                  labelSelector:
                    matchLabels:
                      jobID: mindie-ms-test  # 亲和Pod所需要的标签 
                  topologyKey: kubernetes.io/hostname