常见问题¶
有足够的空闲 GPU,但任务无法分配¶
可分配 CPU 不足: 为了优化 GPU 和 CPU 的连接,服务器上每个 GPU 核心都有 CPU 亲和性(affinity)设置,即绑定在特定的物理 CPU 上。如果某个物理 CPU 的所有核心都被其他任务分配了,那么对应的 GPU 核心也就没办法再分配了。怀疑出现这种情况的话,可以确认一下同一个节点是否有其他任务占据了大量 CPU 核心。具体查看方法参见集群使用指南中的监控任务状态小节。
可分配内存不足: 节点的内存也有类似的情况,当剩余的可分配内存不足时同样会导致任务无法分配。怀疑出现这种情况的话,可以通过命令打印节点内存占用情况,具体查看方法参见集群使用指南中的查看集群状态小节。
注意 节点计算资源有限,请估计或测试好任务需要的 CPU/memory 资源,谨慎填写任务脚本,避免出现有 GPU 但是其他资源不够导致他人任务长时间排队的情况。
任务输出没有立即写入文件¶
使用
sbatch
提交的批处理 shell 脚本,中间若调用了其他程序,则可能出现程序输出没有立即被写入输出文件的情况。这是因为 Linux 会对文件输出进行缓冲,直到缓冲区打满后才一次性写入磁盘(这样可以减少磁盘读写次数)。为了监视程序进度或调试程序,通常需要关闭缓冲。在 bash 脚本中通过以下命令禁用 Python 标准输出(stdout)和标准错误(stderr)的缓冲:
# 设置环境变量 PYTHONUNBUFFERED 的值为 1
export PYTHONUNBUFFERED=1
专用网络接入¶
有需要的用户请直接联系管理员。