在MPI中写入文件
writing in file in MPI
我已经在MPI中编写了一个程序,我想在3个或更多内核(或计算机)下执行它,我想在每个处理器中写入一些东西,对于两个核心我已经创建了两个不同的文件,但是我不知道我应该为更多内核做什么,是否有必要为每个处理器创建单独的文件?多计算机不同?
void main()////it is just for 2 cores,what should I do if I use
more cores or more computers?
{
FILE*fp=fopen("C:\a.txt","w");
FILE*fp1=fopen("C:\b.txt","w");
if(Id==0)
{
here I write in "fp"
}
else
{
here I write in "fp1"
}
}
如果您使用此模型,是的,您需要每个进程创建一个文件。原因是,如果您有两个过程写入同一文件,则很可能最终会互相覆盖,除非您与MPI做某事以确保它们序列化。
根据您要编写的数据,您可以查看MPI的I/O部分。并行I/O中有功能,但这可能有点棘手。
void main() {
int me;
char filename[1000];
MPI_Comm_rank(MPI_COMM_WORLD, &me);
sprintf(filename,"C:\a%05d.txt",me);
FILE *fp=fopen(filename,"w");
here I write in "fp"
}
这可能是您需要的提示,但通常正确的方法是:
之一- 收集数据(请参阅MPI_GATHER()以开始)仅rank == 0表演I/O 的过程
- 如果i/o很重要,或者所有数据都无法适应一个节点的内存(实际上不是一样吗?),请使用mpi-io。
相关文章:
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- 为什么添加 MPI 时文件打不开?
- 如何编译同时使用 MPI 和 HDF5 的C++文件?
- MPI 二进制文件 I/O 基本功能和性能问题
- 如何从 Python 调用 MPI .so 文件
- 运行MPI时无法使用文件i o
- 在MPI中写入文件
- 在32位和64位处理器上运行混合的mpi可执行文件
- 致命错误:mpi.h:没有这样的文件或目录 #include < mpi.h>
- 使用mpi将矩阵写入单个txt文件
- 如何使用mpi将文件从一个进程传输到另一个进程
- 在C++中用MPI解析大文件
- 写入PBS MPI文件时出错
- 将MPI结果写入文件
- 在c++和MPI中独立并行写入文件
- MPI将嵌套循环中的变量写入单个文件
- MPI:如何限制对文件系统的访问
- 跟踪嵌入式实时MPI可执行文件中的内存使用情况
- 从另一个MPI程序中启动MPI可执行文件
- MPI读取目录中的所有文件