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