{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/20715"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/20715","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Automatic parallelization of Prolog programs","abstract":"Prolog has a number of advantages for use in rapid prototyping. The explotation of parallelism holds the promise of making these prototypes directly executable. This dissertation addresses the parallel execution of Prolog programs without restricting the language to a pure subset or requiring user annotations. We begin by presenting methods for the OR parallel execution of Prolog programs with side effects such as assert, retract, and cut. Our methods have been implemented in an interpreter on the Alliant FX/8 and some results are presented. The second portion describes a method for estimating the inherent parallelism in Prolog programs. This work is based on the critical path methods of Kumar and is used to measure the best possible speedups under OR and AND/OR parallel models. The results of timing the Berkeley Benchmarks with these methods are presented. The last portion of the dissertation describes a method for applying Fortran techniques to Prolog programs. It begins by describing the construction of control flow graphs and shows how to identify recursive procedures that can be converted to loops. Lastly, dependence analysis methods and several source-to-source transformations from Fortran are used to synchronize and parallelize these loops. The results of hand-applying these transformations to a number of programs are presented. We demonstrate that we are able to obtain significant speedups on a number of programs by applying our transformations.","abstract_html":"Prolog has a number of advantages for use in rapid prototyping. The explotation of parallelism holds the promise of making these prototypes directly executable. This dissertation addresses the parallel execution of Prolog programs without restricting the language to a pure subset or requiring user annotations. We begin by presenting methods for the OR parallel execution of Prolog programs with side effects such as assert, retract, and cut. Our methods have been implemented in an interpreter on the Alliant FX/8 and some results are presented. The second portion describes a method for estimating the inherent parallelism in Prolog programs. This work is based on the critical path methods of Kumar and is used to measure the best possible speedups under OR and AND/OR parallel models. The results of timing the Berkeley Benchmarks with these methods are presented. The last portion of the dissertation describes a method for applying Fortran techniques to Prolog programs. It begins by describing the construction of control flow graphs and shows how to identify recursive procedures that can be converted to loops. Lastly, dependence analysis methods and several source-to-source transformations from Fortran are used to synchronize and parallelize these loops. The results of hand-applying these transformations to a number of programs are presented. We demonstrate that we are able to obtain significant speedups on a number of programs by applying our transformations.","abstract_has_math":false,"creators":["Sehr, David Christopher"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"Ph.D.","degree_level":"Dissertation","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Padua, David A."],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2011,"date_issued":"2011-05-07T12:47:13Z","date_published":"2011-05-07T12:47:13Z","updated_at":"2026-07-22T22:25:16Z","subjects":["Computer Science"],"languages":["eng"],"rights":["Copyright 1992 Sehr, David Christopher"],"rights_urls":[],"identifier_entries":[{"key":"dc:identifier","label":"Identifier","values":["AAI9305690","(UMI)AAI9305690"],"render_values":[{"text":"AAI9305690","href":null,"code":true},{"text":"(UMI)AAI9305690","href":null,"code":true}]}]},"links":{"outbound_url":"http://hdl.handle.net/2142/20715","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Padua, David A."]},{"key":"dc:creator","label":"Author","values":["Sehr, David Christopher"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2011-05-07T12:47:13Z","10000-01-01","1992"]},{"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":["Dissertation"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Ph.D."]},{"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":["Computer Science"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["eng"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 1992 Sehr, David Christopher"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["AAI9305690","(UMI)AAI9305690","http://hdl.handle.net/2142/20715"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Prolog has a number of advantages for use in rapid prototyping. The explotation of parallelism holds the promise of making these prototypes directly executable. This dissertation addresses the parallel execution of Prolog programs without restricting the language to a pure subset or requiring user annotations. We begin by presenting methods for the OR parallel execution of Prolog programs with side effects such as assert, retract, and cut. Our methods have been implemented in an interpreter on the Alliant FX/8 and some results are presented. The second portion describes a method for estimating the inherent parallelism in Prolog programs. This work is based on the critical path methods of Kumar and is used to measure the best possible speedups under OR and AND/OR parallel models. The results of timing the Berkeley Benchmarks with these methods are presented. The last portion of the dissertation describes a method for applying Fortran techniques to Prolog programs. It begins by describing the construction of control flow graphs and shows how to identify recursive procedures that can be converted to loops. Lastly, dependence analysis methods and several source-to-source transformations from Fortran are used to synchronize and parallelize these loops. The results of hand-applying these transformations to a number of programs are presented. We demonstrate that we are able to obtain significant speedups on a number of programs by applying our transformations.","Made available in DSpace on 2011-05-07T12:47:13Z (GMT). No. of bitstreams: 2 license.txt: 4922 bytes, checksum: 910b249b4beec47e7ab768910c8f966f (MD5) 9305690.pdf: 10466870 bytes, checksum: 5a036e988bc781f80c1df426fcdf64cd (MD5) Previous issue date: 1992","Item marked as restricted to the 'UIUC Users [automated]' Group (id=2) by Howard Ding (hding2@illinois.edu) on 2011-05-07T14:45:46Z Item is restricted indefinitely.","Restriction data tranferred 2014-07-01T11:20:21-05:00 Original Data Group with Access UIUC Users [automated] Release Date: none Reason: ETDs are only available to UIUC Users without author permission","ETDs are only available to UIUC Users without author permission","U of I Only"]},{"key":"dc:title","label":"Title","values":["Automatic parallelization of Prolog programs"]}]}],"canonical_facts":{"dc:contributor":["Padua, David A."],"dc:creator":["Sehr, David Christopher"],"dc:date":["2011-05-07T12:47:13Z","10000-01-01","1992"],"dc:description":["Prolog has a number of advantages for use in rapid prototyping. The explotation of parallelism holds the promise of making these prototypes directly executable. This dissertation addresses the parallel execution of Prolog programs without restricting the language to a pure subset or requiring user annotations. We begin by presenting methods for the OR parallel execution of Prolog programs with side effects such as assert, retract, and cut. Our methods have been implemented in an interpreter on the Alliant FX/8 and some results are presented. The second portion describes a method for estimating the inherent parallelism in Prolog programs. This work is based on the critical path methods of Kumar and is used to measure the best possible speedups under OR and AND/OR parallel models. The results of timing the Berkeley Benchmarks with these methods are presented. The last portion of the dissertation describes a method for applying Fortran techniques to Prolog programs. It begins by describing the construction of control flow graphs and shows how to identify recursive procedures that can be converted to loops. Lastly, dependence analysis methods and several source-to-source transformations from Fortran are used to synchronize and parallelize these loops. The results of hand-applying these transformations to a number of programs are presented. We demonstrate that we are able to obtain significant speedups on a number of programs by applying our transformations.","Made available in DSpace on 2011-05-07T12:47:13Z (GMT). No. of bitstreams: 2 license.txt: 4922 bytes, checksum: 910b249b4beec47e7ab768910c8f966f (MD5) 9305690.pdf: 10466870 bytes, checksum: 5a036e988bc781f80c1df426fcdf64cd (MD5) Previous issue date: 1992","Item marked as restricted to the 'UIUC Users [automated]' Group (id=2) by Howard Ding (hding2@illinois.edu) on 2011-05-07T14:45:46Z Item is restricted indefinitely.","Restriction data tranferred 2014-07-01T11:20:21-05:00 Original Data Group with Access UIUC Users [automated] Release Date: none Reason: ETDs are only available to UIUC Users without author permission","ETDs are only available to UIUC Users without author permission","U of I Only"],"dc:identifier":["AAI9305690","(UMI)AAI9305690","http://hdl.handle.net/2142/20715"],"dc:language":["eng"],"dc:rights":["Copyright 1992 Sehr, David Christopher"],"dc:subject":["Computer Science"],"dc:title":["Automatic parallelization of Prolog programs"],"dc:type":["text"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Dissertation"],"thesis:degree_name":["Ph.D."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:25:16Z"}