⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trans_2d.f

📁 网络带宽测试工具
💻 F
字号:
      Subroutine trans_2d( title, me, npes, nrpt, ncases, n, tn,     &                    ops )! ----------------------------------------------------------------------      Use             numerics      Use             max_params            Implicit        None           Include         'mpif.h'            Character*50 :: title      Integer      :: me, npes, nrpt, ncases, n      Real(l_)     :: tn(maxcases), ops, timer       Real(l_)     :: a(nmax), b(nmax)            Real(l_)     :: t1, t2      Integer      :: s_pe, r_pe      Integer      :: k, kk, kb      Integer      :: st(MPI_Status_Size)      Integer      :: comm, ie, rtag, stag, type      Save            a, b! ----------------------------------------------------------------------       comm   = MPI_Comm_World      type   = MPI_Real8      title  = ' N PEs  <--  N PEs; Trans 2D'      nrpt   = 100      ncases = npes      ops    = npes*8*n      tn(1:ncases) = 0.0_l_            If ( n > nmax/npes ) Then         ncases = 0         Return      End If      Do k = 1,ncases              Call MPI_Barrier( comm, ie )              t1 = timer()        Do kk = 1, nrpt            Do kb = 0, npes-1              r_pe = Mod( me+kb, npes )              s_pe = Mod( me-kb+npes, npes )              stag = s_pe*nrpt + kk              rtag = me*nrpt + kk              Call MPI_Sendrecv( a(me*n), n, type, s_pe, stag,      &             b(r_pe*n), n, type, r_pe, rtag, comm, st, ie )           End Do        End Do        t2    = timer()        tn(k) = (t2 - t1)/(2*nrpt)      End Do! ----------------------------------------------------------------------        End Subroutine trans_2d

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -