Kubernetes通过volcano实现MPI高性能计算作业
【摘要】 volcano的优势Volcano支持MPI作业的关键技术支持定义多个Pod 模板支持Gang调度能力Master/Worker容器中支持主机IP映射(通过kubernetes headless service)使用SSH 实现主容器和工作容器之间的免密登录MPI作业声明周期管理 使用方法在集群中部署volcano。在早期版本当中(1.6之前),为了master 能够发现worker,并且...
volcano的优势
Volcano支持MPI作业的关键技术
- 支持定义多个Pod 模板
- 支持Gang调度能力
- Master/Worker容器中支持主机IP映射(通过kubernetes headless service)
- 使用SSH 实现主容器和工作容器之间的免密登录
- MPI作业声明周期管理
使用方法
-
在集群中部署volcano。在早期版本当中(1.6之前),为了master 能够发现worker,并且ssh登录worker,我们进行MPI作业需要开启ssh 和svc 这两个插件。现在svc和ssh plugin 已经被MPI Plugin替代 直接集成在代码里,只需要在使用时开启即可。
-
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
-
MPI作业运行状态&运行结果展示
作业运行中,Master pod 可能会因为网络建设延迟而在运行过程中重启;作业运行结束,Master pod保留,删除worker pod
作业结果
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)