0

这可能是一个愚蠢的问题,但是,

我希望处理器在同一个文件中N写入所有不同的内容,以使数据连续。byte countoffset

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

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

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

  1. 当我想在 MPI_File_write... 中写入大量MPI_BYTES整数(32 位)count时,函数太少并且当然会溢出!

  2. 我不(不能)/想要在 MPI 中使用派生数据类型,因为如上所述,所有处理器都写了不同byte count的类型,并且类型是MPI_BYTES

感谢您对此主题的任何帮助!

4

1 回答 1

2

你在这里总结了几个问题

  • MPI_File_write_all当然,进程可以为集体例程指定不同甚至零数量的数据。不仅count参数可以不同,而且参数也没有datatype必要相同。

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

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

于 2013-11-05T16:08:58.683 回答