0

私はこのコードを持っておりMTMDFortran ランタイム ライブラリ オプションを使用してコンパイルしました。私が得るものは

MD で 10 回実行: 平均 5.29 秒

MTで10ラン:平均6.5秒

誰でもこの違いについて考えがありますか? この場合、結果は同じはずだと思いますよね?

プログラム実行
  暗黙的ななし

  実数 x,y
  実数*8 t1,t2

  整数 i

  cpu_time(t1) を呼び出す

  do i=1,1000000000
    x=sin(0.1)
    y=cos(0.2)
    x=asin(0.2)
    y=アコス(0.5)
    x=tan(1.2)
  遠藤

  cpu_time(t2) を呼び出す

  プリント *,t2-t1
プログラム終了
4

1 に答える 1

1

MT は Fortran ライブラリに静的にリンクされています。MD は動的にリンクされます。MT を使用してプログラムを配布する場合は、プログラムを提供するだけで済みます。MD では、プログラムと、プログラムが使用する Fortran DLL およびそれらの DLL が使用する DLL を提供する必要があります。

プログラムを実行すると、依存関係を確認できます ( http://www.dependencywalker.com/から)。MT バージョンをドロップして、使用する DLL を確認するだけです。次に、MD バージョンをドロップして、使用する DLL を確認します。

于 2013-03-22T20:31:54.447 に答える