c - 使文件在所有节点上可用

标签 c mpi qsub

我正在编写一个 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/

相关文章:

c - 将 unsigned int 与 unsigned int 相加时发生溢出

fortran - 为什么 'use mpi' 使用 mpif90 失败

c - MPI-- 生产者和消费者

java - 如何检查 qsub 作业的命运

linux - 当进程在计算机集群上运行时如何访问标准输出?

matlab - MATLAB 如何在文件执行过程中处理文件变化?

c - scanf 出现问题

c - 了解此输入中的动态分配,c

objective-c - c中的模拟器/生成的switch语句范围

c - 如何通过MPI加速这个问题