MPI on Volcano

最近更新于 Jul 31, 2021

HPC简介

高性能计算(High Performance Computing,缩写HPC)指利用聚集起来的计算能力来处理标准工作站无法完成的数据密集型的计算任务。

HPC = PBS + Maui + OpenMPI[1]

  • PBS:资源管理器,负责管理集群中所有节点的资源
  • Maui:第三方任务调度器,支持资源预留,支持各种复杂的优先级策略,支持抢占等。
  • OpenMPI:上层通信环境,兼顾通信库、编译、分布式启动任务的功能。

openMPI简介

openMPI项目是一个开源消息传递接口实现,由学术,研究和行业合作伙伴联盟开发和维护。通过它我们来进行并行化的程序设计。

opensMPI如何执行

下面是一个简单的4线程mpi程序例子。

MPI - 图1

mpi工作原理

MPI on Volcano

创建mpi-example.yaml

  1. apiVersion: batch.volcano.sh/v1alpha1
  2. kind: Job
  3. metadata:
  4. name: lm-mpi-job
  5. spec:
  6. minAvailable: 3
  7. schedulerName: volcano
  8. plugins:
  9. ssh: []
  10. svc: []
  11. tasks:
  12. - replicas: 1
  13. name: mpimaster
  14. policies:
  15. - event: TaskCompleted
  16. action: CompleteJob
  17. template:
  18. spec:
  19. containers:
  20. - command:
  21. - /bin/sh
  22. - -c
  23. - |
  24. MPI_HOST=`cat /etc/volcano/mpiworker.host | tr "\n" ","`;
  25. mkdir -p /var/run/sshd; /usr/sbin/sshd;
  26. mpiexec --allow-run-as-root --host ${MPI_HOST} -np 2 mpi_hello_world > /home/re;
  27. image: volcanosh/example-mpi:0.0.1
  28. name: mpimaster
  29. ports:
  30. - containerPort: 22
  31. name: mpijob-port
  32. workingDir: /home
  33. restartPolicy: OnFailure
  34. - replicas: 2
  35. name: mpiworker
  36. template:
  37. spec:
  38. containers:
  39. - command:
  40. - /bin/sh
  41. - -c
  42. - |
  43. mkdir -p /var/run/sshd; /usr/sbin/sshd -D;
  44. image: volcanosh/example-mpi:0.0.1
  45. name: mpiworker
  46. ports:
  47. - containerPort: 22
  48. name: mpijob-port
  49. workingDir: /home
  50. restartPolicy: OnFailure
  51. ---

部署mpi-example.yaml

  1. kubectl apply -f mpi-example.yaml

在集群下查看作业执行情况

  1. kubectl get pod