c - 使用 MPI_File_write_at 格式化输出?
问题描述
我正在尝试使用 MPI 编写并行 IO 程序,我需要将数据写入文件,格式为:02 03 04
在文件中而不是2 3 4
.
fprintf(fpOut,"%.2d ",var);
将是我正在尝试做的串行对应物。我环顾四周,但到目前为止找不到任何答案。关于我如何解决这个问题的任何想法?
解决方案
MPI_IO
写入二进制数据(相对于文本/格式化数据)。
所以如果真的要并行写,可以使用一个中间缓冲区,然后再写,例如
char buf[4];
sprintf(buf, "%.2d ", var);
MPI_File_write_at(buf, 3, MPI_CHAR, ...);
话虽如此,您可能需要重新考虑您的工作流程:
- 一种选择是开始在任何地方使用二进制数据(并并行写入)
- 另一种选择是以二进制和并行方式写入中间数据,最后对其进行后处理(非并行)以将其“转换”为纯文本。
推荐阅读
- reactjs - 异步等待 redux this.props.func 调用?
- python - 初始化要在 SelectField 中使用的 Flask WTFForm 类变量
- hadoop - 目录文件未使用命令“hadoop fs -put”复制到 HDFS
- ubuntu - 在 Ubuntu 18.04 中启动 Xampp 时遇到 MySQL 错误
- c# - Linq查询不使用表的对象获取表的记录
- android - Unity游戏中出现广告时如何重启手机?
- flutter - Flutter v1.0下的类TickerProviderStateMixin undefined
- java - 如何在 selenium 中使用 java 从 excel 工作表中检索 0.00000000 等十进制值?
- excel - VBA - 选择指定范围时在下一个单元格上调用函数
- vba - 需要建议或帮助来修改可以在通配符搜索 VBA 后搜索子字符串和格式的宏