英特尔Fortran中MD和MT的区别

时间:2013-03-19 12:38:54

标签: performance fortran intel-fortran

我有这个代码,我在Fortran运行时库选项中用MTMD编译它。我得到的是

MD运行10次:平均5.29秒

使用MT进行10次运行:平均为6.5秒

有人对这种差异有所了解吗?我认为在这种情况下结果应该是相同的,对吗?

program perform
  implicit none

  real x,y
  real*8 t1,t2

  integer i

  call cpu_time(t1)

  do i=1,1000000000
    x=sin(0.1)
    y=cos(0.2)
    x=asin(0.2)
    y=acos(0.5)
    x=tan(1.2)
  enddo

  call cpu_time(t2)

  print *,t2-t1
end program perform

1 个答案:

答案 0 :(得分:1)

MT与Fortran库静态链接。 MD是动态链接的。如果您希望通过MT分发您的程序,您只需要提供该程序。使用MD,您需要提供程序及其使用的Fortran DLL以及这些DLL使用的任何DLL。

您可以通过运行程序依赖(来自http://www.dependencywalker.com/)来查看依赖项。只需删除您的MT版本并查看它使用的DLL。然后删除MD版本并查看它使用的DLL。