各位好,我有个MPI消息传递的问题想请教下,
我的数据类型为结构体(派生数据类型),定义如下:
[Fortran] 纯文本查看 复制代码 type efield
double precision::r1,r2,i1,i2
endtype
type(efield),dimension(:,:),allocatable::e
但消息传递部分我有些不确定,比如我要发送n个派生数据类型,那我是应该每次发送n个数据成员,然后一共4次呢?还是一次性发送n个派生数据类型的变量就可以?如果可以将派生数据类型整体发送,那么buffer的数目应该是n还是4N,以及数据类型如何写?
我按照一次发送n个派生数据,类型写的double precision,根据输出看的话,ierr是0,应该是没什么问题,但感觉还是不确定。毕竟只有这个rank操作成功了,其他rank遇到了一些问题。
[Fortran] 纯文本查看 复制代码 call MPI_Isend(e(pml_cell,Ny-ypml_cell+1:Ny-1),ypml_cell-1,MPI_DOUBLE_PRECISION,pairx2,0,MPI_COMM_WORLD,request,ierr)
print*,'rank02',ierr
|