Fortran Coder

标题: cputime [打印本页]

作者: caimaxwell    时间: 2023-7-8 21:27
标题: cputime
大佬们,我想问问为什么在subroutine里上下call cpu_time计算出来的时间比总时间还长?
这里T2-T3用了462s,程序运行的总时间也出295s。代码是串行的。

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

222.jpg

作者: 楚香饭    时间: 2023-7-8 21:58
可能是你使用了并行的lapack吧
作者: caimaxwell    时间: 2023-7-8 22:11
楚香饭 发表于 2023-7-8 21:58
可能是你使用了并行的lapack吧

啥意思呢?我代码里并不存在并行的内容,是指调用库函数这里,它另外调用了并行的代码?也不对,那时间也不应该长啊.....
作者: 楚香饭    时间: 2023-7-9 17:28
你调用了 lapack,如果 lapack 内部是并行的,那执行 lapack 函数的时候就会自动并行。不需要你的代码中有任何并行代码。

并行代码的 cpu_time 会比实际物理实际长,因为2个核的话,就是物理时间的2倍。8个核就是物理时间的8倍。
作者: caimaxwell    时间: 2023-7-10 13:51
楚香饭 发表于 2023-7-9 17:28
你调用了 lapack,如果 lapack 内部是并行的,那执行 lapack 函数的时候就会自动并行。不需要你的代码中有 ...

十分感谢您的解答,明白您的意思了,但是如何判断调用的lapack里是否使用了并行呢?我调用的blas库,是看blas库是否使用了并行代码吗?




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2