Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran cpu_time给出的值在很短的时间内不会改变_Fortran - Fatal编程技术网

Fortran cpu_time给出的值在很短的时间内不会改变

Fortran cpu_time给出的值在很短的时间内不会改变,fortran,Fortran,我想检查计算机计算一个函数需要多少时间。为此,我想比较调用我的函数前后cpu_time子例程给出的值。令我惊讶的是,前后的值是相同的,就好像执行该函数花费了零时间一样。为了检查它,我创建了一段简单的代码 call cpu_time(time) write(*,*) time do i=1,10000 !simple math equation here end do call cpu_time(time) write(*,*) time 运行程序后,循环前后打印的值完全相同。我的猜测是,系统

我想检查计算机计算一个函数需要多少时间。为此,我想比较调用我的函数前后cpu_time子例程给出的值。令我惊讶的是,前后的值是相同的,就好像执行该函数花费了零时间一样。为了检查它,我创建了一段简单的代码

call cpu_time(time)
write(*,*) time
do i=1,10000
 !simple math equation here
end do
call cpu_time(time)
write(*,*) time

运行程序后,循环前后打印的值完全相同。我的猜测是,系统时钟不够精确,无法显示如此微小的变化,但它真的有意义吗?总而言之,我不知道如何在没有正常工作的情况下测量执行功能所需的时间。

在您得出系统时钟不够精确(可能是这样)的结论之前,请确保您所用时间的操作(a)对现代CPU来说是足够繁重的,需要一秒的可测量分数(O(10^4)简单的数学运算可能不符合条件)和(b)智能编译器不会完全优化代码,因为智能编译器认为代码不会使用循环中运算的结果。显示一些真实的可测试示例。并至少使用双精度时间变量。Cpu_时间滴答率为64或128 hz是典型的。如果需要经过的时间,则使用int64参数的系统时钟更令人满意,但iPort窗口除外,在iPort窗口中,omp\u get\u wtime或Mpi\u wtime可以提供查询性能api的解决方案。