我正在解决一个问题,我只想确保我的工作是正确的,所以如果有人可以批评我,将不胜感激。
问题:
正在考虑两个架构改进(A1和A2)。您已经收到一个表格,其中显示了 5 个基准测试中每个基准 (B1-B5) 相对于基本系统的加速;这些加速是与参考计算机的规格比率。
A1: B1 = 1.5, B2 = 4, B3 = 3, B4 = 2, B5 = 5
A2: B1 = 3, B2 = 1.5, B3 = 4, B4 = 4, B5 = 3
鉴于上述信息,应该选择哪种改进?
我的回答如下:
使用基线作为参考,可以使用改进的规格比率 (A1/A2) 的几何平均值来确定哪个更好。
规格比率如下:
S1 = 1.5/3
S2 = 4/1.5
S3 = 3/4
S4 = 2/4
S5 = 5/3
几何平均值如下:(S1*S2*S3*S4*S5)^(1/5),大致相当于 0.96。
因此,A1 大约只有 A2 的 96%,应该选择 A2。
再一次,我只是想看看我的想法是否正确。任何帮助,不胜感激。
编辑1:使用麦基的方法论
以基准标记的基本速度为例,A0 的基本速度如下:
B1=B2=B3=B4=B5=1
因此,Base 与 A1 (A0/A1) 的规格比的几何平均值为:
((1/1.5) * (1/4) * (1/3) * (1/2) * (1/5))^ (1/5) = 0.35
基座与 A2 (A0/A2) 的规格比的几何平均值为:
((1/3) * (1/1.5) * (1/4) * (1/4) * (1/3))^ (1/5) = 0.34
但是,将此处(基数/A1)与(基数/A2)进行比较,您得到 0.35/0.34 = 1.03 意味着 A1 比 A2 慢大约 3%?我的数学在这里不对还是我为 A0 选择了错误的基准? 我最初的方法似乎更简单,最初的问题是什么......
我建议计算两个体系结构改进中每个的几何平均值,然后比较结果两个数字。这样,您也可以将它们中的每一个与基本系统进行比较(基本系统的得分为 1.0)。当然,当你把这两个数字相除时,你会得到与上面相同的结果(A1 比 A2 慢 0.96 倍)。
这样做可以让您用一个数字来表征每台机器的性能。这就是练习的重点。如果你有很多机器要比较,你的方法会困难得多......
Given the above information, which improvement should be chosen?
这是一个有趣的问题,但我觉得所提供的信息还不够。一方面,对于系统用户来说更重要的是 - 他是否想最大限度地减少执行一批任务所需的总时间?或者,也许他关心批处理中最长的任务需要多少时间,而且不能太长(实时系统?或者他关心批次中最短的任务时间——因为他在和别人竞争先解决它,只有第一个解决方案得到奖励(竞争性梅森素数搜索)?
此外,如果我用以下新信息补充上述信息:
Benchmarks B1,B3-B5 represent tasks that happen just 0.01% of the time in production
Benchmark B2 represents the 99.99% of tasks
那么在优化平均情况时,A1 是 A2 的两倍多。目前还不清楚哪种改进更好!
编辑:头脑风暴 - 如果B1-B5代表平均任务并且运行时间的差异被视为随机,也许最好选择标准偏差最小的改进?