软件缓存是不是应该提高 NUMA 机器上的性能
Posted
技术标签:
【中文标题】软件缓存是不是应该提高 NUMA 机器上的性能【英文标题】:Should software cache improve performance on a NUMA machine软件缓存是否应该提高 NUMA 机器上的性能 【发布时间】:2014-05-14 03:44:33 【问题描述】:由于 NUMA 机器没有本地缓存,软件缓存实现会提高需要访问远程内存的任务的性能吗?
【问题讨论】:
【参考方案1】:一些 NUMA 机器确实有本地缓存。如果您有一个多插槽 Opteron 或 Xeon 系统,每个插槽都是一个具有多级缓存的 NUMA 域,有些在内核之间共享,有些则不共享。至少对于 Nehalem 以来的英特尔芯片来说,所有这些缓存都可以存储远程内存引用。这有利于 2-8 个套接字的性能,但对于构建在更长距离缓存一致互连(如 NumaConnect 或 SGI NUMALink)上的大型系统来说,这仍然是一个优势。
话虽如此,如果您被困在一个不连贯的系统上,您需要缩小一堆其他参数的范围,然后才能做出是/否的答案。您的软件一致性协议中每个状态转换的成本是多少?对于您关注的应用程序的跟踪,这些转换多久发生一次?如果转换成本足够低或线路驻留时间足够长,那么肯定会有所帮助……但这取决于实现、底层架构和应用程序本身的行为。
这里有一个小组正在试验一些相关的性能问题:http://www.lfbs.rwth-aachen.de/content/17.html。您可能还会发现一些与 Playstation 3 中使用的 Cell BE 架构相关的有趣工作,例如:http://researcher.ibm.com/files/us-alexe/paper-gonzalez-pact08.pdf。
【讨论】:
以上是关于软件缓存是不是应该提高 NUMA 机器上的性能的主要内容,如果未能解决你的问题,请参考以下文章
Intel Xeon 上的 NUMA:内存区域是不是必须具有相同的大小?