0

我运行了流内存带宽基准测试(https://www.cs.virginia.edu/stream/) 在具有 10 个处理器的计算机上。基准测试表明,在 3 或 4 个处理器之后,加速比稳定在 3 倍左右。这个结果对 MPI 代码的性能有什么实际意义?为简单起见,假设程序仅在这台多核机器上本地运行多个进程。这是否意味着如果您正在运行一个内存访问密集型程序,那么即使您使用所有内核,您也无法获得超过 3 倍的加速?如果你运行的程序不是内存访问密集型的,理论上你能获得完整的 10 倍吗?如果您同时运行两个或三个内存访问密集型程序,每个程序都使用三个处理器,它们每个都能够获得 3 倍的加速,还是它们会在同时从 RAM 中提取时相互干扰并减慢速度?

4

1 回答 1

1

加速是关于代码中存在多少并行性。此外,任何资源也可能成为瓶颈,具体取决于应用程序的类型。如果您的应用程序是内存密集型的,那么您将受到内存带宽的限制。如果它不是内存密集型的,并且它是高度并行的(以蒙特卡洛采样为例),那么您将接近您的核心的完全加速。

回答您的最后一个问题(多内存密集型):归根结底,我们依靠内存控制器进行读/写。所以这取决于内存库和物理页面的分配位置。因此,您提到的两种情况中的任何一种都可能发生。

于 2017-04-03T06:38:43.440 回答