升级到 64 位操作系统对我有帮助吗?

计算科学 并行计算
2021-12-16 15:57:10

假设我正在运行 Intel MKL(BLAS、LAPACK),如果我在 32 位或 64 位操作系统上运行它,性能会有什么不同吗?(当然,假设我的硬件保持不变)。

我的处理器是 64 位 Intel i3。但我目前正在运行 Debian 32 位。(长话短说为什么)

我的大部分工作是共享内存并行化。

另外,我知道 3 GB 以上的 RAM 在 32 位上是无用的,但假设内存并不那么重要。

我们的几台运行 Debian 32 位(2 GB RAM)的旧计算机已升级到 4 GB RAM。它在我们的系统规格中显示为 2.9 GB。

我们想知道擦除操作系统、安装新操作系统、在新系统上安装我们所有的软件、更改所有自动化脚本(英特尔 MKL 链接线顾问)的链接线并在此浪费 2 天是否有意义?

tl;dr:如果我运行 64 位操作系统(和 64 位 MATLAB/Intel MKL)而不是 32 位操作系统,性能会不会有所提升?

1个回答

TL;DR:这一切都取决于,你需要对其进行基准测试,但除了内存之外,最大的区别是你有两倍多的寄存器,两倍大的指针,如果更新的软件仅限于一种架构,它可能将是 64 位(暂时)。


超级用户有一篇关于 32 位和 64 位操作系统的区别及其对性能的影响的好帖子。忽略有关寻址更多内存的部分(根据您的要求),指针的大小是原来的两倍(32 位为 4 个字节,64 位为 8 个字节),因此您可以在缓存中存储一​​半的指针,但您有两倍许多寄存器可以使用。如果您的计算瓶颈是寄存器内存,那么拥有两倍的内存可能会有很大帮助,并且您可能会看到显着的性能提升(顶级超级用户的回答声称多达 30% 来自发布者自己的经验)。

但是,如果您查看Axel Köhlmeyer关于分子动力学代码的演示文稿,答案并不那么清楚。他声称他没有看到他使用的代码的 32 位和 64 位版本之间的性能差异,尽管我发现他提供的图表令人困惑,因为他似乎并没有真正比较 32 位和 64 位版本他的代码。

Wade Spiers在 UCF 读研究生时写了一份报告,内容是关于 SPEC2000 基准测试在 32 位和 64 位操作系统上的性能差异。64 位操作系统的整体性能不一定更高。在某些任务中,程序在 32 位操作系统上执行得更快。

最好的建议是进行基准测试,这样您就可以确定性能提升会是什么。它需要您做一些工作,并且您可能没有时间进行基准测试。如果您选择进行基准测试,我建议使用虚拟机作为此类比较的测试平台,以便您可以轻松地在同一台机器上的客户操作系统之间切换,同时进行最少的设置和拆卸工作。