Mpi 计算中的重影行或重影列是什么?

Mpi 计算中的重影行或重影列是什么?,mpi,message-passing,Mpi,Message Passing,我是MPI编程的新手。在网上阅读一些信息时,我无法理解有关重影行/列的信息。有人能给我解释一下它是什么,它是如何实现的,我们为什么要使用它吗?鬼区通常与模具应用程序一起使用。这意味着过程可能是这样安排的(我将在2D中回答这个问题,但你可以推断出有多少维度对你有帮助): 每个进程直接与其邻居(北、南、东、西)通信,以在每次迭代中交换数据。每个进程都有一些二维数据块,其布局如下: 1 5 9 3 7 2 3 4 8 0 2 5 7 3 9 9 3 8 1 4 8 3 7 3 2 该数据的边缘通常用

我是MPI编程的新手。在网上阅读一些信息时,我无法理解有关重影行/列的信息。有人能给我解释一下它是什么,它是如何实现的,我们为什么要使用它吗?

鬼区通常与模具应用程序一起使用。这意味着过程可能是这样安排的(我将在2D中回答这个问题,但你可以推断出有多少维度对你有帮助):

每个进程直接与其邻居(北、南、东、西)通信,以在每次迭代中交换数据。每个进程都有一些二维数据块,其布局如下:

1 5 9 3 7
2 3 4 8 0
2 5 7 3 9
9 3 8 1 4
8 3 7 3 2
该数据的边缘通常用作“重影区域”:

这意味着这些数据可供相邻进程使用,以便它们在自己的计算中使用,通常用于计算区域分解问题边界处物理对象之间的某种交互

至于实现,这将取决于数据,但通常可以使用自定义MPI数据类型来完成。我不会在这里提供代码,因为它非常特定于您的应用程序,但是在web上有很多教程,您可以从中了解如何使用MPI数据类型

这是我在谷歌上快速搜索的一个教程。它不是关于MPI的,但它解释了基本概念:

1 5 9 3 7
2 3 4 8 0
2 5 7 3 9
9 3 8 1 4
8 3 7 3 2
1   5 9 3   7
  ---------
2 | 3 4 8 | 0
2 | 5 7 3 | 9
9 | 3 8 1 | 4
  ---------
8   3 7 3   2