Publication: Output nondeterminism detection for programming models combining dataflow with shared memory
dc.contributor.coauthor | N/A | |
dc.contributor.department | Department of Computer Engineering | |
dc.contributor.department | Graduate School of Sciences and Engineering | |
dc.contributor.kuauthor | Erten, Didem Unat | |
dc.contributor.kuauthor | Matar, Hassan Salehe | |
dc.contributor.kuauthor | Mutlu, Erdal | |
dc.contributor.kuauthor | Taşıran, Serdar | |
dc.contributor.schoolcollegeinstitute | College of Engineering | |
dc.contributor.schoolcollegeinstitute | GRADUATE SCHOOL OF SCIENCES AND ENGINEERING | |
dc.date.accessioned | 2024-11-09T23:27:00Z | |
dc.date.issued | 2018 | |
dc.description.abstract | Implementing highly concurrent programs can be challenging because programmers can easily introduce unintended nondeterminism, which has the potential to affect the program output. We propose and implement a technique for detecting unintended nondeterminism in applications developed on shared memory systems with dataflow execution model. Such nondeterminism bugs may be caused by missing or incorrect ordering of task dependencies that are used for ensuring certain ordering of tasks. The proposed method is based on the formulation of happens-before relation on tasks executions in a dataflow dependency graph. Its implementation is composed of two main phases; log recording and detection. For recording the necessary information from the execution, the tool instruments the dataflow framework and the applications, on top of the LLVM compiler infrastructure. Later it processes the collected log and reports on the found output nondeterminism in the execution. The tool can integrate well with the development cycle to provide the programmer with a testing framework against possible nondeterminism bugs. To demonstrate its effectiveness, we study a set of benchmark applications written in Atomic DataFlow programming model and report on real nondeterminism bugs in them. | |
dc.description.indexedby | WOS | |
dc.description.indexedby | Scopus | |
dc.description.openaccess | NO | |
dc.description.sponsoredbyTubitakEu | N/A | |
dc.description.sponsorship | Affordable Safe & Secure Mobility Evolution (ASSUME) project for smart mobility This work has been funded under the Affordable Safe & Secure Mobility Evolution (ASSUME) project for smart mobility. | |
dc.description.volume | 71 | |
dc.identifier.doi | 10.1016/j.parco.2017.11.008 | |
dc.identifier.eissn | 1872-7336 | |
dc.identifier.issn | 0167-8191 | |
dc.identifier.scopus | 2-s2.0-85035746770 | |
dc.identifier.uri | https://doi.org/10.1016/j.parco.2017.11.008 | |
dc.identifier.uri | https://hdl.handle.net/20.500.14288/11646 | |
dc.identifier.wos | 423005600003 | |
dc.keywords | Nondeterministh detection | |
dc.keywords | Happens-before | |
dc.keywords | Dataflow models | |
dc.keywords | Shared memory | |
dc.keywords | Data races | |
dc.language.iso | eng | |
dc.publisher | Elsevier Science Bv | |
dc.relation.ispartof | Parallel Computing | |
dc.subject | Computer science | |
dc.title | Output nondeterminism detection for programming models combining dataflow with shared memory | |
dc.type | Journal Article | |
dspace.entity.type | Publication | |
local.contributor.kuauthor | Matar, Hassan Salehe | |
local.contributor.kuauthor | Mutlu, Erdal | |
local.contributor.kuauthor | Taşıran, Serdar | |
local.contributor.kuauthor | Erten, Didem Unat | |
local.publication.orgunit1 | GRADUATE SCHOOL OF SCIENCES AND ENGINEERING | |
local.publication.orgunit1 | College of Engineering | |
local.publication.orgunit2 | Department of Computer Engineering | |
local.publication.orgunit2 | Graduate School of Sciences and Engineering | |
relation.isOrgUnitOfPublication | 89352e43-bf09-4ef4-82f6-6f9d0174ebae | |
relation.isOrgUnitOfPublication | 3fc31c89-e803-4eb1-af6b-6258bc42c3d8 | |
relation.isOrgUnitOfPublication.latestForDiscovery | 89352e43-bf09-4ef4-82f6-6f9d0174ebae | |
relation.isParentOrgUnitOfPublication | 8e756b23-2d4a-4ce8-b1b3-62c794a8c164 | |
relation.isParentOrgUnitOfPublication | 434c9663-2b11-4e66-9399-c863e2ebae43 | |
relation.isParentOrgUnitOfPublication.latestForDiscovery | 8e756b23-2d4a-4ce8-b1b3-62c794a8c164 |