我对使用MPI分散功能分散数据有疑问。
我想以一种精确的方式分散数据,但是我不知道MPI是否可以分散数据,或者我是否必须先转换数据然后进行分散。
例如,我的数组大小(x,y,z)为4,8,2(因此有两个2D数组)。现在,我想将其分散到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)