我需要观察进程在多芯/超线程中所花费的CPU时间。假设一个Xeon,Opteron等。
让我们假设我有4个核心,超线程,意思是8个‘虚拟’核心。让X程序,我想运行一个观察CPU的时间,它需要多少时间。
问题:
发布于 2013-12-13 12:03:38
数字A,Bi,Ci,Di之间有什么关系?
期待D1=D2=D3=D4=A*1,除非您有L2缓存问题(冲突、故障、.)你会有一个稍大的数字,而不是1。
期待B1=B2=B3=B4=...=B8=A*1.3。根据应用程序的不同,1.3的数量在1.1和2之间可能有所不同(某些处理器子部件是超线程的,而另一些则不是)。它是从类似的统计数据中计算出来的,根据一个私人论坛的说法,我在这里使用问题的符号: D=23秒和A=18秒。非线程进程在没有输入/输出的情况下进行整数计算。确切的应用是检查motivic Steenrod代数中的Adem系数(不知道它是什么;设置是(2n+e,n)和n=20)。
在sevent进程(Cs)的情况下,如果您将每个进程分配到一个核心(在linux上使用/usr/bin/htop ),那么您将有一个进程(例如,C5)具有与A相同的执行时间,而其他进程(在我的示例中是C1、C2、C3、C4、C6、C7)将具有与Ds相同的值。如果您不将进程分配给核心,并且您的进程持续时间足够操作系统在内核之间进行平衡,它们将收敛到C的平均值。
Are times Bi different between them? What about Ci, Di?取决于您的操作系统调度程序及其配置。而/bin/top所显示的来自linux的百分比是作弊的,对于A、Bs、Cs和Ds,它将显示近100%。
要评估性能,不要使用忘了吧 /usr/bin/nettop (以及变体nethogs、nmon、iftop、iptraf)、iotop (和变体iostat、latencytop)、iotop (+colmux)和sar (+sag,+sadf)。
发布于 2021-09-01 16:34:46
到2021年,在运行多个实验时,可能会有很大的变化。例如,50%以上的差异。
两个黄金标准:
为查明这一问题:
从理论上讲,这可以在运行实验时使用:
然而,当比较运行时间时,这是不完整的,因为一组K可以在无法与其他K实验相比的条件下完成。
为了减轻这种情况:
对于出版目的,这还不够,但它可能是有用的快速周转,即使在k= 2。
H/T:在规划界的闲置空间中讨论,与会议ICAPS有关:https://www.icaps-conference.org
https://stackoverflow.com/questions/20565404
复制相似问题