由于 NUMA 机器没有本地缓存,软件缓存实现会提高需要访问远程内存的任务的性能吗?
问问题
69 次
1 回答
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 。
于 2014-05-16T22:02:56.780 回答