-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
58 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# 智算服务异常排查和反馈 | ||
|
||
智算中心提供了多种现有的通用软硬件解决方案,包括 Intel OneAPI 套件、GNU GCC、CUDA、OpenMPI 等等,可驱动多种不同类型应用在同一硬件平台上运行,并为用户提供了编译自定义应用的能力。但由于软件版本环境复杂,且上下游依赖兼容性、可靠性难以100%保证,我们无法确保您的应用具有100%的可用性和准确性。 | ||
|
||
因此在使用智算集群时,**请对自己的数据和结果负责**,时常对自己计算的结果抱有怀疑态度,审慎测试,确保可用、可靠后再大规模扩展。 | ||
|
||
当遇到异常情况时,请遵循以下方案进行排查: | ||
|
||
## 1. 了解问题的背景 | ||
|
||
- **清晰描述问题**:记录出错信息、环境配置、操作步骤等。明确是软件层面问题、网络问题还是硬件问题。 | ||
- **收集日志和错误信息**:如系统日志、应用日志、Slurm作业管理器输出等。 | ||
|
||
## 2. 常见系统问题排查 | ||
|
||
- **检查资源使用情况**:利用 `top`、`htop`、`free` 等命令查看CPU、内存、I/O使用情况。 | ||
- **存储空间不足**:检查文件系统空间(如 `df -h`),或是否存在太多小文件(可以影响I/O性能)。 | ||
- **网络问题**:使用 `ping` 或 `traceroute` 测试网络连通性。确认是否有丢包或高延迟。 | ||
|
||
## 3. 作业提交与调度问题 | ||
|
||
- **检查调度器状态**:确保Slurm作业调度器正常运行,使用 `scontrol show` 查看作业状态。 | ||
- **了解作业排队原因**:作业是否因资源不足被推迟?或者调度策略优先级影响? | ||
- **作业输出和错误文件**:检查 `.out` 或 `.err` 等文件,寻找异常信息。 | ||
|
||
## 4. 编译和软件问题 | ||
|
||
- **编译问题**: | ||
- 确认编译器和库版本是否兼容。 | ||
- 确保所有依赖库已正确安装和链接(通过 `ldd` 检查共享库依赖)。 | ||
- 常见编译器选项:检查优化标志(如 `O3`)、并行编译标志(如 `fopenmp`)、调试标志(如 `g`)等。 | ||
- **运行时问题**: | ||
- 核实环境变量是否正确设置(如 `PATH`、`LD_LIBRARY_PATH` 等)。 | ||
- 验证输入文件格式是否正确。 | ||
- 检查软件依赖是否缺失,或权限问题(如无法写入输出文件)。 | ||
|
||
## 5. 性能调优 | ||
|
||
- **检查CPU和内存绑定**:避免资源竞争(例如:使用 `numactl` 检查内存和CPU的绑定)。 | ||
- **I/O瓶颈**:排查是否存在I/O密集型任务,可能需要优化存储访问模式。 | ||
- **网络和MPI问题**:使用 `mpirun` 或 `mpiexec` 调试多节点任务,检查MPI通信的性能瓶颈。 | ||
|
||
## 6. 用户权限和系统设置 | ||
|
||
- **确认用户权限**:确保用户对资源(如文件、目录、存储)拥有足够的读写权限。 | ||
- **配置文件检查**:核实配置文件(如 `~/.bash_profile`、`~/.bashrc` )中是否有影响作业执行的内容。 | ||
|
||
## 7. 高级调试工具 | ||
|
||
- **GDB/Valgrind**:用于调试崩溃或内存泄漏问题。 | ||
- **Strace/Ltrace**:用于跟踪系统调用和库调用,帮助定位文件访问和权限问题。 | ||
|
||
## 8. 咨询支持 | ||
|
||
- 如果经过上述步骤仍未解决问题,用户应及时向智算管理员或开发团队提交**详细的故障报告**,包括: | ||
- 环境信息(系统、编译器版本等) | ||
- 错误日志(尽可能详尽的上下文报错信息等) | ||
- 复现步骤(提交脚本、可复现的测试样例等) |