Kubernetes通过volcano实现MPI高性能计算作业

举报
可以交个朋友 发表于 2023/12/29 15:40:03 2023/12/29
【摘要】 volcano的优势Volcano支持MPI作业的关键技术支持定义多个Pod 模板支持Gang调度能力Master/Worker容器中支持主机IP映射(通过kubernetes headless service)使用SSH 实现主容器和工作容器之间的免密登录MPI作业声明周期管理 使用方法在集群中部署volcano。在早期版本当中(1.6之前),为了master 能够发现worker,并且...

volcano的优势

image.png
Volcano支持MPI作业的关键技术

  • 支持定义多个Pod 模板
  • 支持Gang调度能力
  • Master/Worker容器中支持主机IP映射(通过kubernetes headless service)
  • 使用SSH 实现主容器和工作容器之间的免密登录
  • MPI作业声明周期管理

使用方法

  1. 在集群中部署volcano。在早期版本当中(1.6之前),为了master 能够发现worker,并且ssh登录worker,我们进行MPI作业需要开启ssh 和svc 这两个插件。现在svc和ssh plugin 已经被MPI Plugin替代 直接集成在代码里,只需要在使用时开启即可。

  2. MPI作业yaml文件示例

    apiVersion: batch.volcano.sh/v1alpha1 
    kind: Job 
    metadata: 
      name: lm-mpi-job 
    spec: 
      minAvailable: 1 
      schedulerName: volcano 
      plugins: 
        mpi: ["--master=mpimaster","--worker=mpiworker","--port=22"]  #固定且必须配置,需要显式开启mpi plugin 才能进行mpi作业
      tasks: 
        - replicas: 1 
          name: mpimaster 
          policies: #配置作业终止策略。当mpirun 完成时。整个MPI作业被视为完成
            - event: TaskCompleted 
              action: CompleteJob 
          template: 
            spec: 
              imagePullSecrets: 
              - name: default-secret 
              containers: 
                - command: 
                    - /bin/sh 
                    - -c 
                    - | 
                      mkdir -p /var/run/sshd; /usr/sbin/sshd; 
                      mpiexec --allow-run-as-root --host ${MPI_HOST} -np 2 mpi_hello_world; 
                  image: swr.cn-north-4.myhuaweicloud.com/hjmtest/example-mpi:0.0.1 
                  name: mpimaster 
                  workingDir: /home 
              restartPolicy: OnFailure 
        - replicas: 2 
          name: mpiworker 
          template: 
            spec: 
              imagePullSecrets: 
              - name: default-secret 
              containers: 
                - command: 
                    - /bin/sh 
                    - -c 
                    - | 
                      mkdir -p /var/run/sshd; /usr/sbin/sshd -D; 
                  image: swr.cn-north-4.myhuaweicloud.com/hjmtest/example-mpi:0.0.1 
                  name: mpiworker 
                  workingDir: /home 
                  resources: 
                    limits: 
                      nvidia.com/gpu: 0.5 
              restartPolicy: OnFailure
    

    注意点:

    • /var/run/sshd目录用于存放ssh密钥,MPI作业需要启动ssh服务
    • mpi作业默认使用cpu资源进行计算。如果需要使用gpu资源,必须要在resources字段显式声明且集群节点已安装驱动和deviceplugin
  3. MPI作业运行状态&运行结果展示
    作业运行中,Master pod 可能会因为网络建设延迟而在运行过程中重启;作业运行结束,Master pod保留,删除worker pod
    image.png
    作业结果
    image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。