Fortran Tip集

前へ   上へ   次へ

8 移植性のある時間計測の方法

計算プログラムにおいては、処理にどれだけ時間がかかったのかを測りたい場合があります。 ここではFortranの標準に準拠した形での時間計測の方法を説明します。

経過時間を測定するには、組込み手続system_clockが利用可能です。

[ sys-clock.f90 ] - 経過時間計測のサンプル

program sys_clock
  implicit none
  integer t1, t2, t_rate, t_max, diff
  call system_clock(t1)   ! 開始時を記録
  !
  ! 計算コード
  !
  call system_clock(t2, t_rate, t_max)   ! 終了時を記録
  if ( t2 < t1 ) then
    diff = (t_max - t1) + t2 + 1
  else
    diff = t2 - t1
  endif
  print "(A, F10.3)", "time it took was:", diff/dble(t_rate)
end program sys_clock

出力例:
time it took was:     1.576

CPU時間を計測するには組込み手続cpu_timeが利用可能です。 (cpu_timeはFortran95で新たに追加された関数です)

[ cpu-time.f90 ] - CPU時間計測のサンプル

program cputime
  implicit none
  real :: t1, t2
  call cpu_time( t1 )
  !
  ! 計算コード
  !
  call cpu_time( t2 )
  print *, "cpu time:", t2-t1, "seconds."
end program cputime

出力例:
 cpu time:   0.7800050 seconds.



前へ   上へ   次へ
関連情報
ご案内
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks