openHowto 编译 MPI 应用程序"serial"模式(不使用 MPI 编译器)?



这个问题听起来可能有点奇怪。。。

想象一下,我有一个MPI应用程序,但我没有安装MPI的系统。因此,我想在不修改源代码的情况下编译不支持MPI的应用程序(1进程,1线程)。这可能吗?

我在某个地方找到了一个"mimic_mpi.h"包装器,它应该能做我想做的事情。但是其中缺少一些MPI函数(例如,MPI_Cart_create、MPI_Cart_get等),所以我没有成功。

mimic_mpi.hhttp://openmx.sourcearchive.com/documentation/3.2.4.dfsg-3/mimic__mpi_8h-source.html

mimic_mpi.chttp://openmx.sourcearchive.com/documentation/3.2.4.dfsg-3/mimic__mpi_8c-source.html

你知道我可以用什么其他方法来编译不支持MPI的MPI应用程序吗?

提前感谢!

您可以用一个进程轻松地运行"真正的"MPI应用程序。在实践中,这甚至可以在不使用mpiexec/mpirun的情况下工作,尽管我不确定这是否得到官方支持。也就是说,一个完整的、可确认的单进程MPI"串行"实现可能会变得相当复杂,并且有自己的库——所以在这种情况下,为什么不使用真正的完整MPI实现呢?

我希望你能看到我要画的圆圈:如果您想要完整的MPI行为,只需使用MPI实现——不管它是否仅限于单个进程。

在实践中,希望能够在有或没有MPI的情况下运行的应用程序似乎经常使用自己的MPI抽象,使用特定于域的通信包装器、#ifdef HAVE_MPI或更复杂的宏。

最新更新