【问题标题】:Approximating Processing Power from CPU-Time基于 CPU 时间的近似处理能力
【发布时间】:2020-04-06 12:29:31
【问题描述】:

在一个特定的场景中,我发现一个代码花费了 20 个 CPU 年 和 4 个实际月的时间。考虑到所有处理器一直处于 100% 的使用率这一事实,我的目标是估算所使用的处理能力。所以,我的做法如下,

20 CPU 年 = 20 * 365 * 24 CPU 小时 = 175,200 CPU 小时。

现在,1 CPU Year 意味着 1 GFLOP 机器工作 1 个真实小时。这意味着,在这种情况下,完成的工作是 1 GFLOP 机器工作 175,200 实际小时。但实际上它需要 4 * 30 * 24 = 2,880 个实际小时。因此,大约 175,200/2,880 =(大约)61 台 GLFOP 机器。

我的问题是我是在正确地进行近似计算还是根据上面给出的计算误解了某些特定术语?还是我将 GFLOPS 和 GFLOP 混合在一起?

Definitions

【问题讨论】:

    标签: performance cpu cpu-speed flops


    【解决方案1】:

    我的问题是,根据上面给出的计算,我是正确地进行近似还是误解了某些特定术语?

    “100% 使用率”可能意味着 CPU 花费 20% 的时间无所事事地等待数据传输到 RAM 或从 RAM 传输(和/或分支错误预测或其他停顿),其 10% 的时间运行速度比正常速度快因为其他 CPU 实际上什么都不做,并且由于电源/温度管理原因,其 15% 的时间运行速度比正常速度慢;并且(取决于您从哪里获得“100% 使用率”统计信息)“100% 使用率”可能会更加令人困惑(例如 http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html)。

    取决于上下文; GFLOPS 要么是“在实践中永远不会发生的完美条件下的理论最大值”(毫无价值的营销炒作);或者直接测量忽略 CPU 所做的大部分工作的特定情况(所有涉及整数、所有控制流、所有数据传输、所有内存管理......)

    在一个特定的场景中,我发现一个代码花费了 20 个 CPU 年和 4 个实际月的时间。我的目标是估算所使用的处理能力。

    从此;您可能(或可能不会)说“由于无锁算法重试和/或无法提交的事务,CPU 所做的大部分工作都被丢弃了;并且(部分是因为瓶颈是 RAM 带宽,部分是因为SMT 在这个系统上的工作方式)如果使用一半的 CPU,速度会提高 4 倍。”

    TL;DR: 近似处理器能力只是混淆您开始使用的(更有用的)信息的一种不方便的方法(例如,在特定硬件上运行的特定代码正在处理特定的数据恰好需要 4 个月的实时时间)。

    您的计算

    是的;您正在混合 GFLOP 和 GFLOPS(例如 GFLOPS = GFLOP 每秒;而“1 GFLOP 机器”是可以在无限时间内执行十亿次浮点运算的计算机,即每台计算机),以及网页你链接到的是同样的错误(例如,当它应该说“a 1 GFLOPS reference machine”时说“a 1 GFLOP reference machine”)。

    请注意,对于您正在执行的计算,无需关心 GFLOPS 或 GFLOP:如果某件事本应花费 20 个“参考 CPU 年”而实际花费了 4 个月(或 4/12 年);那么您会说您的硬件相当于“20 / (4/12) = 60 个参考 CPU”。当然,这非常愚蠢,如果说您的硬件碰巧达到了 60 GFLOPS,而不必理会误导性的“参考 CPU”废话,这会更有意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      • 2014-08-03
      • 2019-03-22
      • 1970-01-01
      • 2016-12-25
      相关资源
      最近更新 更多