Publication:
Trade: precise dynamic race detection for scalable transactional memory systems

dc.contributor.coauthorKestor, Gökçen
dc.contributor.coauthorÜnsal, Osman S.
dc.contributor.coauthorCristal, Adrian
dc.contributor.departmentDepartment of Computer Engineering
dc.contributor.kuauthorTaşıran, Serdar
dc.contributor.kuprofileFaculty Member
dc.contributor.otherDepartment of Computer Engineering
dc.contributor.schoolcollegeinstituteCollege of Engineering
dc.contributor.yokidN/A
dc.date.accessioned2024-11-09T22:57:31Z
dc.date.issued2015
dc.description.abstractAs other multithreaded programs, transactional memory (TM) programs are prone to race conditions. Previous work focuses on extending existing definitions of data race for lock-based applications to TM applications, which requires all transactions to be totally ordered "as if" serialized by a global lock. This approach poses implementation constraints on the STM that severely limits TM applications' performance. This article shows that forcing total ordering among all running transactions, while sufficient, is not necessary. We introduce an alternative data race definition, relaxed transactional data race, that requires ordering of only conflicting transactions. The advantages of our relaxed definition are twofold: First, unlike the previous definition, this definition can be applied to a wide range of TMs, including those that do not enforce transaction total ordering. Second, within a single execution, it exposes a higher number of data races, which considerably reduces debugging time. Based on this definition, we propose a novel and precise race detection tool for C/C++ TM applications (TRADE), which detects data races by tracking happens-before edges among conflicting transactions. Our experiments reveal that TRADE precisely detects data races for STAMP applications running on modern STMs with overhead comparable to state-of-the-art race detectors for lock-based applications. Our experiments also show that in a single run, TRADE identifies several races not discovered by 10 separate runs of a race detection tool based on the previous data race definition.
dc.description.indexedbyScopus
dc.description.issue2
dc.description.openaccessYES
dc.description.publisherscopeInternational
dc.description.volume2
dc.identifier.doi10.1145/2786021
dc.identifier.issn2329-4949
dc.identifier.linkhttps://www.scopus.com/inward/record.uri?eid=2-s2.0-85056075249anddoi=10.1145%2f2786021andpartnerID=40andmd5=a3ad88e24e396a7825e0388c97fface0
dc.identifier.quartileN/A
dc.identifier.scopus2-s2.0-85056075249
dc.identifier.urihttp://dx.doi.org/10.1145/2786021
dc.identifier.urihttps://hdl.handle.net/20.500.14288/7566
dc.keywordsCorrectness
dc.keywordsDebugging
dc.keywordsRace detection
dc.keywordsTransactional memory
dc.languageEnglish
dc.publisherAssociation for Computing Machinery
dc.sourceACM Transactions on Parallel Computing
dc.subjectData flow computing
dc.subjectElectronic data processing
dc.subjectTransactional systems (Computer systems)
dc.subjectParallel processing (Electronic computers)
dc.titleTrade: precise dynamic race detection for scalable transactional memory systems
dc.typeJournal Article
dspace.entity.typePublication
local.contributor.authoridN/A
local.contributor.kuauthorTaşıran, Serdar
relation.isOrgUnitOfPublication89352e43-bf09-4ef4-82f6-6f9d0174ebae
relation.isOrgUnitOfPublication.latestForDiscovery89352e43-bf09-4ef4-82f6-6f9d0174ebae

Files