计算 MPI 运行时间(Fortran)

计算 MPI 运行时间(Fortran)

实现

让所有进程同一时间开始运算,最后选取运行时间最长的那个进程的时间。

program main
    use mpi
    implicit none
    
    integer :: rank, size, ierr
    real(8) :: local_finish, local_start
    real :: local_elapsed, elapsed
    
    ! 初始化
    call MPI_INIT(ierr)

    call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
    call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)

    local_start = MPI_WTIME()
    call SLEEP(2)
    local_finish = MPI_WTIME()
    local_elapsed = local_finish - local_start
    call MPI_REDUCE(local_elapsed, elapsed, 1, MPI_REAL, MPI_MAX, 0, MPI_COMM_WORLD, ierr)
    if (rank == 0) then
        print *, "elapsed:", elapsed
    endif

    ! 结束
    call MPI_FINALIZE(ierr)
end program mai
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
此文档描述了Fortranmpi的使用。 Fortran語言 1 MPI 平行計算程式設計 1 第一章 前言 5 1.1 MPI 平行計算軟體 6 1.2 國家高速網路與計算中心的平行計算環境 7 1.3 在IBM 電腦系統上如何使用MPI 8 1.3.1 IBM 電腦系統的MPI Fortran程式編譯指令 8 1.3.2 IBM 電腦系統的 Job command file 8 1.3.3 IBM 電腦系統的平行程式的執行指令 11 1.4 在PC Cluster上如何使用MPI 13 1.4.1 PC Cluster上的MPI Fortran程式編譯指令 13 1.4.2 PC Cluster 上的 Job command file 14 1.4.3 PC Cluster 上的平行程式執行指令 15 第二章 無邊界資料交換的平行程式 16 2.1 MPI 基本指令 17 2.1.1 mpif.h include file 17 2.1.2 MPI_INIT, MPI_FINALIZE 17 2.1.3 MPI_COMM_SIZE, MPI_COMM_RANK 18 2.1.4 MPI_SEND, MPI_RECV 19 2.2 無邊界資料交換的循序程式 T2SEQ 21 2.3 資料不切割的平行程式 T2CP 23 2.4 MPI_SCATTER,MPI_GATHER,MPI_REDUCE 28 2.4.1 MPI_SCATTER,MPI_GATHER 28 2.4.2 MPI_REDUCE, MPI_ALLREDUCE 30 2.5 資料切割的平行程式 T2DCP 32 第三章 需要邊界資料交換的平行程式 36 3.1 MPI_SENDRECV, MPI_BCAST 37 3.1.1 MPI_SENDRECV 37 3.1.2 MPI_BCAST 37 3.2 邊界資料交換的循序程式 T3SEQ 39 3.3 資料不切割的邊界資料交換平行程式 T3CP 40 3.4 資料切割的邊界資料交換平行程式(一) T3DCP_1 47 3.5 資料切割的邊界資料交換平行程式 (二) T3DCP_2 52 第四章 格點數不能整除的平行程式 57 4.1 格點數不能整除的循序程式 T4SEQ 58 4.2. MPI_SCATTERV、MPI_GATHERV 60 4.3 MPI_PACK、UNPACK、BARRIER、WTIME 62 4.3.1 MPI_PACK、MPI_UNPACK 62 4.3.2 MPI_BARRIER、MPI_WTIME 65 4.4 資料切割的平行程式 T4DCP 67 第五章 多維陣列的平行程式 72 5.1 多維陣列的循序程式 T5SEQ 73 5.2 多維陣列資料不切割的平行程式 T5CP 76 5.3 多維陣列末維資料切割的平行程式 T5DCP 85 5.4 與二維切割有關的 MPI 副程式 92 5.4.1 垂直座標圖示法則 (Cartesian Topology) 92 5.4.2 界定二維切割的 MPI 副程式MPI_CART_CREATE、 93 MPI_CART_COORDS、MPI_CART_SHIFT 93 5.4.3 定義固定間隔資料的 MPI 副程式 96 MPI_TYPE_VECTOR、MPI_TYPE_COMMIT 96 5.5 多維陣列末二維切割的平行程式 T5_2D 98 第六章 MPI程式的效率提昇 112 6.1 Nonblocking資料傳送 113 6.2 資料傳送的合併 122 6.3 以邊界資料計算取代邊界資料交換 126 6.4 輸出入資料的安排 128 6.4.1 事先切割輸入資料 128 6.4.2 事後收集切割過的輸出資料 131 第七章 導出的資料類別 133 7.1 導出的資料類別 134 7.2 陣列的轉換 139 7.3 兩方迴歸與管線法 149 第八章 多方依賴及SOR解法 155 8.1 四方依賴及SOR解法 156 8.2 黑白點間隔 SOR 解法 159 8.3 斑馬線 SOR 解法 168 8.4 八方依賴與四色點間隔SOR解法 175 第九章 有限元素法程式 183 9.1 有限元素法的循序程式 184 9.2 有限元素法的平行程式 187 附錄一 撰寫C語言的MPI程式 197 參考書目 200 Parallel Processing without Partition of 1-D Arrays 201 Parallel Processing with Partition of 1-D Arrays 202 Parallel on the 2nd Dimension of 2-D Arrays without Partition 203 Parallel on the 2nd Dimension of 2-D Arrays with Partition 204 Partition on the 3rd dimension of 3-D Arrays 205

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值