如何找出某个指数是否位于矩阵的对角线或反对角线上?

时间:2012-07-24 20:23:08

标签: matrix mpi coordinate-systems cartesian

所以我目前正在开发一个涉及并行网格结构的项目。我遇到的问题与通信方案有关。我对此矩阵中每个元素的信息量是它的处理器等级。这让我可以计算全局方案中的位置。

我会试着给出一个直观的例子:

此矩阵表示节点编号的全局图片。

| 0 | 1 | 2 | 3 |

| 4 | 5 | 6 | 7 |

| 8 | 9 | 10 | 11 |

| 12 | 13 | 14 | 15 |

在本地,我可以找到任何(i,j)给出它的'处理器等级和通信中的处理器总数。

我想解决的问题是如何找到一个任意大小的方形网格,我如何知道哪个元素在对角线或蚂蚁对角线上。

下面列出了我正在看的更好的图片。不同的黑/白方案已经得到了解决,我只需要知道如何找到对角线和反对角线给定它的'处理器等级和节点坐标。

Infographic

1 个答案:

答案 0 :(得分:0)

我想出了解决问题的方法。

我做的第一件事就是查看每个处理器的坐标系(i,j)。然后我注意到,如果你拿abs(i - j),你得到一个奇数或偶数。这很明显,但是当你将它应用到每个细分时,就像原始问题中的图像一样,你可以看到相同的行为,它可以区分主对角线和反对角线。所以我使用(i,j)坐标并建立一个规则,确定所述坐标是否在象限(I或III)与(II或IV)中,并确定该标志是否应为零或一。这给了我正在寻找的解决方案。