{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/95322"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/95322","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Using dynamic information to find vector parallelism","abstract":"Vectorization is key to performance on modern hardware. Almost all architectures include some form of vector instructions and the size of the instructions has been growing with newer designs. To take advantage of the performance that these systems offer, it is imperative that programs use vector instructions, and yet they do not always do so. To take advantage of vector hardware requires special instructions and since compliers only automatically generate them in simple cases the programmers need to work to use them. This requires programmer time and is often not portable. We believe that tools are needed to help guide even expert programmers. In this work we present the development of Vector Seeker, a tool to investigate vector parallelism. Our approach is to optimistically speculate on the parallel potential of codes by instrumenting original code and using that to find independent instances of the same instruction during the execution. We describe the preliminary work in which we developed a tool called MemVec, and how the limitations in that approach led to the development of Vector Seeker. We then describe Vector Seeker and verification testing of the tool on several benchmarks. Finally, we extend Vector Seeker to handle more production scale codes and describe our experiences with a large CFD code, PlasComCM.","abstract_html":"Vectorization is key to performance on modern hardware. Almost all architectures include some form of vector instructions and the size of the instructions has been growing with newer designs. To take advantage of the performance that these systems offer, it is imperative that programs use vector instructions, and yet they do not always do so. To take advantage of vector hardware requires special instructions and since compliers only automatically generate them in simple cases the programmers need to work to use them. This requires programmer time and is often not portable. We believe that tools are needed to help guide even expert programmers. In this work we present the development of Vector Seeker, a tool to investigate vector parallelism. Our approach is to optimistically speculate on the parallel potential of codes by instrumenting original code and using that to find independent instances of the same instruction during the execution. We describe the preliminary work in which we developed a tool called MemVec, and how the limitations in that approach led to the development of Vector Seeker. We then describe Vector Seeker and verification testing of the tool on several benchmarks. Finally, we extend Vector Seeker to handle more production scale codes and describe our experiences with a large CFD code, PlasComCM.","abstract_has_math":false,"creators":["Evans, Graham C."],"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","Gropp, William","Hwu, Wen-Mei","Hammond, Simon D"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2017,"date_issued":"2017-03-01T15:48:46Z","date_published":"2017-03-01T15:48:46Z","updated_at":"2026-07-22T22:26:37Z","subjects":["Vectorization","Programing Tools","Tracing"],"languages":["en"],"rights":["Copyright 2016 Graham Carl Evans"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/95322","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Padua, David","Gropp, William","Hwu, Wen-Mei","Hammond, Simon D"]},{"key":"dc:creator","label":"Author","values":["Evans, Graham C."]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2017-03-01T15:48:46Z","2016-11-17","2016-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":["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":["Vectorization","Programing Tools","Tracing"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2016 Graham Carl Evans"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/95322"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Vectorization is key to performance on modern hardware. Almost all architectures include some form of vector instructions and the size of the instructions has been growing with newer designs. To take advantage of the performance that these systems offer, it is imperative that programs use vector instructions, and yet they do not always do so. To take advantage of vector hardware requires special instructions and since compliers only automatically generate them in simple cases the programmers need to work to use them. This requires programmer time and is often not portable. We believe that tools are needed to help guide even expert programmers. In this work we present the development of Vector Seeker, a tool to investigate vector parallelism. Our approach is to optimistically speculate on the parallel potential of codes by instrumenting original code and using that to find independent instances of the same instruction during the execution. We describe the preliminary work in which we developed a tool called MemVec, and how the limitations in that approach led to the development of Vector Seeker. We then describe Vector Seeker and verification testing of the tool on several benchmarks. Finally, we extend Vector Seeker to handle more production scale codes and describe our experiences with a large CFD code, PlasComCM.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2017-02-28 without embargo terms","The student, Graham Evans, accepted the attached license on 2016-11-16 at 15:30.","The student, Graham Evans, submitted this Dissertation for approval on 2016-11-16 at 15:32.","This Dissertation was approved for publication on 2016-11-17 at 08:50.","DSpace SAF Submission Ingestion Package generated from Vireo submission #10254 on 2017-02-28 at 14:47:42","Made available in DSpace on 2017-03-01T15:48:46Z (GMT). No. of bitstreams: 2 EVANS-DISSERTATION-2016.pdf: 1138756 bytes, checksum: 51b18880d0b6474501f02b10c23cf3c0 (MD5) LICENSE.txt: 4209 bytes, checksum: bf566a667ca9d44a8439f72a9cac0125 (MD5) Previous issue date: 2016-11-17"]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["Using dynamic information to find vector parallelism"]}]}],"canonical_facts":{"dc:contributor":["Padua, David","Gropp, William","Hwu, Wen-Mei","Hammond, Simon D"],"dc:creator":["Evans, Graham C."],"dc:date":["2017-03-01T15:48:46Z","2016-11-17","2016-12"],"dc:description":["Vectorization is key to performance on modern hardware. Almost all architectures include some form of vector instructions and the size of the instructions has been growing with newer designs. To take advantage of the performance that these systems offer, it is imperative that programs use vector instructions, and yet they do not always do so. To take advantage of vector hardware requires special instructions and since compliers only automatically generate them in simple cases the programmers need to work to use them. This requires programmer time and is often not portable. We believe that tools are needed to help guide even expert programmers. In this work we present the development of Vector Seeker, a tool to investigate vector parallelism. Our approach is to optimistically speculate on the parallel potential of codes by instrumenting original code and using that to find independent instances of the same instruction during the execution. We describe the preliminary work in which we developed a tool called MemVec, and how the limitations in that approach led to the development of Vector Seeker. We then describe Vector Seeker and verification testing of the tool on several benchmarks. Finally, we extend Vector Seeker to handle more production scale codes and describe our experiences with a large CFD code, PlasComCM.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2017-02-28 without embargo terms","The student, Graham Evans, accepted the attached license on 2016-11-16 at 15:30.","The student, Graham Evans, submitted this Dissertation for approval on 2016-11-16 at 15:32.","This Dissertation was approved for publication on 2016-11-17 at 08:50.","DSpace SAF Submission Ingestion Package generated from Vireo submission #10254 on 2017-02-28 at 14:47:42","Made available in DSpace on 2017-03-01T15:48:46Z (GMT). No. of bitstreams: 2 EVANS-DISSERTATION-2016.pdf: 1138756 bytes, checksum: 51b18880d0b6474501f02b10c23cf3c0 (MD5) LICENSE.txt: 4209 bytes, checksum: bf566a667ca9d44a8439f72a9cac0125 (MD5) Previous issue date: 2016-11-17"],"dc:format":["application/pdf"],"dc:identifier":["http://hdl.handle.net/2142/95322"],"dc:language":["en"],"dc:rights":["Copyright 2016 Graham Carl Evans"],"dc:subject":["Vectorization","Programing Tools","Tracing"],"dc:title":["Using dynamic information to find vector parallelism"],"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:26:37Z"}