所以我知道 clock() 测量时钟周期,因此不太适合测量时间,而且我知道有像 omp_get_wtime() 这样的函数来获取挂墙时间,但是挂墙时间的变化让我感到沮丧,所以很多,并且想知道是否有某种方法可以测量不同的时钟周期(即使在其中执行了多个线程,也只有一个周期)。它必须是相对简单/原生的东西。谢谢

最佳答案

如果您使用的是我测试过的 x86 并且似乎在我的系统 (mac) 上运行良好,请参阅 FreeMemory 对 this question 的 RDTSC 的回答,但请参阅我对 this question 的回答。另见对 RDTSC here 的批评。

但是,将细节级别降低到太低通常是不值得的,计算机需要做的其他零碎工作将耗尽时钟周期,因此它会根据负载而变化。我发现 omp_get_wtime() 足够了,但我需要将我的代码放在一个额外的循环中,以确保它需要大约一秒钟的时间来确保从运行到运行的结果一致。

关于parallel-processing - 有没有像 clock() 这样的东西更适合并行代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2467132/

10-11 06:46