您预计 CLR 很快就会适应 NUMA 吗?
看起来 NUMA 对于并行编程很有前途,如果我没记错的话,当前最新的 cpu 都内置了对它的支持,比如 i7。
您预计 CLR 很快就会适应 NUMA 吗?
编辑:我的意思是支持它并利用它。
Seems like NUMA is promising for parallel programming, and if I am not wrong the current latest cpus have built-in support for it, like the i7.
Do you anticipate the CLR to adapt NUMA soon?
EDIT: By this I mean having support for it, and taking advantage of it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
NUMA 是一种硬件架构,不一定需要在 CLR 中直接采用。 有关详细信息,请参阅 NUMA 常见问题解答。
话虽如此,让软件感知是有好处的它的架构。 CLR 团队的人员似乎确实意识到缓存一致性等问题,因此我敢打赌对此有一些优化。 此外,C# 4 任务并行库中的调度程序设计似乎有望更好地利用 NUMA 架构。
NUMA is a hardware architecture, not necessarily something that needs adoption in the CLR directly. For details, see the NUMA FAQ.
That being said, there are advantages to making software aware of it's architecture. The folks on the CLR team do seem to be aware of issues with cache coherency, etc, so I would bet that there are some optimizations for this. Also, the design of the scheduler in the task parallel library in C# 4 seems to be promising for taking better advantages of NUMA architectures.
从某种意义上说,NUMA 与 CLR 的内存模型是正交的。 换句话说,硬件/操作系统有其访问方法,CLR 有其内存模型需求,并且由 CLR 实现者来使它们能够很好地协同工作。 在实践中,这是很困难的,并且 当前实现存在缺陷。 但由于 CLR 已经在支持 NUMA 的硬件上运行,我不太确定“尽快适应 NUMA”是什么意思。
In a sense, NUMA is orthogonal to the CLR's memory model. In other words, the hardware/OS has its method of access, the CLR has its memory model demands, and it is up to the CLR implementer to make the to play nice together. In practice, this is difficult, and there are flaws in the current implementation. But as the CLR already runs on hardware supporting NUMA, I'm not really sure what you mean by "adapt NUMA soon.?
到目前为止,这里的所有答案都正确地强调了 NUMA 作为一种硬件架构。 Joe Duffy 撰写的这篇关于并发和CLR。
All the answers here so far are correct in highlighting NUMA as a hardware architecture. An interesting read would be this article by Joe Duffy on concurrency and the CLR.
对于 NUMA,基本上每个处理器都有内存控制器。 通过 Intel QuickPath 和 AMD HyperTransport,您就可以实现这一点。 问题是,据我所知,目前无论是 i7 还是 Phenom 都没有主板可以支持多个 CPU。
无论如何,这是非常低级的,与 CLR 无关。 由操作系统来利用它。
With NUMA basically you have per processor memory controller. You have that with Intel QuickPath and with AMD HyperTransport. The thing is, as far as I know, currently there are no motherboards neither for i7, nor for Phenom, that would support more than one CPU.
Anyway, this is very low level, that has nothing to do with CLR. It's up to operating system to take advantage of it.