我正在运行一个具有数千个MPI进程的模拟,并且需要将输出数据写入一小组文件。例如,尽管我可能有10000个进程,但我只想写出10个文件,每个文件都有1000个写入文件(在适当的偏移量下)。正确的方法是为将要写入相同文件的进程组创建一个新的通信器,使用MPI_File_open()为该通信器打开一个共享文件,然后使用MPI_File_write_at_all()写入该文件。对吗?下面的代码是我编写的一个玩具示例:#include <math.h>
const int MAX_NUM_F
我试图使用带有共享文件指针的MPI/O (OpenMPI实现)将几个长的分布式数组写入单个文件。我收到以下错误消息
写入失败
long long globalUpperBnd = 2200000000;// more than size of int long long length = (commRank == commSize-1) ? globalUpperBnd-(average*comm