【问题标题】:What is the MPI code to extract a 2D sub-matrix from a larger 2D matrix?从较大的 2D 矩阵中提取 2D 子矩阵的 MPI 代码是什么?
【发布时间】:2023-04-10 06:56:01
【问题描述】:

我正在寻找从较大的二维子矩阵中提取二维子矩阵的最佳方法。那是。如果我有一个每个边都有 1 个鬼点的矩阵,我想提取内部矩阵。因此,如果矩阵定义为 matrix[NX+2][NY+2] 我如何提取从 matrix[1][1] 开始到 matrix[NX+1][NY+1]

的子矩阵>

我想使用 MPI_Type_vector 来执行此操作,但我不确定如何使用正确的步幅、块长度等来定义它。我想使用 MPI_Send 和 MPI_Recv 将新的 MPI_Datatype 发送到另一个处理器。接收处理器上的缓冲区大小为 [NX][NY] 谢谢

【问题讨论】:

    标签: arrays vector types mpi


    【解决方案1】:

    在 Fortran 中是这样的

    call mpi_type_vector(ny,nx,nx+2,mpi_double_precision,my_new_type,ierr)
    call mpi_type_commit(my_new_type,ierr)
    

    将它翻译成 C 时我会犯更多的错误。不要忘记 Fortran 以行优先顺序存储数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 2015-03-30
      • 2016-05-11
      相关资源
      最近更新 更多