使用 MPI_File_write_at 格式化输出?

Formatted output with MPI_File_write_at?

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

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

将是我正在尝试做的事情的连续对应物。我环顾四周,但到目前为止找不到任何答案。知道我该怎么做吗?

MPI_IO 写入二进制数据(对比 text/formatted 数据)。

所以如果真的要并行写,可以使用一个中间缓冲区,然后再写,比如

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

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

  • 一个选择是开始在所有地方使用二进制数据(并并行写入)
  • 另一种选择是以二进制和并行方式写入中间数据,最后 post 将其处理(非并行)以 "convert" 将其转换为纯文本。