首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多芯/超线程上的CPU时间

多芯/超线程上的CPU时间
EN

Stack Overflow用户
提问于 2013-12-13 11:27:36
回答 2查看 657关注 0票数 1

我需要观察进程在多芯/超线程中所花费的CPU时间。假设一个Xeon,Opteron等。

让我们假设我有4个核心,超线程,意思是8个‘虚拟’核心。让X程序,我想运行一个观察CPU的时间,它需要多少时间。

  • 如果我在cpu中运行进程X,我得到CPU时间A。假设A大于5分钟。
  • 如果运行8个相同进程X的副本,我将得到CPU乘以B1,B2…、B8.
  • 如果我运行相同进程X的7个副本,我将得到CPU乘以C1,C2…、C7.
  • 如果我运行4个相同进程X的副本,我将得到CPU乘以D1,D2…、D4.

问题:

  1. 数字A,Bi,Ci,Di之间有什么关系?
  2. 比小吗?多少钱?那小弟呢?
  3. 他们之间的时代不一样吗?那小弟呢?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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.12之间可能有所不同(某些处理器子部件是超线程的,而另一些则不是)。它是从类似的统计数据中计算出来的,根据一个私人论坛的说法,我在这里使用问题的符号: 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的平均值。

代码语言:javascript
复制
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)。

票数 1
EN

Stack Overflow用户

发布于 2021-09-01 16:34:46

到2021年,在运行多个实验时,可能会有很大的变化。例如,50%以上的差异。

两个黄金标准:

  • 以单核模式运行
  • 禁用超线程。

为查明这一问题:

  • 多次运行相同的算法。

从理论上讲,这可以在运行实验时使用:

  • 每项实验运行k次。

然而,当比较运行时间时,这是不完整的,因为一组K可以在无法与其他K实验相比的条件下完成。

为了减轻这种情况:

  • 每项实验运行k次。
  • 随机化实验的顺序。

对于出版目的,这还不够,但它可能是有用的快速周转,即使在k= 2。

H/T:在规划界的闲置空间中讨论,与会议ICAPS有关:https://www.icaps-conference.org

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20565404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档