Enforcing isolation and ordering in STM

Transactional memory provides a new concurrency control mechanism that avoids many of the pitfalls of lock-based synchronization. High-performance software transactional memory (STM) implementations thus far provide weak atomicity: Accessing shared data both inside and outside a transaction can resu...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Shpeisman, Tatiana, Menon, Vijay, Adl-Tabatabai, Ali-Reza, Balensiefer, Steven, Grossman, Dan, Hudson, Richard L., Moore, Katherine F., Saha, Bratin
Format: Tagungsbericht
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 88
container_issue
container_start_page 78
container_title
container_volume
creator Shpeisman, Tatiana
Menon, Vijay
Adl-Tabatabai, Ali-Reza
Balensiefer, Steven
Grossman, Dan
Hudson, Richard L.
Moore, Katherine F.
Saha, Bratin
description Transactional memory provides a new concurrency control mechanism that avoids many of the pitfalls of lock-based synchronization. High-performance software transactional memory (STM) implementations thus far provide weak atomicity: Accessing shared data both inside and outside a transaction can result in unexpected, implementation-dependent behavior. To guarantee isolation and consistent ordering in such a system, programmers are expected to enclose all shared-memory accesses inside transactions. A system that provides strong atomicity guarantees isolation even in the presence of threads that access shared data outside transactions. A strongly-atomic system also orders transactions with conflicting non-transactional memory operations in a consistent manner. In this paper, we discuss some surprising pitfalls of weak atomicity, and we present an STM system that avoids these problems via strong atomicity. We demonstrate how to implement non-transactional data accesses via efficient read and write barriers, and we present compiler optimizations that further reduce the overheads of these barriers. We introduce a dynamic escape analysis that differentiates private and public data at runtime to make barriers cheaper and a static not-accessed-in-transaction analysis that removes many barriers completely. Our results on a set of Java programs show that strong atomicity can be implemented efficiently in a high-performance STM system.
doi_str_mv 10.1145/1250734.1250744
format Conference Proceeding
fullrecord <record><control><sourceid>proquest_acm_b</sourceid><recordid>TN_cdi_proquest_miscellaneous_31360119</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>31360119</sourcerecordid><originalsourceid>FETCH-LOGICAL-a304t-fe4bc516695e31c6fe5a6c37da20ed710ec49d1a5f3a1f1b4740587a8b58f443</originalsourceid><addsrcrecordid>eNqNkMtOwzAURC0BElXJmm1WwCbh3lw_kiWqykMqYkH2luPYKJDGEKf_T2jzAaxGGs2MRoexa4QckYt7LAQo4vlROT9jSaVKFJWoSBIV52wFJIsMicMlS2L8BABEVUChVux2O_gw2m74SLsYejN1YUjN0KZhbN14tIf0vX69Yhfe9NEli65Z_bitN8_Z7u3pZfOwywwBnzLveGMFSlkJR2ild8JIS6o1BbhWITjLqxaN8GTQY8MVB1EqUzai9JzTmt2cZr_H8HNwcdL7LlrX92Zw4RA1Icn5fDUH81PQ2L1uQviKGkH_8dALD73w0M3YOT8X7v5ZoF87mVy0</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype><pqid>31360119</pqid></control><display><type>conference_proceeding</type><title>Enforcing isolation and ordering in STM</title><source>ACM Digital Library</source><creator>Shpeisman, Tatiana ; Menon, Vijay ; Adl-Tabatabai, Ali-Reza ; Balensiefer, Steven ; Grossman, Dan ; Hudson, Richard L. ; Moore, Katherine F. ; Saha, Bratin</creator><creatorcontrib>Shpeisman, Tatiana ; Menon, Vijay ; Adl-Tabatabai, Ali-Reza ; Balensiefer, Steven ; Grossman, Dan ; Hudson, Richard L. ; Moore, Katherine F. ; Saha, Bratin</creatorcontrib><description>Transactional memory provides a new concurrency control mechanism that avoids many of the pitfalls of lock-based synchronization. High-performance software transactional memory (STM) implementations thus far provide weak atomicity: Accessing shared data both inside and outside a transaction can result in unexpected, implementation-dependent behavior. To guarantee isolation and consistent ordering in such a system, programmers are expected to enclose all shared-memory accesses inside transactions. A system that provides strong atomicity guarantees isolation even in the presence of threads that access shared data outside transactions. A strongly-atomic system also orders transactions with conflicting non-transactional memory operations in a consistent manner. In this paper, we discuss some surprising pitfalls of weak atomicity, and we present an STM system that avoids these problems via strong atomicity. We demonstrate how to implement non-transactional data accesses via efficient read and write barriers, and we present compiler optimizations that further reduce the overheads of these barriers. We introduce a dynamic escape analysis that differentiates private and public data at runtime to make barriers cheaper and a static not-accessed-in-transaction analysis that removes many barriers completely. Our results on a set of Java programs show that strong atomicity can be implemented efficiently in a high-performance STM system.</description><identifier>ISSN: 0362-1340</identifier><identifier>ISBN: 9781595936332</identifier><identifier>ISBN: 1595936335</identifier><identifier>DOI: 10.1145/1250734.1250744</identifier><language>eng</language><publisher>New York, NY, USA: ACM</publisher><subject>Computing methodologies -- Parallel computing methodologies -- Parallel programming languages ; Software and its engineering -- Software notations and tools -- Compilers ; Software and its engineering -- Software notations and tools -- Compilers -- Runtime environments ; Software and its engineering -- Software notations and tools -- Compilers -- Source code generation ; Software and its engineering -- Software notations and tools -- General programming languages -- Language features -- Concurrent programming structures ; Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Parallel programming languages</subject><ispartof>Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2007, p.78-88</ispartof><rights>2007 ACM</rights><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-a304t-fe4bc516695e31c6fe5a6c37da20ed710ec49d1a5f3a1f1b4740587a8b58f443</citedby></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>309,310,776,780,785,786,23909,23910,25118,27902</link.rule.ids></links><search><creatorcontrib>Shpeisman, Tatiana</creatorcontrib><creatorcontrib>Menon, Vijay</creatorcontrib><creatorcontrib>Adl-Tabatabai, Ali-Reza</creatorcontrib><creatorcontrib>Balensiefer, Steven</creatorcontrib><creatorcontrib>Grossman, Dan</creatorcontrib><creatorcontrib>Hudson, Richard L.</creatorcontrib><creatorcontrib>Moore, Katherine F.</creatorcontrib><creatorcontrib>Saha, Bratin</creatorcontrib><title>Enforcing isolation and ordering in STM</title><title>Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation</title><description>Transactional memory provides a new concurrency control mechanism that avoids many of the pitfalls of lock-based synchronization. High-performance software transactional memory (STM) implementations thus far provide weak atomicity: Accessing shared data both inside and outside a transaction can result in unexpected, implementation-dependent behavior. To guarantee isolation and consistent ordering in such a system, programmers are expected to enclose all shared-memory accesses inside transactions. A system that provides strong atomicity guarantees isolation even in the presence of threads that access shared data outside transactions. A strongly-atomic system also orders transactions with conflicting non-transactional memory operations in a consistent manner. In this paper, we discuss some surprising pitfalls of weak atomicity, and we present an STM system that avoids these problems via strong atomicity. We demonstrate how to implement non-transactional data accesses via efficient read and write barriers, and we present compiler optimizations that further reduce the overheads of these barriers. We introduce a dynamic escape analysis that differentiates private and public data at runtime to make barriers cheaper and a static not-accessed-in-transaction analysis that removes many barriers completely. Our results on a set of Java programs show that strong atomicity can be implemented efficiently in a high-performance STM system.</description><subject>Computing methodologies -- Parallel computing methodologies -- Parallel programming languages</subject><subject>Software and its engineering -- Software notations and tools -- Compilers</subject><subject>Software and its engineering -- Software notations and tools -- Compilers -- Runtime environments</subject><subject>Software and its engineering -- Software notations and tools -- Compilers -- Source code generation</subject><subject>Software and its engineering -- Software notations and tools -- General programming languages -- Language features -- Concurrent programming structures</subject><subject>Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Parallel programming languages</subject><issn>0362-1340</issn><isbn>9781595936332</isbn><isbn>1595936335</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2007</creationdate><recordtype>conference_proceeding</recordtype><recordid>eNqNkMtOwzAURC0BElXJmm1WwCbh3lw_kiWqykMqYkH2luPYKJDGEKf_T2jzAaxGGs2MRoexa4QckYt7LAQo4vlROT9jSaVKFJWoSBIV52wFJIsMicMlS2L8BABEVUChVux2O_gw2m74SLsYejN1YUjN0KZhbN14tIf0vX69Yhfe9NEli65Z_bitN8_Z7u3pZfOwywwBnzLveGMFSlkJR2ild8JIS6o1BbhWITjLqxaN8GTQY8MVB1EqUzai9JzTmt2cZr_H8HNwcdL7LlrX92Zw4RA1Icn5fDUH81PQ2L1uQviKGkH_8dALD73w0M3YOT8X7v5ZoF87mVy0</recordid><startdate>20070610</startdate><enddate>20070610</enddate><creator>Shpeisman, Tatiana</creator><creator>Menon, Vijay</creator><creator>Adl-Tabatabai, Ali-Reza</creator><creator>Balensiefer, Steven</creator><creator>Grossman, Dan</creator><creator>Hudson, Richard L.</creator><creator>Moore, Katherine F.</creator><creator>Saha, Bratin</creator><general>ACM</general><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>20070610</creationdate><title>Enforcing isolation and ordering in STM</title><author>Shpeisman, Tatiana ; Menon, Vijay ; Adl-Tabatabai, Ali-Reza ; Balensiefer, Steven ; Grossman, Dan ; Hudson, Richard L. ; Moore, Katherine F. ; Saha, Bratin</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a304t-fe4bc516695e31c6fe5a6c37da20ed710ec49d1a5f3a1f1b4740587a8b58f443</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2007</creationdate><topic>Computing methodologies -- Parallel computing methodologies -- Parallel programming languages</topic><topic>Software and its engineering -- Software notations and tools -- Compilers</topic><topic>Software and its engineering -- Software notations and tools -- Compilers -- Runtime environments</topic><topic>Software and its engineering -- Software notations and tools -- Compilers -- Source code generation</topic><topic>Software and its engineering -- Software notations and tools -- General programming languages -- Language features -- Concurrent programming structures</topic><topic>Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Parallel programming languages</topic><toplevel>online_resources</toplevel><creatorcontrib>Shpeisman, Tatiana</creatorcontrib><creatorcontrib>Menon, Vijay</creatorcontrib><creatorcontrib>Adl-Tabatabai, Ali-Reza</creatorcontrib><creatorcontrib>Balensiefer, Steven</creatorcontrib><creatorcontrib>Grossman, Dan</creatorcontrib><creatorcontrib>Hudson, Richard L.</creatorcontrib><creatorcontrib>Moore, Katherine F.</creatorcontrib><creatorcontrib>Saha, Bratin</creatorcontrib><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Shpeisman, Tatiana</au><au>Menon, Vijay</au><au>Adl-Tabatabai, Ali-Reza</au><au>Balensiefer, Steven</au><au>Grossman, Dan</au><au>Hudson, Richard L.</au><au>Moore, Katherine F.</au><au>Saha, Bratin</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Enforcing isolation and ordering in STM</atitle><btitle>Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation</btitle><date>2007-06-10</date><risdate>2007</risdate><spage>78</spage><epage>88</epage><pages>78-88</pages><issn>0362-1340</issn><isbn>9781595936332</isbn><isbn>1595936335</isbn><abstract>Transactional memory provides a new concurrency control mechanism that avoids many of the pitfalls of lock-based synchronization. High-performance software transactional memory (STM) implementations thus far provide weak atomicity: Accessing shared data both inside and outside a transaction can result in unexpected, implementation-dependent behavior. To guarantee isolation and consistent ordering in such a system, programmers are expected to enclose all shared-memory accesses inside transactions. A system that provides strong atomicity guarantees isolation even in the presence of threads that access shared data outside transactions. A strongly-atomic system also orders transactions with conflicting non-transactional memory operations in a consistent manner. In this paper, we discuss some surprising pitfalls of weak atomicity, and we present an STM system that avoids these problems via strong atomicity. We demonstrate how to implement non-transactional data accesses via efficient read and write barriers, and we present compiler optimizations that further reduce the overheads of these barriers. We introduce a dynamic escape analysis that differentiates private and public data at runtime to make barriers cheaper and a static not-accessed-in-transaction analysis that removes many barriers completely. Our results on a set of Java programs show that strong atomicity can be implemented efficiently in a high-performance STM system.</abstract><cop>New York, NY, USA</cop><pub>ACM</pub><doi>10.1145/1250734.1250744</doi><tpages>11</tpages></addata></record>
fulltext fulltext
identifier ISSN: 0362-1340
ispartof Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, 2007, p.78-88
issn 0362-1340
language eng
recordid cdi_proquest_miscellaneous_31360119
source ACM Digital Library
subjects Computing methodologies -- Parallel computing methodologies -- Parallel programming languages
Software and its engineering -- Software notations and tools -- Compilers
Software and its engineering -- Software notations and tools -- Compilers -- Runtime environments
Software and its engineering -- Software notations and tools -- Compilers -- Source code generation
Software and its engineering -- Software notations and tools -- General programming languages -- Language features -- Concurrent programming structures
Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Parallel programming languages
title Enforcing isolation and ordering in STM
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-09T11%3A31%3A22IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_acm_b&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Enforcing%20isolation%20and%20ordering%20in%20STM&rft.btitle=Proceedings%20of%20the%2028th%20ACM%20SIGPLAN%20Conference%20on%20Programming%20Language%20Design%20and%20Implementation&rft.au=Shpeisman,%20Tatiana&rft.date=2007-06-10&rft.spage=78&rft.epage=88&rft.pages=78-88&rft.issn=0362-1340&rft.isbn=9781595936332&rft.isbn_list=1595936335&rft_id=info:doi/10.1145/1250734.1250744&rft_dat=%3Cproquest_acm_b%3E31360119%3C/proquest_acm_b%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=31360119&rft_id=info:pmid/&rfr_iscdi=true