C++ MPI\u文件\u写入\u每个处理器都有不同的计数值

C++ MPI\u文件\u写入\u每个处理器都有不同的计数值,c++,mpi,mpi-io,C++,Mpi,Mpi Io,这也许是个愚蠢的问题但是 我希望N处理器使用不同的偏移量在同一文件中写入所有不同的字节计数,以使数据连续 我想使用MPI\u File\u write\u all(文件、数据、计数、类型、状态)(单个文件指针、集合、阻塞)功能 第一个问题:每个处理器是否可以为count参数指定不同的值? 我找不到MPI 3.0参考中提到的任何内容。(我的意图是这不可能?) 到目前为止,我发现了以下两个问题: 当我想在MPI_文件中写入大量MPI_字节整数(32位)count时。。。函数太少,当然会产生溢出 我不

这也许是个愚蠢的问题但是

我希望
N
处理器使用不同的
偏移量在同一文件中写入所有不同的
字节计数
,以使数据连续

我想使用
MPI\u File\u write\u all(文件、数据、计数、类型、状态)
(单个文件指针、集合、阻塞)功能

第一个问题:每个处理器是否可以为
count
参数指定不同的值? 我找不到MPI 3.0参考中提到的任何内容。(我的意图是这不可能?)

到目前为止,我发现了以下两个问题:

  • 当我想在MPI_文件中写入大量
    MPI_字节
    整数(32位)
    count
    时。。。函数太少,当然会产生溢出

  • 我不(不能)/想在MPI中使用派生数据类型,因为如上所述,所有处理器都会写入不同的
    字节计数
    ,并且类型是
    MPI\u字节


  • 谢谢你在这个话题上的帮助

    您在这里提出了几个问题

    • 当然,进程可以为集合
      MPI\u File\u write\u all
      例程指定不同甚至零数量的数据。不仅
      count
      参数可以不同,而且
      datatype
      参数也没有理由需要相同

    • 问题#1:如果您想写入超过
      int
      值的MPI_字节数据,则必须创建一个新的datatpye。例如,假设您想要写入90亿字节。创建一个10亿大小的重叠类型,然后写出其中的9个。(如果要写入的数据量不可平均分割,则可能需要hindexed或struct类型)

    • 问题#2:让每个MPI进程创建自己的数据类型或数据类型计数根本不是问题