最大限度地减少NUMA架构中的核心间通信

时间:2013-02-03 12:03:22

标签: multicore intel nehalem

任何人都可以强调在NUMA多核架构中减少核间通信的方法。案例研究英特尔NEHALEM微架构。

1 个答案:

答案 0 :(得分:3)

Nehalem处理器使用QuickPath Interconnect (QPI)进行处理器间/节点/包通信。在NUMA system中,每个节点都有自己的本地内存,该内存与系统中的其他节点共享。当程序的working set适合L1缓存并且是只读的时,那么NUMA节点拥有内存的次数并不重要。当核心获得高速缓存未命中且内存由另一个节点拥有时,NUMA节点之间的通信是必要的。但是,这并不意味着访问另一个节点拥有的内存的速度较慢,这取决于另一个节点是否将其缓存在与其本地内存关联的缓存中,英特尔称之为最后一级缓存(LLC)。通过核心访问该节点本地的内存位置比访问另一个节点拥有的内存更快,但前提是它在两个节点上的LLC中都未命中。在另一个节点上访问LLC的内存比在本地节点上访问内存要快得多,这是因为内存比CPU慢得多,并且QPI针对这种通信进行了优化。大多数系统都不打算尝试减少处理器间通信,因为正如您可以想象的那样,这不是一个简单的问题 - 它需要设置线程与内核的亲和性,将该线程的内存工作集的亲和性设置为本地内存那节点。您可以在Drepper Ulrich's paper中详细了解此信息,搜索NUMA。在本文中,Ulrich将QPI称为通用系统接口(CSI),它是公布之前的QPI的英特尔名称。