{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/46761"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/46761","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Practical static race detection for Java parallel loops","abstract":"Despite significant progress in recent years, the important problem of static race detection remains open. Previous techniques took a general approach and looked for races by analyzing the effects induced by low-level concurrency constructs (e.g., java.lang.Thread). But constructs and libraries for expressing parallelism at a higher level (e.g., fork-join, futures, parallel loops) are becoming available in all major programming languages. We claim that specializing an analysis to take advantage of the extra semantic information provided by the use of these constructs and libraries improves precision and scalability. We present IteRace, a set of techniques that are specialized to use the intrinsic thread, safety, and data-flow structure of collections and of the new loop-parallelism mechanism to be introduced in Java8. Our evaluation shows that IteRace is fast and precise enough to be practical. It scales to programs of hundreds of thousands of lines of code and it reports few race warnings, thus avoiding a common pitfall of static analyses. The tool revealed six bugs in real-world applications. We reported four of them, one had already been fixed, and three were new and the developers confirmed and fixed them.","abstract_html":"Despite significant progress in recent years, the important problem of static race detection remains open. Previous techniques took a general approach and looked for races by analyzing the effects induced by low-level concurrency constructs (e.g., java.lang.Thread). But constructs and libraries for expressing parallelism at a higher level (e.g., fork-join, futures, parallel loops) are becoming available in all major programming languages. We claim that specializing an analysis to take advantage of the extra semantic information provided by the use of these constructs and libraries improves precision and scalability. We present IteRace, a set of techniques that are specialized to use the intrinsic thread, safety, and data-flow structure of collections and of the new loop-parallelism mechanism to be introduced in Java8. Our evaluation shows that IteRace is fast and precise enough to be practical. It scales to programs of hundreds of thousands of lines of code and it reports few race warnings, thus avoiding a common pitfall of static analyses. The tool revealed six bugs in real-world applications. We reported four of them, one had already been fixed, and three were new and the developers confirmed and fixed them.","abstract_has_math":false,"creators":["Radoi, Cosmin"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"M.S.","degree_level":"Thesis","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Dig, Daniel"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2014,"date_issued":"2014-01-16T18:01:33Z","date_published":"2014-01-16T18:01:33Z","updated_at":"2026-07-22T22:25:36Z","subjects":["Java","static race detection","static analysis","synchronization"],"languages":["en"],"rights":["Copyright 2013 Cosmin Radoi"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/46761","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Dig, Daniel"]},{"key":"dc:creator","label":"Author","values":["Radoi, Cosmin"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2014-01-16T18:01:33Z","2013-12"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Thesis"]},{"key":"thesis:degree_name","label":"Degree Name","values":["M.S."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Java","static race detection","static analysis","synchronization"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2013 Cosmin Radoi"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/46761"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Despite significant progress in recent years, the important problem of static race detection remains open. Previous techniques took a general approach and looked for races by analyzing the effects induced by low-level concurrency constructs (e.g., java.lang.Thread). But constructs and libraries for expressing parallelism at a higher level (e.g., fork-join, futures, parallel loops) are becoming available in all major programming languages. We claim that specializing an analysis to take advantage of the extra semantic information provided by the use of these constructs and libraries improves precision and scalability. We present IteRace, a set of techniques that are specialized to use the intrinsic thread, safety, and data-flow structure of collections and of the new loop-parallelism mechanism to be introduced in Java8. Our evaluation shows that IteRace is fast and precise enough to be practical. It scales to programs of hundreds of thousands of lines of code and it reports few race warnings, thus avoiding a common pitfall of static analyses. The tool revealed six bugs in real-world applications. We reported four of them, one had already been fixed, and three were new and the developers confirmed and fixed them.","Item withdrawn by Laura Spradlin (lspradl2@illinois.edu) on 2013-12-10T16:17:22Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 2 main.pdf: 465646 bytes, checksum: 97fdb4a6a45fc08c82eea2c8bac652ef (MD5) Radoi_Cosmin.pdf: 465646 bytes, checksum: 97fdb4a6a45fc08c82eea2c8bac652ef (MD5)","Made available in DSpace on 2014-01-16T18:01:33Z (GMT). No. of bitstreams: 2 Cosmin_Radoi.pdf: 465690 bytes, checksum: 02ba0e6d8dffe930c7a16135ec84fb7d (MD5) license.txt: 4057 bytes, checksum: 0e3fa636aefa595bf52a44349e851b73 (MD5)"]},{"key":"dc:title","label":"Title","values":["Practical static race detection for Java parallel loops"]}]}],"canonical_facts":{"dc:contributor":["Dig, Daniel"],"dc:creator":["Radoi, Cosmin"],"dc:date":["2014-01-16T18:01:33Z","2013-12"],"dc:description":["Despite significant progress in recent years, the important problem of static race detection remains open. Previous techniques took a general approach and looked for races by analyzing the effects induced by low-level concurrency constructs (e.g., java.lang.Thread). But constructs and libraries for expressing parallelism at a higher level (e.g., fork-join, futures, parallel loops) are becoming available in all major programming languages. We claim that specializing an analysis to take advantage of the extra semantic information provided by the use of these constructs and libraries improves precision and scalability. We present IteRace, a set of techniques that are specialized to use the intrinsic thread, safety, and data-flow structure of collections and of the new loop-parallelism mechanism to be introduced in Java8. Our evaluation shows that IteRace is fast and precise enough to be practical. It scales to programs of hundreds of thousands of lines of code and it reports few race warnings, thus avoiding a common pitfall of static analyses. The tool revealed six bugs in real-world applications. We reported four of them, one had already been fixed, and three were new and the developers confirmed and fixed them.","Item withdrawn by Laura Spradlin (lspradl2@illinois.edu) on 2013-12-10T16:17:22Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 2 main.pdf: 465646 bytes, checksum: 97fdb4a6a45fc08c82eea2c8bac652ef (MD5) Radoi_Cosmin.pdf: 465646 bytes, checksum: 97fdb4a6a45fc08c82eea2c8bac652ef (MD5)","Made available in DSpace on 2014-01-16T18:01:33Z (GMT). No. of bitstreams: 2 Cosmin_Radoi.pdf: 465690 bytes, checksum: 02ba0e6d8dffe930c7a16135ec84fb7d (MD5) license.txt: 4057 bytes, checksum: 0e3fa636aefa595bf52a44349e851b73 (MD5)"],"dc:identifier":["http://hdl.handle.net/2142/46761"],"dc:language":["en"],"dc:rights":["Copyright 2013 Cosmin Radoi"],"dc:subject":["Java","static race detection","static analysis","synchronization"],"dc:title":["Practical static race detection for Java parallel loops"],"dc:type":["text"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Thesis"],"thesis:degree_name":["M.S."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:25:36Z"}