Fortran Coder

查看: 35914|回复: 11
打印 上一主题 下一主题

[求助] 为什么Fortran里的时间函数CPU_TIME不准确?

[复制链接]

6

帖子

2

主题

0

精华

新人

F 币
27 元
贡献
16 点
跳转到指定楼层
楼主
发表于 2014-6-12 06:27:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的做法
[Fortran] 纯文本查看 复制代码
call cpu_time(tic)
!! my code
call cpu_time(toc)
print * , toc - tic

人工计时大约是15分钟,但CPU_TIME给的结果是5900多秒。

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2014-6-12 06:48:05 | 只看该作者
因为这是 CPU 时间,而不是真实的消耗时间。

这两者有一定的差别,主要原因是:
1.操作系统会根据不同应用程序(进程)的需求来分配合适的CPU时间。你可以通过任务管理器来查看不同进程的CPU占有率。
2.如果程序具有多线程,则CPU时间会考虑多个线程的CPU占有率的总和。

CPU时间,更适合描述代码工作量。而消耗时间,往往与当时计算机运行环境(如其他线程或进程)有关。

如果你要知道具体的消耗时间,可使用 SYSTEM_CLOCK

6

帖子

2

主题

0

精华

新人

F 币
27 元
贡献
16 点
板凳
 楼主| 发表于 2014-6-12 07:47:50 | 只看该作者
chuxf 发表于 2014-6-12 06:48
因为这是 CPU 时间,而不是真实的消耗时间。

这两者有一定的差别,主要原因是:

多谢!我现在改用date_and_time()了,感觉还行。

131

帖子

34

主题

0

精华

宗师

F 币
1602 元
贡献
813 点
地板
发表于 2014-6-12 09:00:44 | 只看该作者
本帖最后由 andy8496 于 2014-6-12 09:13 编辑
chuxf 发表于 2014-6-12 06:48
因为这是 CPU 时间,而不是真实的消耗时间。

这两者有一定的差别,主要原因是:

我能不能这么理解:
程序实际的运行时间<=CPU_TIME统计的时间?

个人感觉CPU_TIME更华丽,因为统计可以精确到小数点后若干位,
另外,能否给个 SYSTEM_CLOCK的例子啊?看了下子程序的解释,啰里巴嗦的。

100

帖子

0

主题

0

精华

专家

F 币
550 元
贡献
291 点

规矩勋章元老勋章

QQ
5#
发表于 2014-6-12 09:35:33 来自移动端 | 只看该作者
实际时间大于cpu时间。因为还包括其他进程。例子可以看帮助文档。

100

帖子

0

主题

0

精华

专家

F 币
550 元
贡献
291 点

规矩勋章元老勋章

QQ
6#
发表于 2014-6-12 09:38:27 来自移动端 | 只看该作者
你的是多线程或者是并行程序?

66

帖子

5

主题

2

精华

版主

院士级水师

F 币
481 元
贡献
273 点

管理勋章帅哥勋章爱心勋章规矩勋章

QQ
7#
发表于 2014-6-12 22:02:50 | 只看该作者
本帖最后由 岸边的鱼 于 2014-6-12 22:27 编辑

弱弱的问一句:这个cpu——time和你的计算机性能之间有没有关系?同样的程序在不同的计算机执行的话,计算出来的cpu_time是一样的吗?感觉应该是不一样的吧?
科研穷三代,读博毁一生

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

8#
发表于 2014-6-12 22:17:46 | 只看该作者
岸边的鱼 发表于 2014-6-12 22:02
从来就没使用过这个函数,弱弱的问一句:这个cpu——time和你的计算机性能之间有没有关系?同样的程序在不 ...

有关系,不一样。

66

帖子

5

主题

2

精华

版主

院士级水师

F 币
481 元
贡献
273 点

管理勋章帅哥勋章爱心勋章规矩勋章

QQ
9#
发表于 2014-6-12 22:24:58 | 只看该作者
本帖最后由 岸边的鱼 于 2014-6-12 22:27 编辑
chuxf 发表于 2014-6-12 22:17
有关系,不一样。
再弱弱的追问一句,“同样的程序在同样的电脑上运行,得到的cpu_time就永远是一样的吗?
科研穷三代,读博毁一生

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

10#
发表于 2014-6-12 22:30:02 | 只看该作者
岸边的鱼 发表于 2014-6-12 22:24
再弱弱的追问一句,“同样的程序在同样的电脑上运行,得到的cpu_time就永远是一样的吗? ...

也可能不一样。仔细看上面的帖子及回复
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-23 21:39

Powered by Tencent X3.4

© 2013-2024 Tencent

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