【发布时间】:2012-12-07 06:21:28
【问题描述】:
阅读Anandtech on 'Haswell TSX' (tranactional memory barriers) 后,我立即想知道 CLR/JVM 是否能够在 C#/Java/Scala/F# 中将这些用于高度并行的应用程序(C# Rx/TPL/TFD)。
【问题讨论】:
-
在您投票关闭之前,此处理器更改可能会对服务器端编程产生重大影响。具体来说,这些运行时是否可以将这些指令与现有结构一起使用,或者是否必须为程序员引入新结构 (STM) 以利用新硬件。
-
Joe Duffy 的最新博客文章帮助阐明了下一代多线程将是什么样子(至少对于 C#/.NET)。 bluebytesoftware.com/blog/2012/12/08/ImperativeFunctional.aspx
-
也许他们最终会解决这个问题,但现在他们建议不要使用此功能,因为它已损坏:HSW136, No Fix, Software Using Intel® TSX May Result in Unpredictable System Behavior 在规范更新 pdf 第 12 页上。所以我想在最终修复之前,不会再努力将这个特性包含在 CLR 或 JVM 中。
-
次要更新:TSX 在 Skylake 中发现了错误并被微码更新禁用(就像 Haswell 和早期的 Broadwell 一样)。鉴于大多数 CPU 型号不应该支持它,并且大多数应该支持它的 CPU 型号由于错误而将其禁用,我什至不确定它是否值得。
标签: x86 clr intel transactional-memory intel-tsx