首页 > 解决方案 > MPI 以正确的方式分散 3D 阵列是否需要转置?

问题描述

我有一个关于使用 MPI 散射函数散射数据的问题。

我想以精确的方式分散数据,但我不知道 MPI 分散是否有可能,或者我是否必须转换数据然后分散。

例如我有数组大小 (x,y,z) 4,8,2 (所以有两个二维数组)。现在我想将它分散到 4 个进程中,每个大小将是 4、2、2。

数据以以下方式分散:

MPI 散点图

但是,我需要以这种方式分散数据:

有没有可能

该程序是用 Fortran 编写的。

我的程序中的 scatter 函数如下所示:

CALL MPI_Scatter(TRANSPONSE_LOCAL_YZ(:,:,:), x_proc*y*z_proc, MPI_INT, TRANSPONSE_YZ(:,s:f,:), x_proc*y*z_proc, MPI_INT, 0, MPI_COMM_WORLD, MPI_STATUS, MPI_err)

标签: fortranmpiscatter3d

解决方案


推荐阅读