weixin_42408526
王小柒
2018-11-30 01:35

初学习mpi 各线程单独计算出一个矩阵 不知如何传输 请大家帮忙!

  • mpi

DO 700 I=1,NPOINT

! IF(INFB.EQ.1) THEN
AMN=SIN(KM*(A+X(I)))*SIN(KN*(B+Y(I)))

! ELSE
! AMN=cos(KM*(A+X(I)))*cos(KN*(B+Y(I)))

! ENDIF
DO 750 L=1,LAY+1
S(L,I)=S(L,I)+AMN*FAI(L)

750 CONTINUE
700 CONTINUE

1 continue

  u=1
do I=1,NPOINT
    do L=1,LAY+1
  p(U)=s(L,I)
  u=u+1
    enddo
enddo

   !        final
   ITAG=110
  IF (MYID.NE.0) THEN
    KOUNT=GCOUNT(MYID)
    IDEST=0
    Mcount=L*I

    CALL MPI_SEND ( p(U),Mcount, MPI_REAL8, IDEST, ITAG,       &
 &                   COMM, IERR)

  ELSE
    DO ISRC=1,NPROC-1
      ISTART1=GSTART(ISRC)
      KOUNT1=GCOUNT(ISRC)
      CALL MPI_RECV ( p(U),Mcount, MPI_REAL8, ISRC, ITAG,     &
 &                    COMM, ISTATUS, IERR)

    ENDDO
  ENDIF

        这是其中的一部分  想问下大家应该怎么传输这样一个完整的矩阵
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答