yzo*_*org 16 clr transactional-memory intel
在阅读Anandtech的'Haswell TSX'(转换内存屏障)之后,我立刻想知道CLR/JVM是否能够在C#/ Java/Scala/F#中使用这些用于高度并行的应用程序(C#Rx/TPL/TFD).
HLE(硬件锁消除)可以轻松地集成到任何使用锁的现有代码库中。例如,已经存在pthreads的实现。另外,请注意,JVM已经执行了锁定优先级优化,我认为他们可以在可能的情况下轻松切换到硬件锁定优先级。
但是交易变得更加复杂。您无法启动事务并推送1Mb的更新,事务将被中止。因此,硬件事务存储器受到限制,它不像软件事务存储器那样可组合且模块化。这是很底层的事情。另外,请注意,并非每个函数都可以从事务中安全地调用。这样的功能必须没有副作用。
因此,我希望TSX将以编译器内在函数的形式在CLR中可用,框架开发人员将使用它们来创建更好的并发集合和同步原语。它不会像Haskell或Clojure的事务性记忆。
我预计高性能 JVM 人员会首先采用它。例如http://www.azulsystems.com/products/zing/virtual-machine
我认为 TSX 在高性能收集实现中最常用。我不明白为什么我们不能使用 TSX 实现一组本机代码集合,并使用常规本机调用技术将其投影到 .Net 或 Java。
| 归档时间: |
|
| 查看次数: |
2176 次 |
| 最近记录: |