高性能并行计算.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cannon.f ************************************************************************ ************************************************************************ subroutine cannon( a, lda, b, ldb, c, ldc, m, n, k, rowcomm, colcomm, w, iw ) implicit none include mpif.h integer lda, ldb, ldc, m, n, k, rowcomm, colcomm, iw(*) real a(lda, *), b(ldb, *), c(ldc, *), w(*) * integer lma, lka, lkb, lnb, lmc, lnc, ldw, ldw1 * integer nr, nc, rid, cid, ierr, res, arect, brect, nrb integer root, north, south, sta(mpi_status_size), i * call mpi_comm_size( colcomm, nr, ierr ) call mpi_comm_rank( colcomm, rid, ierr ) call mpi_comm_size( rowcomm, nc, ierr ) call mpi_comm_rank( rowcomm, cid, ierr ) * lma = m/nr res = mod( m, nr ) if ( rid .lt. res ) lma = lma + 1 * lka = k/nc res = mod( k, nc ) if ( cid .lt. res ) lka = lka + 1 * lkb = k/nr res = mod( k, nr ) if ( rid .lt. res ) lkb = lkb + 1 * lnc = n/nc res = mod( n, nc ) if ( cid .lt. res ) lnc = lnc + 1 lmc = lma lnb = lnc ldw = lma + 1 call mpi_allgather( lkb, 1, mpi_integer, iw, 1, mpi_integer, colcomm, ierr ) nrb = iw(1) ldw1 = ldb * if ( nr .ne. nc ) return * call mpirect( lda, lma, nrb, arect ) call mpi_type_commit( arect, ierr ) call mpirect( ldb, nrb, lnb, brect ) call mpi_type_commit( brect, ierr ) call wrapinita(a, lda, lma, lka, rid, cid, nr, nc) call wrapinitb(b, ldb, lkb, lnb, rid, cid, nr, nc) call zeroc( c, ldc, lmc, lnc ) * north = mod( nr+rid-1, nr ) south = mod( rid+1, nr ) root = 0 * do 100 i=0, nr-1 root = mod(rid + i, nr) call mcopy( a, lda, w, ldw, lma, lka ) call mpi_bcast( w, 1, arect, root, rowcomm, ierr ) k = root + 1 call sgemm(w, ldw, b, ldb, c, ldc, lma, iw(k), lnc) *

文档评论(0)

yyh892289 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档