Fortran Coder

查看: 1280|回复: 4

[求助] cputime

[复制链接]

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
发表于 2023-7-8 21:27:05 | 显示全部楼层 |阅读模式
大佬们,我想问问为什么在subroutine里上下call cpu_time计算出来的时间比总时间还长?
这里T2-T3用了462s,程序运行的总时间也出295s。代码是串行的。
222.jpg

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

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

发表于 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吧

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

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

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

发表于 2023-7-9 17:28:36 | 显示全部楼层
你调用了 lapack,如果 lapack 内部是并行的,那执行 lapack 函数的时候就会自动并行。不需要你的代码中有任何并行代码。

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

48

帖子

15

主题

0

精华

熟手

F 币
179 元
贡献
104 点
 楼主| 发表于 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-4-23 16:27

Powered by Tencent X3.4

© 2013-2024 Tencent

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