内存速度/架构对 Pardiso 缩放的影响

计算科学 并行计算 基准测试
2021-12-03 01:13:17

我正在使用一个程序,该程序利用 PARDISO 求解器作为英特尔数学内核库的一部分。我目前正在决定在一台新计算机上运行模拟。关于该程序的基准测试如何跨系统传输,我有一两个问题。

我当前的机器在 2.3GHz 下运行较旧的双四核至强 (E5345),在 2 个通道中运行 DDR2 RAM 在 667 MHz。在这个系统上,使用 8 个线程运行,内存中的程序绑定了小案例(3000 个左右,大约是通常大小的 1/3),运行在 CPU 上限的 3/4 左右,而较大的案例在 1/2 左右触底cpu 上限。在购买新系统之前,我没有任何方法可以在更具代表性的系统上对其进行基准测试。

我可以很容易地在我当前机器上的 1、2、4 和 8 核的较小情况下对我的代码进行基准测试,这就是我目前正在做的事情。我将使用该信息来决定未来计算机中速度较慢的内核还是较慢的内核。问题是,在进入新计算机时,将升级到 1333 MHz、4 个通道和沙桥架构的 RAM。我听说 Sandy Bridge 架构在内存吞吐量基准测试中非常强大,但无法找到任何将其与旧架构进行比较的基准测试。

当我升级到具有更快 RAM 和架构的 12 或 16 个具有可比时钟速度的内核时,我是否有任何理由期望我的模型从内存限制变为 CPU 限制?我知道由于求解器性能对模型的高度依赖性,这可能很难回答,但我希望有人有跨架构基准测试的经验,并且可以对预期的结果提供一些见解。

2个回答

自从提出这个问题后,我购买了一台新机器并在其上运行了相同的代码集。新机配备 2 个 Intel Xeon E5-2640 2.50GHz,共 12 个内核,以及 4 个 1333MHz 通道的 64 GB DDR3 RAM。无论内核数量如何,我们看到两台机器在相同问题上的速度大约提高了 3 到 4 倍。在较小的问题上,我们还看到新机器在较大缓存有优势的问题大小上略有加速,但这并不容易利用,因为其他因素决定了我们的问题大小。我相当有信心地说加速几乎完全是由于更高的内存带宽。在 1 核与 12 核上运行相同的情况,这段代码只能看到大约 20% 的加速。

我对此的立场是,你把时间花在了错误的话题上。快速和慢速核心之间的原始 FPU 容量差异将是 10% 或 15%,但实际上您可能会看到 5% 的差异。内存架构也是如此。换句话说,除非您进行非常长的计算,否则如果您拥有相同数量的核心,您可能不会看到不同速度的核心之间有很大差异。

另一方面,我发现内核越多越好(TM),因为它们也可以在其他环境中使用——例如并行编译东西。最后,您可能只是想花时间分析您的代码,看看哪里有瓶颈:找到一个可以节省程序总运行时间 5% 的地方通常不是很困难。