我正在编写一个以文件名作为参数的MPI应用程序,并尝试使用常规C函数从文件中读取。我使用qsub
在群集的多个节点上运行此应用程序,而mpiexec
又使用mpiexec
。
应用程序在文件所在的本地节点上运行正常。为此,我直接致电mpiexec -n 4 ~/my_app ~/input_file.txt
:
qsub
但是当我使用fopen
提交它以在群集的其他节点上运行时,文件读取部分会失败。 qsub
调用时的应用程序错误 - 它无法打开文件(可能因为它不存在)。
问题是,如何将文件提供给所有节点?我已查看了{{1}}联机帮助页,无法解决任何相关问题。
答案 0 :(得分:0)
我猜Vanilla Gorilla不再需要答案了吗?但是,让我们考虑没有并行文件系统的病理系统和仅在一个节点上可用的文件系统的情况。 ROMIO(一种非常常见的MPI-IO实现)有一种方法可以实现您的目标:
how can i transfer file from one proccess to all other with mpi?