MultiRace: efficient on-the-fly data race detection in multithreaded C++ programs
Data race detection is highly essential for debugging multithreaded programs and assuring their correctness. Nevertheless, there is no single universal technique capable of handling the task efficiently, since the data race detection problem is computationally hard in the general case. Thus, all cur...
Uloženo v:
| Vydáno v: | Concurrency and computation Ročník 19; číslo 3; s. 327 - 340 |
|---|---|
| Hlavní autoři: | , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
Chichester, UK
John Wiley & Sons, Ltd
10.03.2007
|
| Témata: | |
| ISSN: | 1532-0626, 1532-0634 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | Data race detection is highly essential for debugging multithreaded programs and assuring their correctness. Nevertheless, there is no single universal technique capable of handling the task efficiently, since the data race detection problem is computationally hard in the general case. Thus, all currently available tools, when applied to some general case program, usually result in excessive false alarms or in a large number of undetected races. Another major drawback of many currently available tools is that they are restricted, for performance reasons, to detection units of fixed size. Thus, they all suffer from the same problem—choosing a small unit might result in missing some of the data races, while choosing a large one might lead to false detection. We present a novel testing tool, called MultiRace, which combines improved versions of Djit and Lockset—two very powerful on‐the‐fly algorithms for dynamic detection of apparent data races. Both extended algorithms detect races in multithreaded programs that may execute on weak consistency systems, and may use two‐way as well as global synchronization primitives. By employing novel technologies, MultiRace adjusts its detection to the native granularity of objects and variables in the program under examination. In order to monitor all accesses to each of the shared locations, MultiRace instruments the C++ source code of the program. It lets the user fine‐tune the detection process, but otherwise is completely automatic and transparent. This paper describes the algorithms employed in MultiRace, gives highlights of its implementation issues, and suggests some optimizations. It shows that the overheads imposed by MultiRace are often much smaller (orders of magnitude) than those obtained by other existing tools. Copyright © 2006 John Wiley & Sons, Ltd. |
|---|---|
| AbstractList | Data race detection is highly essential for debugging multithreaded programs and assuring their correctness. Nevertheless, there is no single universal technique capable of handling the task efficiently, since the data race detection problem is computationally hard in the general case. Thus, all currently available tools, when applied to some general case program, usually result in excessive false alarms or in a large number of undetected races. Another major drawback of many currently available tools is that they are restricted, for performance reasons, to detection units of fixed size. Thus, they all suffer from the same problem—choosing a small unit might result in missing some of the data races, while choosing a large one might lead to false detection. We present a novel testing tool, called MultiRace, which combines improved versions of Djit and Lockset—two very powerful on‐the‐fly algorithms for dynamic detection of apparent data races. Both extended algorithms detect races in multithreaded programs that may execute on weak consistency systems, and may use two‐way as well as global synchronization primitives. By employing novel technologies, MultiRace adjusts its detection to the native granularity of objects and variables in the program under examination. In order to monitor all accesses to each of the shared locations, MultiRace instruments the C++ source code of the program. It lets the user fine‐tune the detection process, but otherwise is completely automatic and transparent. This paper describes the algorithms employed in MultiRace, gives highlights of its implementation issues, and suggests some optimizations. It shows that the overheads imposed by MultiRace are often much smaller (orders of magnitude) than those obtained by other existing tools. Copyright © 2006 John Wiley & Sons, Ltd. |
| Author | Pozniansky, Eli Schuster, Assaf |
| Author_xml | – sequence: 1 givenname: Eli surname: Pozniansky fullname: Pozniansky, Eli organization: Computer Science Department, Technion-Israel Institute of Technology, Haifa 32000, Israel – sequence: 2 givenname: Assaf surname: Schuster fullname: Schuster, Assaf email: assaf@cs.technion.ac.il organization: Computer Science Department, Technion-Israel Institute of Technology, Haifa 32000, Israel |
| BookMark | eNp1kFtLw0AUhBepYFsFf8I-CiV1r0nqm9RahXpprfi4bDZn7WqalM2K9t-bUBEUfZqB881hmB7qlFUJCB1TMqSEsFOzgcbEYg91qeQsIjEXnW_P4gPUq-sXQiglnHbR_OatCG6hDZxhsNYZB2XAVRmFFUS22OJcB419c8c5BDDBVSV2JV63sbDyoHPI8XgwwBtfPXu9rg_RvtVFDUdf2kePl5Pl-Cqa3U2vx-ezyDDORSRTO4IsZWmmNbUxH1EhM2HjLJMZpVY2BZkVWSMxY6lOjNVpasRImkQakwjeR8PdX-OruvZglXFBt_2C165QlKh2ENUMotpBmsDJr8DGu7X227_QaIe-uwK2_3JqfD_5ybs6wMc3r_2rihOeSPV0O1UXi_kDp1OulvwTOVB_iQ |
| CitedBy_id | crossref_primary_10_1002_spe_2121 crossref_primary_10_1002_stvr_1564 crossref_primary_10_1007_s11227_018_2307_8 crossref_primary_10_1155_2015_205827 crossref_primary_10_4218_etrij_17_0115_1027 crossref_primary_10_1007_s10766_014_0313_x crossref_primary_10_1109_TSE_2022_3144480 crossref_primary_10_1007_s11432_015_0203_2 crossref_primary_10_1145_3093337_3037708 crossref_primary_10_1007_s10009_013_0277_y crossref_primary_10_1109_ACCESS_2020_3022992 crossref_primary_10_1145_3093336_3037708 crossref_primary_10_1109_TSC_2016_2596288 crossref_primary_10_1007_s10766_018_0579_5 crossref_primary_10_1109_TPDS_2020_3032293 crossref_primary_10_1145_3720428 crossref_primary_10_1016_j_jpdc_2020_02_008 |
| Cites_doi | 10.1145/68210.69224 10.1145/312203.312214 10.1145/122759.122767 10.1145/359545.359563 10.1145/174266.171370 10.1145/130616.130623 10.1145/115952.115976 10.1145/318789.318809 10.1145/379605.379687 10.1006/jpdc.1999.1574 10.1145/265924.265927 |
| ContentType | Journal Article |
| Copyright | Copyright © 2006 John Wiley & Sons, Ltd. |
| Copyright_xml | – notice: Copyright © 2006 John Wiley & Sons, Ltd. |
| DBID | BSCLL AAYXX CITATION |
| DOI | 10.1002/cpe.1064 |
| DatabaseName | Istex CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1532-0634 |
| EndPage | 340 |
| ExternalDocumentID | 10_1002_cpe_1064 CPE1064 ark_67375_WNG_DRQS31G3_T |
| Genre | article |
| GroupedDBID | .3N .DC .GA .Y3 05W 0R~ 10A 1L6 1OC 31~ 33P 3SF 3WU 4.4 50Y 50Z 51W 51X 52M 52N 52O 52P 52S 52T 52U 52W 52X 5GY 5VS 66C 702 7PT 8-0 8-1 8-3 8-4 8-5 8UM 930 A03 AAESR AAEVG AAHQN AAMNL AANHP AANLZ AAONW AASGY AAXRX AAYCA AAZKR ABCQN ABCUV ABEML ABIJN ACAHQ ACBWZ ACCZN ACPOU ACRPL ACSCC ACXBN ACXQS ACYXJ ADBBV ADEOM ADIZJ ADKYN ADMGS ADMLS ADNMO ADOZA ADXAS ADZMN AEIGN AEIMD AEUYR AEYWJ AFBPY AFFPM AFGKR AFWVQ AFZJQ AGQPQ AGYGG AHBTC AITYG AIURR AJXKR ALMA_UNASSIGNED_HOLDINGS ALVPJ AMBMR AMYDB ASPBG ATUGU AUFTA AVWKF AZBYB AZFZN BAFTC BDRZF BFHJK BHBCM BMNLL BROTX BRXPI BSCLL BY8 CS3 D-E D-F DCZOG DPXWK DR2 DRFUL DRSTM EBS EJD F00 F01 F04 F5P FEDTE G-S G.N GNP GODZA HGLYW HHY HVGLF HZ~ IX1 JPC KQQ LATKE LAW LC2 LC3 LEEKS LH4 LITHE LOXES LP6 LP7 LUTES LW6 LYRES MEWTI MK4 MRFUL MRSTM MSFUL MSSTM MXFUL MXSTM N04 N05 N9A O66 O9- OIG P2W P2X P4D PQQKQ Q.N Q11 QB0 QRW R.K ROL RX1 SUPJJ TN5 UB1 V2E W8V W99 WBKPD WIH WIK WOHZO WQJ WXSBR WYISQ WZISG XG1 XV2 ~IA ~WT AAHHS ACCFJ ADZOD AEEZP AEQDE AEUQT AFPWT AIWBW AJBDE ALUQN RWI WRC AAYXX CITATION O8X |
| ID | FETCH-LOGICAL-c2334-58f9eb828baa1f639145b4f6bb5b11f50112f4b0116228a7cfa88c495c75cc743 |
| IEDL.DBID | DRFUL |
| ISICitedReferencesCount | 81 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000244719500006&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 1532-0626 |
| IngestDate | Tue Nov 18 21:16:21 EST 2025 Sat Nov 29 01:41:09 EST 2025 Wed Jan 22 16:21:26 EST 2025 Tue Nov 11 03:32:52 EST 2025 |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 3 |
| Language | English |
| License | http://onlinelibrary.wiley.com/termsAndConditions#vor |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-c2334-58f9eb828baa1f639145b4f6bb5b11f50112f4b0116228a7cfa88c495c75cc743 |
| Notes | ark:/67375/WNG-DRQS31G3-T ArticleID:CPE1064 istex:E9F262D424EE0A284ECC0B966FAF7B44562F3C95 |
| PageCount | 14 |
| ParticipantIDs | crossref_citationtrail_10_1002_cpe_1064 crossref_primary_10_1002_cpe_1064 wiley_primary_10_1002_cpe_1064_CPE1064 istex_primary_ark_67375_WNG_DRQS31G3_T |
| PublicationCentury | 2000 |
| PublicationDate | 2007-03-10 10 March 2007 |
| PublicationDateYYYYMMDD | 2007-03-10 |
| PublicationDate_xml | – month: 03 year: 2007 text: 2007-03-10 day: 10 |
| PublicationDecade | 2000 |
| PublicationPlace | Chichester, UK |
| PublicationPlace_xml | – name: Chichester, UK |
| PublicationTitle | Concurrency and computation |
| PublicationTitleAlternate | Concurrency Computat.: Pract. Exper |
| PublicationYear | 2007 |
| Publisher | John Wiley & Sons, Ltd |
| Publisher_xml | – name: John Wiley & Sons, Ltd |
| References | Dinning A, Schonberg E. Detecting access anomalies in programs with critical sections. Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging. ACM SIGPLAN Notices 1991; 26(12):85-96. Itzkovitz A, Schuster A, Zeev-Ben-Mordechai O. Towards integration of data race detection in DSM systems. Journal of Parallel and Distributed Computing (JPDC) 1999; 59(2):180-203. Lamport L. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 1978; 21(7):558-565. Ronsse M, Bosschere KD. RecPlay: A fully integrated practical record/replay system. ACM Transactions on Computer Systems 1999; 17(2):133-152. Savage S, Burrows M, Nelson G, Sobalvarro P, Anderson T. Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems 1997; 15(4):391-411. Netzer RHB, Miller BP. What are race conditions? Some issues and formalizations. ACM Letters on Programming Languages and Systems 1992; 1:74-88. 1991; 26 1990 2001 1978; 21 1999; 17 1997; 15 1999; 59 1993 1992 1991 1992; 1 1989 1999 1988 Brecht T (e_1_2_1_12_2) 1999 Mattern F (e_1_2_1_16_2) 1989 e_1_2_1_6_2 e_1_2_1_7_2 e_1_2_1_4_2 e_1_2_1_5_2 e_1_2_1_2_2 e_1_2_1_11_2 e_1_2_1_3_2 Itzkovitz A (e_1_2_1_13_2) 1999 e_1_2_1_10_2 e_1_2_1_15_2 e_1_2_1_14_2 e_1_2_1_8_2 e_1_2_1_17_2 e_1_2_1_9_2 |
| References_xml | – reference: Dinning A, Schonberg E. Detecting access anomalies in programs with critical sections. Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging. ACM SIGPLAN Notices 1991; 26(12):85-96. – reference: Itzkovitz A, Schuster A, Zeev-Ben-Mordechai O. Towards integration of data race detection in DSM systems. Journal of Parallel and Distributed Computing (JPDC) 1999; 59(2):180-203. – reference: Savage S, Burrows M, Nelson G, Sobalvarro P, Anderson T. Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems 1997; 15(4):391-411. – reference: Lamport L. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 1978; 21(7):558-565. – reference: Netzer RHB, Miller BP. What are race conditions? Some issues and formalizations. ACM Letters on Programming Languages and Systems 1992; 1:74-88. – reference: Ronsse M, Bosschere KD. RecPlay: A fully integrated practical record/replay system. ACM Transactions on Computer Systems 1999; 17(2):133-152. – start-page: 175 year: 1989 end-page: 185 – start-page: 129 year: 1993 end-page: 139 – start-page: 89 year: 1988 end-page: 99 – volume: 15 start-page: 391 issue: 4 year: 1997 end-page: 411 article-title: Eraser: A dynamic data race detector for multithreaded programs publication-title: ACM Transactions on Computer Systems – start-page: 234 year: 1991 end-page: 243 – start-page: 90 year: 2001 end-page: 96 – volume: 17 start-page: 133 issue: 2 year: 1999 end-page: 152 article-title: RecPlay: A fully integrated practical record/replay system publication-title: ACM Transactions on Computer Systems – volume: 59 start-page: 180 issue: 2 year: 1999 end-page: 203 article-title: Towards integration of data race detection in DSM systems publication-title: Journal of Parallel and Distributed Computing (JPDC) – start-page: 215 year: 1999 end-page: 228 – start-page: 215 year: 1989 end-page: 226 – volume: 26 start-page: 85 issue: 12 year: 1991 end-page: 96 article-title: Detecting access anomalies in programs with critical sections publication-title: Proceedings of the ACM/ONR Workshop on Parallel and Distributed Debugging. ACM SIGPLAN Notices – year: 1990 – year: 1992 – volume: 21 start-page: 558 issue: 7 year: 1978 end-page: 565 article-title: Time, clocks, and the ordering of events in a distributed system publication-title: Communications of the ACM – volume: 1 start-page: 74 year: 1992 end-page: 88 article-title: What are race conditions? Some issues and formalizations publication-title: ACM Letters on Programming Languages and Systems – year: 1999 – ident: e_1_2_1_17_2 doi: 10.1145/68210.69224 – ident: e_1_2_1_9_2 doi: 10.1145/312203.312214 – ident: e_1_2_1_3_2 – ident: e_1_2_1_8_2 doi: 10.1145/122759.122767 – start-page: 215 volume-title: Parallel and Distributed Algorithms year: 1989 ident: e_1_2_1_16_2 – ident: e_1_2_1_14_2 doi: 10.1145/359545.359563 – volume-title: Proceedings of the USENIX Annual Technical Conference year: 1999 ident: e_1_2_1_12_2 – start-page: 215 volume-title: Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI) year: 1999 ident: e_1_2_1_13_2 – ident: e_1_2_1_6_2 doi: 10.1145/174266.171370 – ident: e_1_2_1_2_2 doi: 10.1145/130616.130623 – ident: e_1_2_1_7_2 doi: 10.1145/115952.115976 – ident: e_1_2_1_4_2 doi: 10.1145/318789.318809 – ident: e_1_2_1_5_2 doi: 10.1145/379605.379687 – ident: e_1_2_1_15_2 – ident: e_1_2_1_11_2 doi: 10.1006/jpdc.1999.1574 – ident: e_1_2_1_10_2 doi: 10.1145/265924.265927 |
| SSID | ssj0011031 |
| Score | 2.0687966 |
| Snippet | Data race detection is highly essential for debugging multithreaded programs and assuring their correctness. Nevertheless, there is no single universal... |
| SourceID | crossref wiley istex |
| SourceType | Enrichment Source Index Database Publisher |
| StartPage | 327 |
| SubjectTerms | concurrency data race instrumentation multithreading synchronization |
| Title | MultiRace: efficient on-the-fly data race detection in multithreaded C++ programs |
| URI | https://api.istex.fr/ark:/67375/WNG-DRQS31G3-T/fulltext.pdf https://onlinelibrary.wiley.com/doi/abs/10.1002%2Fcpe.1064 |
| Volume | 19 |
| WOSCitedRecordID | wos000244719500006&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVWIB databaseName: Wiley Online Library - Journals customDbUrl: eissn: 1532-0634 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0011031 issn: 1532-0626 databaseCode: DRFUL dateStart: 20010101 isFulltext: true titleUrlDefault: https://onlinelibrary.wiley.com providerName: Wiley-Blackwell |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1bS8MwFA66-eCL84rzRgTRh1G2Juna-ia7-SBjzg33VpI0geHoxjZF3_wJ_kZ_iSdpNxkoCEJp-3BSwsk5zcnJl-8gdGGS91rGHDwtpg7jAXO4FNLhYcgoqSgeBNIWm_Db7WAwCDsZqtKchUn5IZYJN-MZ9n9tHJyLWfmbNFROFLxW2TrKEzBblkP5erfZv1vuIZgCBilbKnEqELcvqGcrpLxouzIZ5Y1eX1eDVDvLNAv_6d822spiS3yTGsMOWlPJLios6jbgzI33UN-euu1yqa6xshQSMPPgcfL5_gHhINz16A0b6CieggyO1dzitRI8TLAFIM7BAHisYlwrlXCG8Jrto36z0avdOll5BUcSSpnjBTpUAlZcgnNXQ6TiMk8wXRXCE66rPdAg0UyYnRpCAu5LbQYOFlTS96SEyOMA5ZJxog4RrlLGQcXMNGOUVkRItev7KoaLxTQuoquFniOZcY-bEhijKGVNJhFoKzLaKqLzpeQk5dv4QebSDtVSgE-fDD7N96LHdiuqd-8fqNuiUQ8E7Qj9-qWo1mmY59FfBY_RZprcNYC-E5SbT5_VKdqQL_PhbHqWWeAXcp7fmw |
| linkProvider | Wiley-Blackwell |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV1fa9swED-ypLC-LGu70qzdpkHpHoJpbMmxvT2N_GnK0pCmCeubkGQJwoobkmysb_sI-4z7JD3JdkZgg8HA2H44GXF_fKfT6XcApzZ5b1Qq0NJS6jERM08oqTyRJIwGLS3iWLlmE9FoFN_eJuMKfCjPwuT4EJuEm7UM97-2Bm4T0ue_UUPVQuNrmz2BGkMtCqtQ6076s-FmE8F2MMjhUgOvhYF7iT3bCs7LsVveqGYZ-307SnVupl__rwk-h2dFdEk-5uqwBxWd7UO97NxACkM-gJk7dzsRSr8n2oFIoO8h99mvHz8xIMS7uXsgtniULJGGpHrtKrYyMs-IK0FcowqIVKek02ySosZr9QJm_d60M_CKBgueCihlXhibREtcc0khfIOxis9CyUxbylD6vgmRhYFh0u7VBEEsImWs6HBJpaJQKYw9DqGa3Wf6CEibMoE8ZnYYo7QlE2r8KNIpXiylaQPelYzmqkAft00w7niOmxxw5Ba33GrA2w3lIkfc-APNmZPVhkAsv9gKtSjkn0cXvDu5vqH-BeVTJHQi-uuXeGfcs8-X_0r4Bp4OpldDPrwcfTqG3TzVa8v7TqC6Xn7Vr2BHfVvPV8vXhTo-AtlY44s |
| linkToPdf | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV3dS-NAEB88K4cv6nmKX6d7cOhDCW2ymybRJ2mtJ0qp1WLflv0EUWKp9Tjf7k-4v_H-kpvdJD0EDwQhJHmYDct8ZGZnZ38D8M0l763SAi1N04CJlAVCSRWILGM0ahqRpso3m0h6vXQ0yvpzcFSdhSnwIWYJN2cZ_n_tDNyMtW38Qw1VY4OvLfYBaizOWmiVtc6gO7yYbSK4DgYFXGoUNDFwr7Bnm1GjGvvCG9UcY3--jFK9m-kuv2uCK7BURpfkuFCHTzBn8lVYrjo3kNKQP8PQn7sdCGUOifEgEuh7yEP-59dvDAjxbu-fiSseJROkIdpMfcVWTm5z4ksQp6gCQhtN2vU6KWu8Htdg2D25bn8PygYLgYooZUGc2sxIXHNJIUKLsUrIYslsS8pYhqGNkYWRZdLt1URRKhJlnehwSaWSWCmMPdZhPn_IzQaQFmUCeczcMEZpU2bUhkliNF5MU70JBxWjuSrRx10TjHte4CZHHLnFHbc24euMclwgbrxCs-9lNSMQkztXoZbE_KZ3yjuDyysanlJ-jYReRP_9Em_3T9xz662Ee_Cx3-nyi7Pe-TYsFpleV923A_PTyZP5Agvqx_T2cbJbauNfjnTjBg |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=MultiRace%3A+efficient+on%E2%80%90the%E2%80%90fly+data+race+detection+in+multithreaded+C%2B%2B+programs&rft.jtitle=Concurrency+and+computation&rft.au=Pozniansky%2C+Eli&rft.au=Schuster%2C+Assaf&rft.date=2007-03-10&rft.issn=1532-0626&rft.eissn=1532-0634&rft.volume=19&rft.issue=3&rft.spage=327&rft.epage=340&rft_id=info:doi/10.1002%2Fcpe.1064&rft.externalDBID=n%2Fa&rft.externalDocID=10_1002_cpe_1064 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1532-0626&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1532-0626&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1532-0626&client=summon |