使用 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" 将其转换为纯文本。
我正在尝试用 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" 将其转换为纯文本。