Compiler and Runtime Techniques for Software Transactional Memory in Partitioned Global Address Space Languages and Runtime Libraries

Compiler and Runtime Techniques for Software Transactional Memory in Partitioned Global Address Space Languages and Runtime Libraries
复制标题

分区全局地址空间语言和运行时库中软件事务内存的编译器和运行时技术

DOI:
--
复制
发表时间:
2010
期刊:
影响因子:
--
通讯作者:
Srinivas Sridharan
Srinivas Sridharan
中科院分区:
--
文献类型:
--
作者:
Srinivas Sridharan

文献摘要

被引文献

相似文献

分区全局地址空间(PGAS)模型已经成为一种很有前途的用于大规模系统编程的抽象模型。在PGAS中,线程共享一个公共堆地址空间,这个空间实际上可能被划分并分布在独立的内存中。因此,需要并发控制机制来确保线程以一致的方式看到彼此的更新。构建这种机制的真正挑战在于,需要以原子方式更新的内存位置可能位于不同的内存分区中。在本文中,我们开发了基于基于软件的事务性内存(STM)机制的解决方案,以解决这个具有挑战性的问题的可编程性和性能方面的问题。STM机制主要保证事务,即访问共享状态的代码序列,要么作为单个原子操作执行,要么在无法提供这种保证的情况下重试它们的操作。本文做出了以下贡献:首先,我们展示了相对于基于锁的方法,为原子事务提供语言支持的可编程性优势。其次,我们开发了同类中的第一种编译器技术,用于将这些高级语言结构映射到低级STM设计。第三,我们开发了Srinivas Sridharan STM运行时实现,它不仅保证并发执行事务的正确性,而且以一种有效的方式实现。例如,我们首次演示了如何以非阻塞方式实现STM过程,并使用它们在事务中重叠计算和通信。总的来说,我们通过在Chapel(由Cray公司开发的并行编程语言,作为DARPA HPCS计划的一部分)和GASNet(实现PGAS抽象的运行时库)中实现这些技术来证明这些技术的可行性。总的来说,我们表明STM实现可以扩展到数百(如果不是数千)个节点,执行数万个线程,同时显示出超过(如果不是匹配的话)基于锁的方法的性能。
by Srinivas Sridharan The Partitioned Global Address Space (PGAS) model has emerged as a promising abstraction for programming large-scale systems. In PGAS, threads share a common heap address space, which may in reality be partitioned and distributed across independent memories. Concurrency control mechanisms are thus required to ensure threads see each other’s updates in a consistent manner. The real challenge in building such mechanisms is that the memory locations that need to be updated in an atomic fashion may reside in different memory partitions. In this dissertation, we develop solutions based on Software-based Transactional Memory (STM) mechanisms to address the programmability and performance aspects of this challenging problem. STM mechanisms primarily guarantee that transactions, i.e. code sequences that access shared state, either execute as a single atomic operation or retry their operation in case such guarantees cannot be provided. This dissertation makes the following contributions: First, we showcase the programmability benefits of providing language support for atomic transactions over lockbased approaches. Second, we develop first-of-its-kind compiler techniques for mapping these high-level language constructs to low–level STM designs. Third, we develop Srinivas Sridharan STM runtime implementations that not only guarantee correctness for concurrently executing transactions, but does so in an efficient manner. For instance, we demonstrate for the first time how STM procedures can be implemented in a non-blocking manner, and use them to overlap computation and communication within a transaction. In general, we demonstrate the feasibility of these techniques by implementing them in Chapel, a parallel programming language being developed by Cray Inc. as part of DARPA’s HPCS program, and GASNet, a runtime library that implements the PGAS abstraction. Overall, we show that STM implementations can be scaled to hundreds (if not thousands) of nodes executing tens of thousands of threads, while exhibiting performance that exceeds, if not just matches, the performance of lock-based approaches.