Fortran Coder

查看: 20737|回复: 6
打印 上一主题 下一主题

[通用算法] Fortran并行计算中OpenMP,MPI及Coarrays之单节点多线程应用比较

[复制链接]

130

帖子

10

主题

0

精华

大师

F 币
617 元
贡献
372 点

贡献勋章管理勋章帅哥勋章元老勋章星光勋章规矩勋章

楼主
发表于 2020-9-11 21:58:12 | 显示全部楼层
[Fortran] 纯文本查看 复制代码
!---------------------------------------
! Intel Core2 Quad @2.83GHz, Windows 10
! Compiler default optimizations
!
! Intel         9 (sec)
!
! GNU          14
! Absooft      21
! G95          21
! Lahey        24
!
! NAG         121
! PGI         127
!
! Silverfrost 331
! Compaq      546
!---------------------------------------
program no_parallel
  implicit none

  integer, parameter :: rk = SELECTED_REAL_KIND(P=15)
  real(kind=rk) :: pi

  integer :: i, n_limit, c1, c2, c_rate, c_max

  !-----------------

  n_limit = 2000000000

  call system_clock(c1, c_rate, c_max)

  pi = 0.0_rk
  do i = 1, n_limit
    pi = pi + (-1)**(i+1) / real( 2*i-1, kind=rk )
  end do
  pi = pi * 4.0_rk

  call system_clock(c2, c_rate)
  IF( c2 < c1 ) c2 = c2 + c_max

  write(*,*) pi, real(c2-c1)/real(c_rate)

end program no_parallel                                 


Intel的效率確實沒得比, GNU/Absoft/G95/Lahey持平, NAG/PGI令人跌破眼鏡, 還是我的測試有問題?
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-1 08:37

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表