gpt4 book ai didi

multithreading - SMP 并行的内存管理瓶颈

转载 作者:行者123 更新时间:2023-12-01 06:47:09 25 4
gpt4 key购买 nike

在多种语言(主要是 D 和 Java/Jython)中,我注意到由于内存管理瓶颈,没有明显同步瓶颈的并行程序通常不能很好地扩展到 4 个或更多内核。我知道线程本地分配器缓解了这个问题,但大多数垃圾收集器实现仍然需要停止世界。垃圾收集不是令人尴尬的并行(共享状态必须经常更新),因此使用并行收集器并不能完全解决问题。在手动内存管理的情况下,即使分配主要来自线程本地分配器,仍然必须释放内存,可能来自与分配内存不同的线程。

是否有任何语言/运行时/malloc 实现使 SMP 并行的内存管理瓶颈实际上是一个已解决的问题,同时仍然允许传统的共享地址空间多线程?

最佳答案

不。

您所描述的内存管理瓶颈是 SMP 计算机的一个内在特征,尽管不是理想的特征。随着处理器的增加,处理器对内存访问的需求迟早会压倒内存总线,并且处理速度会减慢,或者充其量停止加快速度。

我很惊讶您通常只在 4 个内核上遇到这个问题,过去我使用过 SGI Altix 机器,在这些机器上我的一些代码可以很好地扩展到 256 个内核甚至超过 256 个内核。但是,无论是您的代码在 4 核处遇到瓶颈还是我的 256 核或其他代码在 2048 处(如果您能找到 2048 核 SMP),总会有瓶颈。

关于multithreading - SMP 并行的内存管理瓶颈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3882512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com