测试集群

本文档介绍了如何使用集群健康状况扫描器 (CHS) 工具测试 GPU 集群是否存在问题。如果您想测试在 Cluster Director 中创建的集群,请改为参阅监控集群健康状况

CHS 工具会检查 GPU 集群的健康状况,运行测试以验证集群是否已准备好运行工作负载。您可以使用 CHS 执行主动健康检查,也可以在遇到工作负载问题时将其用作诊断工具。除了检查集群的配置之外,您还可以执行以下测试:

  • NCCL 检查:使用 NVIDIA Collective Communications Library (NCCL) 验证 GPU 之间的网络通信。
  • GPU 检查:利用 NVIDIA 的数据中心 GPU 管理器 (DCGM) 工具检查各个 GPU 的健康状况。
  • Neper 检查:使用 Neper 工具评估集群内的网络性能。
  • Straggler 检测:运行节点之间的网络流量模式,该模式与 LLM 训练工作负载流水线并行化期间看到的模式非常相似。详细了解 Straggler 检测
  • Tinymax 检查:使用开源 LLM 框架 Maxtext 评估集群内的机器学习训练。

您只能在未运行任何作业或工作负载的节点上运行 CHS 检查和测试。如果您尝试在繁忙的节点上运行检查或测试,检查或测试会失败。

CHS 工具适用于由 Google Kubernetes Engine (GKE) 或 Slurm 编排的 GPU 集群,无论您使用何种配置模型来创建集群。不过,CHS 仅适用于以下机器类型:

  • A4
  • A3 Ultra
  • A3 Mega
  • A3 High

以下部分介绍了如何安装 CHS,以及如何使用它执行健康检查和检查配置。

安装 CHS

请按照以下步骤安装 CHS:

  1. 转到 Compute Engine > 虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 找到登录节点。其名称可能采用 DEPLOYMENT_NAME +login-001 格式。

  3. 在登录节点的连接列中,点击 SSH

  4. 使用以下命令克隆代码库并移动到代码库的根目录:

    git clone https://github.com/GoogleCloudPlatform/cluster-health-scanner && cd cluster-health-scanner
    
  5. 使用以下命令安装 Google Cloud CLI 的依赖项:

    pip3 install -r cli/requirements.txt
    
  6. 可选:如需让 configcheck 命令从集群中提取配置值,而无需为每台机器重新进行身份验证,请使用以下命令将 Google Cloud CLI SSH 密钥添加到本地 SSH 代理:

    ssh-add ~/.ssh/google_compute_engine
    
  7. 使用以下命令为 cluster_diag.py 添加别名 cluster_diag

    alias cluster_diag="python3 cli/cluster_diag.py"
    

执行健康检查

安装 CHS 后,请执行以下操作来检查 GPU 集群的运行状况:

  1. 转到 Compute Engine > 虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 找到登录节点。其名称可能采用 DEPLOYMENT_NAME +login-001 格式。

  3. 在登录节点的连接列中,点击 SSH

  4. 验证您是否位于代码库的根目录中。

  5. 使用以下命令检查集群的当前状态:

    cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE status
    

    替换以下内容:

    • ORCHESTRATORgkeslurm,具体取决于您使用的编排器。
    • GPU_TYPE:您使用的 GPU 机器类型,可以是以下任何一个值:
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g
  6. 使用以下命令检查集群中各个 GPU 的运行状况:

    cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE gpu
    

    替换以下内容:

    • ORCHESTRATORgkeslurm,具体取决于您使用的编排器。
    • GPU_TYPE:您使用的 GPU 机器类型,可以是以下任何一个值:
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g
  7. 可选:使用以下模板命令运行其他检查。 考虑添加 --run_only_on_available_nodes 标志以跳过不可用的节点:

    cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE CHECK
    

    替换以下内容:

    • ORCHESTRATORgkeslurm,具体取决于您使用的编排器。
    • GPU_TYPE:您使用的 GPU 机器类型,可以是以下任何一个值:
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g
    • CHECK:要运行的检查。使用以下任一方式:
      • 状态
      • nccl
      • gpu
      • straggler
      • 奈培
      • tinymax

检查您的配置

安装 CHS 后,请执行以下操作来检查集群的配置:

  1. 验证您是否位于代码库的根目录中。
  2. 使用以下命令检查集群的配置。默认情况下,此命令会生成差异;如需跳过差异并仅打印配置,请添加 --no-diff 标志:

    cluster_diag -o ORCHESTRATOR configcheck GPU_TYPE
    

    替换以下内容:

    • ORCHESTRATORgkeslurm,具体取决于您使用的编排器。
    • GPU_TYPE:您使用的 GPU 机器类型,可以是以下任何一个值:
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g

以下屏幕截图显示了成功完成配置检查的结果:

成功的配置检查结果。
配置检查成功的结果(点击可放大)。

后续步骤