Nested parallelism in transactional memory

Kunal Agrawal, Jeremy T. Fineman, Jim Sukha
{"title":"Nested parallelism in transactional memory","authors":"Kunal Agrawal, Jeremy T. Fineman, Jim Sukha","doi":"10.1145/1345206.1345232","DOIUrl":null,"url":null,"abstract":"This paper investigates adding transactions with nested parallelism and nested transactions to a dynamically multithreaded parallel programming language that generates only series-parallel programs. We describe XConflict, a data structure that facilitates conflict detection for a software transactional memory system which supports transactions with nested parallelism and unbounded nesting depth. For languages that use a Cilk-like work-stealing scheduler, XConflict answers concurrent conflict queries in O(1) time and can be maintained efficiently. In particular, for a program with T1 work and a span (or critical-path length) of T∞, the running time on p processors of the program augmented with XConflict is only O(T1/p + pT∞). Using XConflict, we describe CWSTM, a runtime-system design for software transactional memory which supports transactions with nested parallelism and unbounded nesting depth of transactions. The CWSTM design provides transactional memory with eager updates, eager conflict detection, strong atomicity, and lazy cleanup on aborts. In the restricted case when no transactions abort and there are no concurrent readers, CWSTM executes a transactional computation on p processors also in time O(T1/p + pT∞). Although this bound holds only under rather optimistic assumptions, to our knowledge, this result is the first theoretical performance bound on a TM system that supports transactions with nested parallelism which is independent of the maximum nesting depth of transactions.","PeriodicalId":290559,"journal":{"name":"Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming","volume":"96 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2008-02-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"69","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1345206.1345232","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 69

Abstract

This paper investigates adding transactions with nested parallelism and nested transactions to a dynamically multithreaded parallel programming language that generates only series-parallel programs. We describe XConflict, a data structure that facilitates conflict detection for a software transactional memory system which supports transactions with nested parallelism and unbounded nesting depth. For languages that use a Cilk-like work-stealing scheduler, XConflict answers concurrent conflict queries in O(1) time and can be maintained efficiently. In particular, for a program with T1 work and a span (or critical-path length) of T∞, the running time on p processors of the program augmented with XConflict is only O(T1/p + pT∞). Using XConflict, we describe CWSTM, a runtime-system design for software transactional memory which supports transactions with nested parallelism and unbounded nesting depth of transactions. The CWSTM design provides transactional memory with eager updates, eager conflict detection, strong atomicity, and lazy cleanup on aborts. In the restricted case when no transactions abort and there are no concurrent readers, CWSTM executes a transactional computation on p processors also in time O(T1/p + pT∞). Although this bound holds only under rather optimistic assumptions, to our knowledge, this result is the first theoretical performance bound on a TM system that supports transactions with nested parallelism which is independent of the maximum nesting depth of transactions.
事务内存中的嵌套并行性
本文研究了将嵌套并行事务和嵌套事务添加到只生成串行并行程序的动态多线程并行编程语言中。我们描述了XConflict,这是一种数据结构,有助于软件事务性内存系统的冲突检测,该系统支持具有嵌套并行性和无界嵌套深度的事务。对于使用类似于cilk的工作窃取调度器的语言,XConflict在O(1)时间内回答并发冲突查询,并且可以有效地维护。特别地,对于T1功和T∞跨度(或关键路径长度)的程序,扩展了XConflict的程序在p个处理器上的运行时间仅为O(T1/p + pT∞)。我们使用XConflict描述了CWSTM,这是一种用于软件事务性内存的运行时系统设计,它支持具有嵌套并行性和无界嵌套深度的事务。CWSTM设计为事务性内存提供了即时更新、即时冲突检测、强原子性和中止时的惰性清理功能。在没有事务中止且没有并发读取器的受限情况下,CWSTM同样在O(T1/p + pT∞)时间内执行p个处理器上的事务计算。虽然这个界限只在相当乐观的假设下成立,但据我们所知,这个结果是TM系统上的第一个理论性能界限,该系统支持具有嵌套并行性的事务,而嵌套并行性与事务的最大嵌套深度无关。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信
小红书