c++ - 在分布式文件系统上并行导出 ASCII 文件

标签 c++ parallel-processing mpi distributed mpi-io

我需要在分布式文件系统上导出 ASCII 文件。目前,我在每个节点上以追加模式将文件流打开到同一文件。然后我逐个节点依次导出所有数据。该解决方案能否在分布式文件系统上正常工作,或者是否有必要使用 MPI-I/O? 看来我不太明白并行文件系统的概念。

附言该文件必须是ASCII。

最佳答案

使用 MPI-I/O,您不能在文件末尾并行附加数据。您可以将数据并行写入文件的特定位置(每个 MPI 进程写入不同的位置),因此您需要知道每个进程的偏移量。这对于 ASCII 文件可能不可行。

另一种选择是由每个 MPI 进程(并行)编写一个单独的文件,然后将这些文件合并到并行程序范围之外的单个文件中。

关于c++ - 在分布式文件系统上并行导出 ASCII 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49322964/

相关文章:

python - mpi4py 返回排名差异

c++ - cin.getline() 使程序崩溃

注册的 doParallel 集群不适用于 train/caret parRF 模型

r - Seed 和 clusterApply - 如何选择特定运行?

matlab - 在matlab parfor循环中保存命令

C++ 程序在不执行 catch block 的情况下终止

c - 发送/接收的 MPI 数据类型必须匹配吗?

c++ - 虚方法在多重继承下表现不同

c++ - 在 C++ 中正确实现复制构造函数

C++:从 std::map 继承