在过去的几个月里,我看到了一些不同的机器,它们都使用CPU运行Linux,这些CPU自发布以来大约有9年的变化,还有一些是最近发布的。较新的CPU从cpubenchmark.net获得了更高的基准数。下面的详细信息包括使用Ubuntu18.04的Linux 4.4.176内核的编译时间。
简单地说,在cpubenchmark.net上得分多倍的CPU肯定不会减少编译次数。事实上,有时也会看到一些微不足道的改进。
改变或修复的瓶颈是什么?Ryzen机器拥有所有最新的硬件设备。或者这是一个综合基准和现实的案例?
这个问题通过编译时比较来讨论基准测试的主题,但没有探讨(缺乏)构建时的可变性。
这意味着编译时间减少了20%以上,从17:25减少到13:44,相差3分41秒。只需禁用超线程功能。
新数据,2019-03-08
编译时间实际上是单调的,但不是线性的,直到make -j12,用了12:46和十几个进程。然后,编译时间缓慢而单调地增加到make -j24的最后一次运行。在这些测试中,超线程被关闭了。
不管瓶颈是什么,都要经过12个并行线程。
新数据- 2019-03-27
在调优X.M.P.内存配置文件(但仍然使用单通道访问)之后,时间减少,直到16个线程的最小值达到10:08.5;线程数量与内核相同(未启用HT )。除了一个例外,编译时间在32个线程时缓慢地增加到10:41。
启用双通道内存后,17个线程的次数减少到6:47.5。在此之后,时间在20个线程上来回摆动,至少为6:46.6。这可能是偶然的,很可能不是达到最低限度点的最后一点。在这种情况下,最多只测试了24个线程。
内存似乎是一个巨大的因素,也是这个处理器的瓶颈。在优化配置内存后,在问题上抛出更多的处理线程似乎没有多大帮助或阻碍。
发布于 2019-03-21 02:09:08
也许,这更多的是硬件问题,而不是软件工程问题。
现代BIOS中有一个名为X.M.P的内存设置,默认情况下,这个设置是主板支持的内存的最低公分母。要充分利用已安装的内存,必须进入BIOS并设置X.M.P.Profile。在这种情况下,除了默认设置之外,似乎只有一个配置文件可用。
另一个问题是设置双通道内存访问与单通道内存访问。这将需要使用手册来确定如何安装内存以启用此设置。
使用不同软件进行的测试构建比以前的默认设置节省了20%以上的构建时间。因此,我们有希望在未来取得更好的表现。
调好后,我将报告最后的数字,以供比较。
2019-03-27结论
内存是这个CPU的主要瓶颈。有关更多细节和结论,请参见问题。
这个问题没有引起太多的兴趣,所以这可能是最后一个条目,除非有人专门问了一个问题。
发布于 2019-02-27 02:44:34
就在我头顶上:
总之,这很复杂。像编译这样的高度复杂的任务并不总是通过基准很好地建模。您必须考虑其他影响整体性能的现实因素,如在硬盘上查找时间和编写代码的方式。
有关这方面的一个简单但相当引人注目的示例,请参见这里。
发布于 2019-02-27 15:44:35
编译大型项目可能需要读取数百个源文件,并编写数百个中间(对象)文件。然后再读取所有这些中间文件以编译已完成的可执行文件或库。
通常,最大的瓶颈不是CPU,而是磁盘子系统(磁盘驱动器本身和磁盘控制器)。
多核或超线程CPU可以通过向磁盘子系统发送多个同时读或写请求来进一步混淆系统,每个请求都要求不同的文件。如果磁盘具有较高的查找时间,那么与单个核心CPU相比,这甚至会降低性能。
当文件位于远程服务器上并映射为本地计算机上的驱动器时,磁盘性能的影响可能特别严重。
https://softwareengineering.stackexchange.com/questions/387752
复制相似问题