Fortran中的dtime 和etime 库函数
(2014-05-18 13:44:32)
标签:
fortrandtimeetime |
分类: Fortran |
1.4.8 dtime 和 etime:已用的执行时间
这两个函数的返回值都是已用时间(如果为 -1.0,表示出现错误)。返回的时间以秒数表示。
缺省情况下,Fortran 95 使用的
1.4.8.1 dtime:自上次调用 dtime 后已用时间
对于
-
第一次调用:自开始执行后已用时间
-
后来调用:自上次调用
dtime 后已用时间 -
单处理器:CPU 占用的时间
-
多处理器:所有 CPU 占用时间总和,该数据没有什么用,这时可改用
etime。
注 –在并行循环中调用
dtime 会得到不确定的结果,这是因为参与循环的所有线程都共用已用时间计数器。
该函数的调用方式如下所示:
e |
|||
tarray |
real(2) |
输出 |
e=
-1.0:错误:tarray e≠
-1.0:没有错误,tarray(1) |
返回值 |
real |
输出 |
e= -1.0:错误 e≠
-1.0:tarray(1) |
示例:dtime(),单处理器:
demo% cat tdtime.f real e, dtime, t(2) print *, ’elapsed:’, e, ’, user:’, t(1), ’, sys:’, t(2) do i = 1, 10000 k=k+1 end do e = dtime( t ) print *, ’elapsed:’, e, ’, user:’, t(1), ’, sys:’, t(2) end demo% f95 tdtime.f demo% a.out elapsed: 0.0E+0 , user: 0.0E+0 , sys: 0.0E+0 elapsed: 0.03 , user: 0.01 , sys: 0.02 demo% |
1.4.8.2 etime:自开始执行后已用时间
对于
-
单处理器执行-调用进程的 CPU 时间
-
多处理器执行-处理程序时的挂钟时间
如果环境变量
该函数的调用方式如下所示:
e |
|||
tarray |
real(2) |
输出 |
e=
-1.0:错误:tarray e≠
-1.0:单处理器:tarray(1)
多处理器:tarray(1) |
返回值 |
real |
输出 |
e= -1.0:错误 e≠
-1.0:tarray(1) |
请注意,初次调用
示例:etime(),单处理器:
demo% cat tetime.f real e, etime, t(2) e = etime(t) ! Startup etime - do not use result do i = 1, 10000 k=k+1 end do e = etime( t ) print *, ’elapsed:’, e, ’, user:’, t(1), ’, sys:’, t(2) end demo% f95 tetime.f demo% a.out elapsed: 0.02 , user: 0.01 , sys: 0.01 demo% |
另请参见