gpt4 book ai didi

c - OpenMP time 和 clock() 给出两个不同的结果

转载 作者:行者123 更新时间:2023-11-30 16:32:36 28 4
gpt4 key购买 nike

我有通过 OpenMP 并行化的顺序代码。我已经放入了相应的编译指示并进行了测试。我通过检查主函数中花费的时间来衡量性能增益。

奇怪的是通过cpu_time()omp_get_wtime()计算的耗时是不同的。为什么?

根据 cpu_time() 计算的耗时与顺序时间类似。

计算开始之前:

ctime1_ = cpu_time();
#ifdef _OPENMP
ctime1 = omp_get_wtime();
#endif

计算结束后:

ctime2_ = cpu_time();
#ifdef _OPENMP
ctime2 = omp_get_wtime();
#endif

cpu_time()函数定义:

double cpu_time(void)
{
double value;
value = (double) clock () / (double) CLOCKS_PER_SEC;
return value;
}

打印结果:

printf("%f - %f seconds.\n", ctime2 - ctime1, ctime2_ - ctime1_);

结果示例:

7.009537 - 11.575277 seconds.

最佳答案

clock 函数测量 cpu 时间,即您在 CPU 上花费的时间,OMP 函数测量执行期间耗时,这是两个完全不同的东西。

您的进程似乎在某个地方被阻塞等待。

关于c - OpenMP time 和 clock() 给出两个不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50079469/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com