似乎 NUMA 有望用于并行编程,如果我没记错的话,当前最新的 cpus 已经内置了对它的支持,比如 i7。
您预计 CLR 会很快适应 NUMA 吗?
编辑:我的意思是支持它,并利用它。
NUMA 是一种硬件架构,不一定需要直接在 CLR 中采用。有关详细信息,请参阅NUMA 常见问题解答。
话虽如此,让软件意识到它的架构是有好处的。CLR 团队的人似乎确实意识到缓存一致性等问题,所以我敢打赌,对此有一些优化。此外,C# 4 中任务并行库中调度程序的设计似乎有望更好地利用 NUMA 架构。
使用 NUMA,您基本上拥有每个处理器的内存控制器。您可以使用 Intel QuickPath 和 AMD HyperTransport。问题是,据我所知,目前无论是 i7 还是 Phenom 都没有支持多个 CPU 的主板。
无论如何,这是非常低级的,与CLR无关。操作系统可以利用它。
从某种意义上说,NUMA 与 CLR 的内存模型是正交的。换句话说,硬件/操作系统有它的访问方法,CLR 有它的内存模型需求,这取决于 CLR 的实现者来让它们一起玩得很好。在实践中,这很困难,目前的实现也存在缺陷。但是由于 CLR 已经在支持 NUMA 的硬件上运行,我不太确定您所说的“尽快适应 NUMA 是什么意思。?
到目前为止,这里的所有答案在强调 NUMA 作为硬件架构方面都是正确的。Joe Duffy 的这篇关于并发和 CLR 的文章是一个有趣的读物。