Leveraging hardware TM in Haskell

Leveraging hardware TM in Haskell
复制标题

在 Haskell 中利用硬件 TM

DOI:
10.1145/3293883.3295711
复制
发表时间:
2019
期刊:
Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming
影响因子:
--
通讯作者:
Scott, Michael L.
Scott, Michael L.
中科院分区:
--
文献类型:
--
作者:
Yates, Ryan;Scott, Michael L.

文献摘要

参考文献

相似文献

在Haskell编程语言中,transmittance memory(TM)大量用于同步,但其性能一直很差。我们着手在英特尔处理器上使用硬件TM(HTM)来提高这一性能。Haskell的重试机制使这项任务变得复杂,它需要信息来逃避中止的事务,并且Haskell运行时中大量使用间接,这意味着即使是小事务也可能溢出硬件缓冲区。它是缓解功能语义,排除不可逆的操作,由静态分离的事务状态,排除私有化,并通过强类型的错误遏制,这使得所谓的懒惰subscriptionto的锁,保护"回退" code path.We描述了一个三级混合TM系统的格拉斯哥Haskell编译器(GHC)。我们的系统首先尝试在硬件中执行整个事务。如果做不到这一点,则福尔斯将返回到与提交时硬件事务相结合的读写集的软件跟踪。如果有必要,它会使用全局锁来序列化提交(但仍然不会序列化事务的主体)。为了从硬件TM获得良好的性能,同时保留Haskell语义,我们使用Bloom过滤器进行读写集跟踪。我们还实现并扩展了新提出的可变构造函数字段语言特性,以显著减少间接性。复杂数据结构的实验结果表明,吞吐量和可扩展性显着改善。
Transactional memory (TM) is heavily used for synchronization in the Haskell programming language, but its performance has historically been poor. We set out to improve this performance using hardware TM (HTM) on Intel processors. This task is complicated by Haskell's retry mechanism, which requires information to escape aborted transactions, and by the heavy use of indirection in the Haskell runtime, which means that even small transactions are likely to over-flow hardware buffers. It is eased by functional semantics, which preclude irreversible operations; by the static separation of transactional state, which precludes privatization; and by the error containment of strong typing, which enables so-calledlazy subscriptionto the lock that protects the "fallback" code path.We describe a three-level hybrid TM system for the Glasgow Haskell Compiler (GHC). Our system first attempts to perform an entire transaction in hardware. Failing that, it falls back to software tracking of read and write sets combined with a commit-time hardware transaction. If necessary, it employs a global lock to serialize commits (but still not the bodies of transactions). To get good performance from hardware TM while preserving Haskell semantics, we use Bloom filters for read and write set tracking. We also implemented and extended the newly proposedmutable constructor fieldslanguage feature to significantly reduce indirection. Experimental results with complex data structures show significant improvements in throughput and scalability.
随机二叉搜索树
DOI: --
发表时间: 1998
期刊: JACM
影响因子: --
作者:
Conrado Martínez;Salvador Roura
通讯作者: Salvador Roura
DOI: --
发表时间: 2008
期刊: International Conference on Parallel Processing
影响因子: --
作者:
Michael F. Spear;M. Silverman;Luke Dalessandro;Maged M. Michael;M. Scott
通讯作者: M. Scott
DOI: 10.1145/3158093
发表时间: 2018-01-01
影响因子: 1.8
作者:
Bernardy, Jean-Philippe;Boespflug, Mathieu;Spiwack, Arnaud
通讯作者: Spiwack, Arnaud
硬件扩展使延迟订阅变得安全
DOI: --
发表时间: 2014
期刊: arXiv.org
影响因子: --
作者:
D. Dice;T. Harris;Alex Kogan;Yossi Lev;Mark Moir
通讯作者: Mark Moir
理想的哈希树
DOI: --
发表时间: 2001
期刊:
影响因子: --
作者:
P. Bagwell
通讯作者: P. Bagwell