Fortran Coder

查看: 1626|回复: 4
打印 上一主题 下一主题

[求助] cputime

[复制链接]

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
跳转到指定楼层
楼主
发表于 2023-7-8 21:27:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
大佬们,我想问问为什么在subroutine里上下call cpu_time计算出来的时间比总时间还长?
这里T2-T3用了462s,程序运行的总时间也出295s。代码是串行的。

222.jpg (94.09 KB, 下载次数: 202)

222.jpg
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

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

沙发
发表于 2023-7-8 21:58:19 | 只看该作者
可能是你使用了并行的lapack吧

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
板凳
 楼主| 发表于 2023-7-8 22:11:00 | 只看该作者
楚香饭 发表于 2023-7-8 21:58
可能是你使用了并行的lapack吧

啥意思呢?我代码里并不存在并行的内容,是指调用库函数这里,它另外调用了并行的代码?也不对,那时间也不应该长啊.....

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

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

地板
发表于 2023-7-9 17:28:36 | 只看该作者
你调用了 lapack,如果 lapack 内部是并行的,那执行 lapack 函数的时候就会自动并行。不需要你的代码中有任何并行代码。

并行代码的 cpu_time 会比实际物理实际长,因为2个核的话,就是物理时间的2倍。8个核就是物理时间的8倍。

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
5#
 楼主| 发表于 2023-7-10 13:51:24 | 只看该作者
楚香饭 发表于 2023-7-9 17:28
你调用了 lapack,如果 lapack 内部是并行的,那执行 lapack 函数的时候就会自动并行。不需要你的代码中有 ...

十分感谢您的解答,明白您的意思了,但是如何判断调用的lapack里是否使用了并行呢?我调用的blas库,是看blas库是否使用了并行代码吗?
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

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

Powered by Tencent X3.4

© 2013-2024 Tencent

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