Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何在”中编译MPI应用程序;连载;模式(不使用MPI编译器)?_Mpi_Openmpi - Fatal编程技术网

“如何在”中编译MPI应用程序;连载;模式(不使用MPI编译器)?

“如何在”中编译MPI应用程序;连载;模式(不使用MPI编译器)?,mpi,openmpi,Mpi,Openmpi,这个问题听起来可能有点奇怪 假设我有一个MPI应用程序,但我没有安装MPI的系统。 因此,我希望在不修改源代码的情况下编译不支持MPI(单进程、单线程)的应用程序。 可能吗 我在某个地方找到了一个“模仿的”包装器,它应该完全符合我的要求。但是其中缺少一些MPI函数(例如,MPI_Cart_create、MPI_Cart_get等),所以我没有成功 模拟mpi.h 模拟mpi.c 你知道我还可以用什么方法编译不支持MPI的MPI应用程序吗 提前谢谢 您可以使用单个进程轻松运行“真正”的MPI应用程

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

假设我有一个MPI应用程序,但我没有安装MPI的系统。 因此,我希望在不修改源代码的情况下编译不支持MPI(单进程、单线程)的应用程序。 可能吗

我在某个地方找到了一个“模仿的”包装器,它应该完全符合我的要求。但是其中缺少一些MPI函数(例如,MPI_Cart_create、MPI_Cart_get等),所以我没有成功

模拟mpi.h

模拟mpi.c

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

提前谢谢

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

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


实际上,希望能够使用MPI或不使用MPI运行的应用程序似乎经常使用自己的MPI抽象,使用特定于域的通信包装器,#ifdef有#MPI或更复杂的宏。

谢谢您的快速回答!我想跟踪一组给定应用程序(包括一些MPI应用程序)的不同编译器发出的指令。这就是为什么我并不真正需要MPI支持,因为“串行”运行将为我提供所需的数据。对我来说,这应该是一个简单的问题(只是一个“void”mpi.h抽象层),但你是对的,因为提供串行版本的mpi应用程序通常使用#ifdef宏。为什么不为缺少的函数添加虚拟绑定并将结果开源?