Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran MPI以正确的方式分散3D阵列是否需要转置?_Fortran_Mpi_Scatter3d - Fatal编程技术网

Fortran MPI以正确的方式分散3D阵列是否需要转置?

Fortran MPI以正确的方式分散3D阵列是否需要转置?,fortran,mpi,scatter3d,Fortran,Mpi,Scatter3d,我有一个关于使用MPI散射函数散射数据的问题 我希望以精确的方式分散数据,但我不知道是否可以通过MPI分散,或者是否必须转换数据然后分散 例如,我有数组大小(x,y,z)4,8,2(所以有两个二维数组)。现在我想把它分散到4个进程中,每个进程的大小是4,2,2 数据以衰减方式分散: 但是,我需要以这种方式分散数据: 该程序是用Fortran语言编写的 我的程序中的散布函数如下所示: CALL MPI_Scatter(TRANSPONSE_LOCAL_YZ(:,:,:), x_proc*y*z

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

我希望以精确的方式分散数据,但我不知道是否可以通过MPI分散,或者是否必须转换数据然后分散

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

数据以衰减方式分散:

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

该程序是用Fortran语言编写的

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

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)

它在Fortran中,Fortran是列主语言,C是行主语言,这一点很重要!您认为转置可能是必要的,这是对的。转置在Fortran中,Fortran是主要列,C是主要行,这一点很重要!您认为转置可能是必要的,这是正确的。