【发布时间】:2025-12-19 14:20:13
【问题描述】:
我正在编写一个将文件名作为参数并尝试使用常规 C 函数从文件中读取的 MPI 应用程序。我使用qsub 在集群的多个节点上运行此应用程序,而后者又使用mpiexec。
应用程序在文件所在的本地节点上运行良好。为此,我直接拨打mpiexec:
mpiexec -n 4 ~/my_app ~/input_file.txt
但是当我使用qsub 提交它以在集群的其他节点上运行时,文件读取部分失败。 fopen 调用的应用程序错误——它无法打开文件(可能是因为它不存在)。
问题是,我如何使文件对所有节点可用?我查看了 qsub 联机帮助页,但没有找到任何相关的内容。
【问题讨论】:
-
在生产集群中执行此操作的常用方法是使用 Lustre、NFS 或类似协议在计算和登录节点之间共享一个文件系统。如果它安装在 /lustre 中,则 MPI 作业中的所有等级都应该能够访问 /lustre/input_file.txt 下的文件。你确定你的集群管理员没有设置类似的东西吗?
-
已联系管理员,已修复。