{"id":{"repo_id":"unlv","oai_identifier":"oai:oasis.library.unlv.edu:rtds-1314"},"canonical_url":"https://search.dev.ndltd.org/etd/unlv/oai:oasis.library.unlv.edu:rtds-1314","repository":{"repo_id":"unlv","name":"University of Nevada - Las Vegas","base_url":"https://oasis.library.unlv.edu/do/oai/"},"display":{"title":"Algorithms for automatic parallelism, optimization, and optimal processor utilization","abstract":"In this thesis we first investigate the reaching definitions optimization. This compiler optimization collects and stores information about where a variable is defined and how long that definition of the variable stays alive before it is redefined. We compare the old iterative solution to a new algorithm that uses the partialout concept. The partialout solution decreases execution time by eliminating the multiple passes required in the iterative solution. Currently, compilers that find a data dependence between two statements in a loop do not parallelize the loop. Next we investigate automatic parallelism for these loops by breaking the loop into a set of smaller loops, each of which contains no dependencies and thus can be executed in parallel. Finally, we introduce a set of algorithms for optimal processor utilization. The algorithms split the loop into a sequential series of parallel blocks, each block executing in parallel and utilizing the optimal number of processors possible.","abstract_html":"In this thesis we first investigate the reaching definitions optimization. This compiler optimization collects and stores information about where a variable is defined and how long that definition of the variable stays alive before it is redefined. We compare the old iterative solution to a new algorithm that uses the partialout concept. The partialout solution decreases execution time by eliminating the multiple passes required in the iterative solution. Currently, compilers that find a data dependence between two statements in a loop do not parallelize the loop. Next we investigate automatic parallelism for these loops by breaking the loop into a set of smaller loops, each of which contains no dependencies and thus can be executed in parallel. Finally, we introduce a set of algorithms for optimal processor utilization. The algorithms split the loop into a sequential series of parallel blocks, each block executing in parallel and utilizing the optimal number of processors possible.","abstract_has_math":false,"creators":["Macke, Katharine J"],"institution":"University of Nevada, Las Vegas","degree_name":"Master of Science (MS)","degree_level":"Thesis","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":[],"advisors":[],"committee_chairs":[],"committee_members":[],"year":1993,"date_issued":"1993-01-01T08:00:00Z","date_published":"1993-01-01T08:00:00Z","updated_at":"2026-07-24T05:24:22Z","subjects":[],"languages":["English"],"rights":["IN COPYRIGHT. For more information about this rights statement, please visit http://rightsstatements.org/vocab/InC/1.0/"],"rights_urls":[],"identifier_entries":[{"key":"dc:identifier","label":"Identifier","values":["https://oasis.library.unlv.edu/rtds/315"],"render_values":[{"text":"https://oasis.library.unlv.edu/rtds/315","href":"https://oasis.library.unlv.edu/rtds/315","code":true}]}]},"links":{"outbound_url":"https://doi.org/10.25669/gcjh-p8zv","outbound_label":"DOI","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:creator","label":"Author","values":["Macke, Katharine J"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:publisher","label":"Institution","values":["University of Nevada, Las Vegas"]},{"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":["Master of Science (MS)"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["English"]},{"key":"dc:rights","label":"Dc Rights","values":["IN COPYRIGHT. For more information about this rights statement, please visit http://rightsstatements.org/vocab/InC/1.0/"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["10.25669/gcjh-p8zv","https://oasis.library.unlv.edu/rtds/315","https://oasis.library.unlv.edu/context/rtds/article/1314/viewcontent/uc.pdf"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["In this thesis we first investigate the reaching definitions optimization. This compiler optimization collects and stores information about where a variable is defined and how long that definition of the variable stays alive before it is redefined. We compare the old iterative solution to a new algorithm that uses the partialout concept. The partialout solution decreases execution time by eliminating the multiple passes required in the iterative solution. Currently, compilers that find a data dependence between two statements in a loop do not parallelize the loop. Next we investigate automatic parallelism for these loops by breaking the loop into a set of smaller loops, each of which contains no dependencies and thus can be executed in parallel. Finally, we introduce a set of algorithms for optimal processor utilization. The algorithms split the loop into a sequential series of parallel blocks, each block executing in parallel and utilizing the optimal number of processors possible."]},{"key":"dc:format","label":"Dc Format","values":["pdf"]},{"key":"dc:title","label":"Title","values":["Algorithms for automatic parallelism, optimization, and optimal processor utilization"]}]}],"canonical_facts":{"dc:creator":["Macke, Katharine J"],"dc:description.abstract":["In this thesis we first investigate the reaching definitions optimization. This compiler optimization collects and stores information about where a variable is defined and how long that definition of the variable stays alive before it is redefined. We compare the old iterative solution to a new algorithm that uses the partialout concept. The partialout solution decreases execution time by eliminating the multiple passes required in the iterative solution. Currently, compilers that find a data dependence between two statements in a loop do not parallelize the loop. Next we investigate automatic parallelism for these loops by breaking the loop into a set of smaller loops, each of which contains no dependencies and thus can be executed in parallel. Finally, we introduce a set of algorithms for optimal processor utilization. The algorithms split the loop into a sequential series of parallel blocks, each block executing in parallel and utilizing the optimal number of processors possible."],"dc:format":["pdf"],"dc:identifier":["10.25669/gcjh-p8zv","https://oasis.library.unlv.edu/rtds/315","https://oasis.library.unlv.edu/context/rtds/article/1314/viewcontent/uc.pdf"],"dc:language":["English"],"dc:publisher":["University of Nevada, Las Vegas"],"dc:rights":["IN COPYRIGHT. For more information about this rights statement, please visit http://rightsstatements.org/vocab/InC/1.0/"],"dc:title":["Algorithms for automatic parallelism, optimization, and optimal processor utilization"],"dc:type":["Text"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Thesis"],"thesis:degree_name":["Master of Science (MS)"]},"updated_at":"2026-07-24T05:24:22Z"}