【问题标题】:Formatted output with MPI_File_write_at?使用 MPI_File_write_at 格式化输出?
【发布时间】:2020-05-01 20:36:21
【问题描述】:

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

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

将是我正在尝试做的连续对应物。我环顾四周,但到目前为止找不到任何答案。有什么想法可以解决这个问题吗?

【问题讨论】:

    标签: c parallel-processing mpi openmpi mpi-io


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      相关资源
      最近更新 更多