Running hccl-test with Volcano

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

本文介绍了制作hccl-test镜像的步骤,包括下载依赖包、编写Dockerfile、安装Python和Ascend Toolkit等。然后详细说明了如何编译、推送和运行hccl-test镜像,并查看Pod状态。最后给出了清理环境的步骤。

🔎

延伸解读

镜像构建的关键依赖与配置

制作 hccl-test 镜像需要预先下载 Python 3.8.18、Ascend-cann-toolkit 8.0.RC2、Ascend-cann-kernels-910b 以及 mpich-3.2.1 等依赖包。Dockerfile 中除了安装基础编译工具外,还需正确设置 Ascend Toolkit 的环境变量,如 TOOLKIT_PATH、LD_LIBRARY_PATH、PYTHONPATH 等,并编译安装 mpich 与 hccl_test。这些步骤确保镜像内具备运行 HCCL 测试所需的完整环境。

Volcano Job 的调度与节点选择

运行 Volcano Job 前需为测试节点打上 hccl-test=true 标签,Job 配置中通过 nodeSelector 指定这些节点,并利用 podAntiAffinity 确保每个节点只运行一个 Pod。Job 使用 volcano 调度器,设置 minAvailable 为节点数,并指定 extreme-high-priority-preempting 优先级,以保障资源。任务副本数与环境变量 HCCL_TEST_NODES 一致,从而在多节点上并行执行测试。

单机与多节点测试命令差异

单机测试时,在 Pod 内设置 HCCL_RDMA_TC、HCCL_RDMA_SL、HCCL_BUFFSIZE 等环境变量后,使用 mpirun -n 16 运行 all_reduce_test,指定数据量范围 8K 到 64M。多节点测试则通过 -hosts 参数列出各 Pod 的主机名及进程数,并将数据量上限调整为 4G,同时增加 -c 0 参数。两者均使用 all_reduce_test 工具,但多节点需确保主机名解析正确。

❓

Q&A

如何制作hccl-test镜像?

制作hccl-test镜像的步骤包括下载依赖包、编写Dockerfile、安装Python和Ascend Toolkit等。

hccl-test镜像的编译命令是什么?

编译hccl-test镜像的命令为docker build -t hubimage/hccl-test:8.0.RC2-ubuntu22.04 -f Dockerfile .

如何推送hccl-test镜像?

推送hccl-test镜像的命令为docker push hubimage/hccl-test:8.0.RC2-ubuntu22.04。

如何创建Volcano Job?

创建Volcano Job的步骤包括设置环境变量和编写Job配置,使用kubectl apply命令进行应用。

如何查看Pod的状态?

查看Pod状态的命令为kubectl get pod -l app=hccl-test -o wide。

如何清理环境?

清理环境的步骤在文章中有详细说明,通常包括删除不再需要的镜像和容器。

🏷️

标签

➡️

继续阅读