2013-10-30 25 views
0

这也许是一个愚蠢的问题,但不同的计数值,MPI_File_write_all为每个处理器

我想这N处理器写在同一个文件中的所有不同的byte count具有不同offset使数据contignously。

我想用MPI_File_write_all(file,data,count,type,status)(单个文件指针,集体,阻塞)函数。

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

我发现什么了迄今已是以下两个问题:

  1. 当我要写大量的MPI_BYTES整数(32位)count在MPI_File_write ...函数中很少,当然会导致溢出!

  2. 我不(不能)/要使用导出的数据类型的MPI,因为所有的处理器上面提到的写不同的byte count和类型是MPI_BYTES

感谢关于这个主题的帮助!

回答

1

你在这里

  • 绝对卷起了几个问题,proceses可以指定不同的甚至为零的数据集体MPI_File_write_all程序。 count参数不仅可以不同,而且datatype参数也不需要相同。

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

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

相关问题