MPI耦合应用

MPI耦合应用,mpi,physics,coupling,Mpi,Physics,Coupling,我正在用一个并行程序来模拟一个物理问题,在这个问题上我必须创建不同的通信器和相互通信器。假设我有一个程序a和程序B。我可以让许多处理器执行a和B。B的进程将被加入到小型的通讯器中,其中a将只在一个通讯器中 A1---B1---B2---B3 | A2---B4 | A3---B5---B6---B7 这里 A1、A2、A3属于通信1 B1、B2、B3至通信2 B4至通信3 B5、B6、B7至通信4 根据问题的不同,A和B的安排和进程数量可能有所不同。我的想法是从输入中读取这个连接结构,并根据它执

我正在用一个并行程序来模拟一个物理问题,在这个问题上我必须创建不同的通信器和相互通信器。假设我有一个程序a和程序B。我可以让许多处理器执行a和B。B的进程将被加入到小型的通讯器中,其中a将只在一个通讯器中

A1---B1---B2---B3

|

A2---B4

|

A3---B5---B6---B7

这里

  • A1、A2、A3属于通信1
  • B1、B2、B3至通信2
  • B4至通信3
  • B5、B6、B7至通信4
  • 根据问题的不同,A和B的安排和进程数量可能有所不同。我的想法是从输入中读取这个连接结构,并根据它执行
    MPI\u COMM\u WORLD
    的拆分。这些程序将由以下人员执行:

    mpirun -np np1 prog_1 : -np np2 prog_2
    

    这是一个有效的程序吗?有一种更简单的方法可以做到这一点(无需使用
    MPI\u Spawn
    MPI\u Comm\u connect
    我的意思是只需一个命令就可以同时使用所有进程)?

    看起来不错。1/通过以下方式确定流程的本地等级:;然后2/从文件读取连接性;最后3/创建相应的沟通者(内部或内部,由您选择)。从我的观点来看,这是完全合理的方法。我觉得很好。1/通过以下方式确定流程的本地等级:;然后2/从文件读取连接性;最后3/创建相应的沟通者(内部或内部,由您选择)。从我的观点来看,这是完全合理的方法。