跳转至

智算服务异常排查和反馈

智算中心提供了多种现有的通用软硬件解决方案,包括 Intel OneAPI 套件、GNU GCC、CUDA、OpenMPI 等等,可驱动多种不同类型应用在同一硬件平台上运行,并为用户提供了编译自定义应用的能力。但由于软件版本环境复杂,且上下游依赖兼容性、可靠性难以100%保证,我们无法确保您的应用具有100%的可用性和准确性。

因此在使用智算集群时,请对自己的数据和结果负责,时常对自己计算的结果抱有怀疑态度,审慎测试,确保可用、可靠后再大规模扩展。

当遇到异常情况时,请遵循以下方案进行排查:

1. 了解问题的背景

  • 清晰描述问题:记录出错信息、环境配置、操作步骤等。明确是软件层面问题、网络问题还是硬件问题。
  • 收集日志和错误信息:如系统日志、应用日志、Slurm作业管理器输出等。

2. 常见系统问题排查

  • 检查资源使用情况:利用 tophtopfree 等命令查看CPU、内存、I/O使用情况。
  • 存储空间不足:检查文件系统空间(如 df -h),或是否存在太多小文件(可以影响I/O性能)。
  • 网络问题:使用 pingtraceroute 测试网络连通性。确认是否有丢包或高延迟。

3. 作业提交与调度问题

  • 检查调度器状态:确保Slurm作业调度器正常运行,使用 scontrol show 查看作业状态。
  • 了解作业排队原因:作业是否因资源不足被推迟?或者调度策略优先级影响?
  • 作业输出和错误文件:检查 .out.err 等文件,寻找异常信息。

4. 编译和软件问题

  • 编译问题
  • 确认编译器和库版本是否兼容。
  • 确保所有依赖库已正确安装和链接(通过 ldd 检查共享库依赖)。
  • 常见编译器选项:检查优化标志(如 O3)、并行编译标志(如 fopenmp)、调试标志(如 g)等。
  • 运行时问题
  • 核实环境变量是否正确设置(如 PATHLD_LIBRARY_PATH 等)。
  • 验证输入文件格式是否正确。
  • 检查软件依赖是否缺失,或权限问题(如无法写入输出文件)。

5. 性能调优

  • 检查CPU和内存绑定:避免资源竞争(例如:使用 numactl 检查内存和CPU的绑定)。
  • I/O瓶颈:排查是否存在I/O密集型任务,可能需要优化存储访问模式。
  • 网络和MPI问题:使用 mpirunmpiexec 调试多节点任务,检查MPI通信的性能瓶颈。

6. 用户权限和系统设置

  • 确认用户权限:确保用户对资源(如文件、目录、存储)拥有足够的读写权限。
  • 配置文件检查:核实配置文件(如 ~/.bash_profile~/.bashrc )中是否有影响作业执行的内容。

7. 高级调试工具

  • GDB/Valgrind:用于调试崩溃或内存泄漏问题。
  • Strace/Ltrace:用于跟踪系统调用和库调用,帮助定位文件访问和权限问题。

8. 咨询支持

  • 如果经过上述步骤仍未解决问题,用户应及时向智算中心技术人员或开发团队提交 详细的故障报告,包括:
  • 环境信息(系统、编译器版本等)
  • 错误日志(尽可能详尽的上下文报错信息等)
  • 复现步骤(提交脚本、可复现的测试样例等)