gpt4 book ai didi

linux - 在没有其他后台进程的情况下计算程序给出的确切时间

转载 作者:太空宇宙 更新时间:2023-11-04 12:47:12 25 4
gpt4 key购买 nike

我开始学习并行编程,为了计算性能我应该知道程序寻找的准确时间。

所以我想测量我的 C 程序在 Linux 下搜索的时间量,但它只显示了一些不同的答案。

在我看来,它应该与其他进程有关,顺便说一句,我正在使用这个指令:

double start ,end;
start = omp_get_wtime();
.
.
.
end = omp_get_wtime();
result = end- start;

提前谢谢你。

最佳答案

为了进行准确的基准测试,必须尽可能地抑制外部影响。如果您的系统有足够的 CPU 内核,您可以使用内核参数隔离其中的一些内核,从而防止任何其他进程和/或内核任务使用这些内核:

... isolcpus=3,4,5 nohz_full=3,4,5 rcu_nocbs=3,4,5 ...

这些参数将几乎完全隔离 CPU 3、4 和 5,默认情况下阻止操作系统调度程序在它们上运行进程(isolcpus),内核 RCU 系统运行它们的任务(rcu_nocbs),并防止周期性调度程序计时器滴答 (nohz_full)。确保您没有隔离所有 CPU!

您现在可以使用 taskset -c 3-5 ... 或 OpenMP 运行时内置的机制,例如 export GOMP_CPU_AFFINITY="3, 4,5" 用于 GCC。请注意,即使您不使用专用的隔离 CPU,只需使用 export OMP_PROCBIND=true 或通过设置 GOMP_CPU_AFFINITY(KMP_AFFINITY)打开线程固定对于英特尔)应该减少运行时差异。

关于linux - 在没有其他后台进程的情况下计算程序给出的确切时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38373179/

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