gpt4 book ai didi

c++ - 如何使用 mpi 将文件从一个进程传输到所有其他进程?

转载 作者:行者123 更新时间:2023-11-30 04:29:07 28 4
gpt4 key购买 nike

我有一个只能在一台计算机上使用的文本文件,我需要其他计算机也能够读取该文件。如何使用 mpich2 (c++) 发送文件?

我尝试使用 MPI_File_open() 但似乎所有计算机都需要本地文件才能工作。

最佳答案

好的,这是对你问题的 secret 忍者答案。 haraldkl 的回答是最直接的,但还有另一种方法:ROMIO(MPICH2 中的 MPI-IO 实现)有一个很少记录的功能,称为延迟打开:如果你告诉 ROMIO 你将不做独立的 I/O,你只做集体调用,那么只有“i/o 聚合器”会打开文件,两阶段集体 i/o 优化会将该数据发送到所有处理器。

<p></p>

<p>MPI_Info_set(info, "romio_no_indep_rw" "true");
MPI_File_open(comm, filename, mode, info, &fh);
MPI_File_read_all(fh, buf, count, MPI_CHAR, &status);
</p>

读取和广播可能是要走的路,因为每个进程都在读取相同的数据。只是想,如果您发现自己处于另一种情况,即并非每个进程都可以访问该文件,我会提到这一点。

我在 ROMIO 博客上有更详细的文章:http://press3.mcs.anl.gov/romio/2003/08/05/deferred-open/

关于c++ - 如何使用 mpi 将文件从一个进程传输到所有其他进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9649901/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com