带有MPI_File_write_at的格式化输出?

问题描述 投票:0回答:1

[我正在尝试使用MPI编写并行IO程序,我需要将数据写入文件的格式为:文件中的02 03 04而不是2 3 4

fprintf(fpOut,"%.2d ",var);

将与我正在尝试做的工作相对应。我环顾四周,但到目前为止找不到任何答案。关于我可能如何处理的任何想法?

c parallel-processing mpi openmpi mpi-io
1个回答
0
投票

[MPI_IO写二进制数据(相对于文本/格式化数据)。

因此,如果您真的想并行编写,可以使用中间缓冲区,然后再编写它,例如

char buf[4];
sprintf(buf, "%.2d ", var);
MPI_File_write_at(buf, 3, MPI_CHAR, ...);

话虽如此,您可能要重新考虑您的工作流程:

  • 一个选项是在任何地方开始使用二进制数据(并并行写入)
  • 另一个选择是以二进制和并行方式写入中间数据,最后(而非并行地)对其进行后处理,以将其“转换”为纯文本。
© www.soinside.com 2019 - 2024. All rights reserved.