我正在编写一个 MPI 应用程序,它将文件名作为参数并尝试使用常规 C 函数从文件中读取。我使用 qsub
在集群的多个节点上运行此应用程序,后者又使用 mpiexec
。
应用程序在文件所在的本地节点上运行良好。为此,我直接调用 mpiexec
:
mpiexec -n 4 ~/my_app ~/input_file.txt
但是当我用qsub
提交它在集群的其他节点上运行时,文件读取部分失败了。 fopen
调用时的应用程序错误 -- 它无法打开文件(可能是因为它不存在)。
问题是,如何使文件对所有节点可用?我查看了 qsub
联机帮助页,但找不到任何相关内容。
最佳答案
我想 Vanilla Gorilla 不再需要答案了吗?但是,让我们考虑一个没有并行文件系统和一个文件系统仅在一个节点可用的病态系统的情况。 ROMIO(一种非常常见的 MPI-IO 实现)中有一种方法可以实现您的目标:
how can i transfer file from one proccess to all other with mpi?
关于c - 使文件在所有节点上可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29085220/