1

我有一个描述物理系统的大矩阵。最后两行与其他行根本不同,因此需要单独设置。此外,将这些行中的每一行分配到不同的进程是没有意义的。我想在第 0 个进程上设置两条线,然后将它们复制到全局矩阵中。

我有什么?- 一个分布式 M x N 矩阵,其中上部 (M-2) x N 块已被填充。

我想做什么?- 计算第 0 个进程的最后 2 x N 个元素,然后使用PDGEMR2D

问题是什么?- 我需要调用PDGEMR2D所有进程。a因此,需要分配要复制的矩阵(我认为它通常称为)并在所有进程上都有一个 scalapack 描述符。在第 0 个进程中,局部矩阵为 2 x N,在所有其他进程中为 0 x N。

如何处理空子矩阵? 通常,要获取 scalapack 描述符,我会调用descinit本地行数为LLD. 然而,这个数字需要 >= 1,但在具有空矩阵的进程上,它是 0。

(请注意,fortran 允许您分配具有 0 个元素的数组 - 这纯粹是一个 ScaLAPACK 问题。)

4

0 回答 0