![类似工作站 CPU 上的性能差异很奇怪](https://linux22.com/image/1500932/%E7%B1%BB%E4%BC%BC%E5%B7%A5%E4%BD%9C%E7%AB%99%20CPU%20%E4%B8%8A%E7%9A%84%E6%80%A7%E8%83%BD%E5%B7%AE%E5%BC%82%E5%BE%88%E5%A5%87%E6%80%AA.png)
我正在一个集群上运行一些科学模拟代码,该集群的节点包含 Intel Xeon E5-2630 v3 CPU。该集群使用 CentOS 7.2.1511,我使用的 gcc 版本是 5.1.0,汇编程序是 2.23.52.0.1-55。
现在,我尝试在朋友的工作站上运行相同的代码,该工作站有两个 Xeon E5-2697 v3 CPU。它安装了 Ubuntu 16.04 LTS。在这台机器上,我的代码运行速度比在集群上慢 2-2.5 倍。我期望至少与集群上的性能相同。
奇怪的是,在朋友的工作站上,我运行的 30 个作业中,有 2 个的运行速度是集群上的 3 倍(或 1.5 倍)。系统上有 2x28 个线程,所以我认为这与此有关,但我的朋友也在运行一些作业(总共有 32 个)。
我们还对这两个系统上的汇编代码进行了比较,尽管使用了不同版本的 gcc,但代码几乎完全相同。该代码也不是 IO 密集型的,仅使用约 5MB 的 RAM。
什么原因可能导致如此大的性能差异?我该怎么做才能找出导致这种情况的原因?
编辑: 还这里您可以找到两个 CPU 的性能比较。由于我的代码是单线程的,因此单线程评级在这里更为重要。