Parallel assertions for debugging parallel programs
A parallel program must execute correctly even in the presence of unpredictable thread interleavings. This interleaving makes it hard to write correct parallel programs, and also makes it hard to find bugs in incorrect parallel programs. A range of tools have been developed to help debug parallel pr...
Saved in:
Published in | 2011 9th IEEE/ACM International Conference on Formal Methods and Models for Codesign pp. 181 - 190 |
---|---|
Main Authors | , , , , |
Format | Conference Proceeding |
Language | English |
Published |
IEEE
01.07.2011
|
Subjects | |
Online Access | Get full text |
ISBN | 9781457701177 1457701170 |
DOI | 10.1109/MEMCOD.2011.5970525 |
Cover
Abstract | A parallel program must execute correctly even in the presence of unpredictable thread interleavings. This interleaving makes it hard to write correct parallel programs, and also makes it hard to find bugs in incorrect parallel programs. A range of tools have been developed to help debug parallel programs, ranging from atomicity-violation and data-race detectors to model-checkers and theorem provers. One technique that has been successful for debugging sequential programs, but less effective for parallel programs, is running the program using assertion predicates provided by the developer. These assertions allow programmers to specify and check their assumptions. In a multi-threaded program, the programmer's assumptions include both the current state, and any actions (e.g. access to shared memory) that other, parallel executing threads might take. We introduce parallel assertions which allow programmers to express these assumptions for parallel programs using simple and intuitive syntax and semantics. We present a proof-of-concept implementation, and demonstrate its value by testing a number of benchmark programs using parallel assertions. |
---|---|
AbstractList | A parallel program must execute correctly even in the presence of unpredictable thread interleavings. This interleaving makes it hard to write correct parallel programs, and also makes it hard to find bugs in incorrect parallel programs. A range of tools have been developed to help debug parallel programs, ranging from atomicity-violation and data-race detectors to model-checkers and theorem provers. One technique that has been successful for debugging sequential programs, but less effective for parallel programs, is running the program using assertion predicates provided by the developer. These assertions allow programmers to specify and check their assumptions. In a multi-threaded program, the programmer's assumptions include both the current state, and any actions (e.g. access to shared memory) that other, parallel executing threads might take. We introduce parallel assertions which allow programmers to express these assumptions for parallel programs using simple and intuitive syntax and semantics. We present a proof-of-concept implementation, and demonstrate its value by testing a number of benchmark programs using parallel assertions. |
Author | Schwartz-Narbonne, Daniel Liu, Feng August, David Malik, Sharad Pondicherry, Tarun |
Author_xml | – sequence: 1 givenname: Daniel surname: Schwartz-Narbonne fullname: Schwartz-Narbonne, Daniel email: dstwo@princeton.edu organization: Princeton University – sequence: 2 givenname: Feng surname: Liu fullname: Liu, Feng email: fengliu@princeton.edu organization: Princeton University – sequence: 3 givenname: Tarun surname: Pondicherry fullname: Pondicherry, Tarun email: tpondich@princeton.edu organization: Princeton University – sequence: 4 givenname: David surname: August fullname: August, David email: august@princeton.edu organization: Princeton University – sequence: 5 givenname: Sharad surname: Malik fullname: Malik, Sharad email: sharad@princeton.edu organization: Princeton University |
BookMark | eNpVT8tOwzAQNAIkoOQLeskPJHhtrx9HFEpBalUOcK7cZB0FpUlklwN_TyTKgTnMaEa7I80duxrGgRhbAi8BuHvYrrbV7qkUHKBEZzgKvGCZMxYUGjOnVl3-88bcsCylTz5DaycNv2XyzUff99TnPiWKp24cUh7GmDd0-Grbbmjz6e9iimMb_THds-vg-0TZWRfs43n1Xr0Um936tXrcFB4MPxWNroWWITiOrjZgbbABUAlC0oBWKmcCIhxqtAqDaWYiD0IpMT96BXLBlr-9HRHtp9gdffzen6fKH45xSBg |
ContentType | Conference Proceeding |
DBID | 6IE 6IL CBEJK RIE RIL |
DOI | 10.1109/MEMCOD.2011.5970525 |
DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Xplore POP ALL IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP All) 1998-Present |
DatabaseTitleList | |
Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/ sourceTypes: Publisher |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Computer Science |
EISBN | 9781457701184 1457701189 |
EndPage | 190 |
ExternalDocumentID | 5970525 |
Genre | orig-research |
GroupedDBID | 6IE 6IF 6IK 6IL 6IN AAJGR AAWTH ACM ADFMO ALMA_UNASSIGNED_HOLDINGS APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK GUFHI IEGSK IERZE LHSKQ OCL RIE RIL |
ID | FETCH-LOGICAL-a170t-d6c263ff9059c7188f8f1542e5e61583497f551bc5845f7d45fea124426c2a413 |
IEDL.DBID | RIE |
ISBN | 9781457701177 1457701170 |
IngestDate | Wed Sep 03 07:04:09 EDT 2025 |
IsPeerReviewed | false |
IsScholarly | false |
Language | English |
LinkModel | DirectLink |
MergedId | FETCHMERGED-LOGICAL-a170t-d6c263ff9059c7188f8f1542e5e61583497f551bc5845f7d45fea124426c2a413 |
PageCount | 10 |
ParticipantIDs | ieee_primary_5970525 |
PublicationCentury | 2000 |
PublicationDate | 2011-July |
PublicationDateYYYYMMDD | 2011-07-01 |
PublicationDate_xml | – month: 07 year: 2011 text: 2011-July |
PublicationDecade | 2010 |
PublicationTitle | 2011 9th IEEE/ACM International Conference on Formal Methods and Models for Codesign |
PublicationTitleAbbrev | MEMCOD |
PublicationYear | 2011 |
Publisher | IEEE |
Publisher_xml | – name: IEEE |
SSID | ssj0000669370 |
Score | 1.4908907 |
Snippet | A parallel program must execute correctly even in the presence of unpredictable thread interleavings. This interleaving makes it hard to write correct parallel... |
SourceID | ieee |
SourceType | Publisher |
StartPage | 181 |
SubjectTerms | Codes Computer bugs Debugging Instruction sets Interference Safety Semantics Syntactics Writing |
Title | Parallel assertions for debugging parallel programs |
URI | https://ieeexplore.ieee.org/document/5970525 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV07T8MwED61nZgKtIi3MjDiPvJyPJdWFVKgA5W6VT4_GEBtVZKFX885cYNADCxREiWR4zj6Pp_v-w7gDhENTdg4C9FqFseRZDJVmmUxKgwx4aPQiZPzp3S-jB9XyaoF940WxhhTJZ-Zgdut1vL1VpUuVDYk8uvKrrWhTcOs1mo18RSCTkLaUaXdSjh3VmeNpZM_5t51aDwSw3yaT54fagtP_9gf9VUqeJl1IT80rM4qeRuUBQ7U5y_Pxv-2_Bj630K-YNFA1Am0zOYUuodKDoH_sXsQLeTeFVV5D2S1PO_GYkB0NtAGSxeTfg12hyt8RtdHH5az6ctkznw5BSapLwqmUxWmkbWCGJUiSMpsZolAhSYxRGuyKBbcEn9CRZwksVzTxkgH_yHdKAnszqCz2W7MOQQcxxqVyCxqFROBEqmwYyVUwlWaKRQX0HN9sN7Vjhlr__qXf5--gqM6UuuSYK-hU-xLc0NQX-Bt9Y2_AIU_pPY |
linkProvider | IEEE |
linkToHtml | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1NT4NAEJ3UetBT1db4LQeP0g9YWPZc21QttYc26a1h9sODpm0qXPz1zgLFaDx4IUCA7C6Q93Z23huAO0TUNGHjrodGuYz5iZuEUrkRQ4keBrzrWXFyPAlHc_a0CBY1uK-0MFrrPPlMt-1uvpav1jKzobIOkV9bdm0P9gn3WVCotaqICoEnYW03V28FnFuzs8rUqTzmpe9Qrys68SDuvzwUJp7lg39UWMkBZtiAeNe0Iq_krZ2l2Jafv1wb_9v2I2h9S_mcaQVSx1DTqxNo7Go5OOWv3QR_mmxtWZV3J8kX6O3X6BChdZTGzEalX53N7ooyp-ujBfPhYNYfuWVBBTehsUhdFUov9I0RxKkkgVJkIkMUytOBJmIT-UxwQwwKJbGSwHBFG51YAuDRjQnB3SnUV-uVPgOHY0-hFJFBJRlRKBEK05NCBlyGkURxDk07BstN4ZmxLLt_8ffpWzgYzeLxcvw4eb6EwyJua1Nir6CebjN9TcCf4k3-vr8AYE2oQw |
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%3Abook&rft.genre=proceeding&rft.title=2011+9th+IEEE%2FACM+International+Conference+on+Formal+Methods+and+Models+for+Codesign&rft.atitle=Parallel+assertions+for+debugging+parallel+programs&rft.au=Schwartz-Narbonne%2C+Daniel&rft.au=Liu%2C+Feng&rft.au=Pondicherry%2C+Tarun&rft.au=August%2C+David&rft.date=2011-07-01&rft.pub=IEEE&rft.isbn=9781457701177&rft.spage=181&rft.epage=190&rft_id=info:doi/10.1109%2FMEMCOD.2011.5970525&rft.externalDocID=5970525 |
thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781457701177/lc.gif&client=summon&freeimage=true |
thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781457701177/mc.gif&client=summon&freeimage=true |
thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781457701177/sc.gif&client=summon&freeimage=true |