{"id":{"repo_id":"mit","oai_identifier":"oai:dspace.mit.edu:1721.1/139203"},"canonical_url":"https://search.dev.ndltd.org/etd/mit/oai:dspace.mit.edu:1721.1/139203","repository":{"repo_id":"mit","name":"MIT","base_url":"https://dspace.mit.edu/oai/request"},"display":{"title":"Polyhedral Code Transformation for Julia","abstract":"Central processing unit (CPU) code performance is highly dependent on instruction and data parallelism. Instruction parallelism is largely focused on CPU cores and threading, while data parallelism relies on specialized vectors. Single-instruction, multiple-data (SIMD) vectors allow for a single instruction to be executed on multiple data elements in parallel, and is very fine-grained compared to instruction parallelism. This project focuses on data parallelism. One way to increase performance on CPU is to rearrange code to allow for more vectorization, such as considering striding of array accesses. The polyhedral model of computation describes a series of operations and abstractions for manipulating code without violating dependencies or correctness, but is more aggressive than typical compiler optimizations. This paper describes the process of applying the polyhedral model to the Julia language with the acceleration of code via increased vectorization and memory locality in mind. It succeeds as a tool for both experienced developers and those new to Julia and allows for more simple analysis and generation of algorithms for new and existing code.","abstract_html":"Central processing unit (CPU) code performance is highly dependent on instruction and data parallelism. Instruction parallelism is largely focused on CPU cores and threading, while data parallelism relies on specialized vectors. Single-instruction, multiple-data (SIMD) vectors allow for a single instruction to be executed on multiple data elements in parallel, and is very fine-grained compared to instruction parallelism. This project focuses on data parallelism. One way to increase performance on CPU is to rearrange code to allow for more vectorization, such as considering striding of array accesses. The polyhedral model of computation describes a series of operations and abstractions for manipulating code without violating dependencies or correctness, but is more aggressive than typical compiler optimizations. This paper describes the process of applying the polyhedral model to the Julia language with the acceleration of code via increased vectorization and memory locality in mind. It succeeds as a tool for both experienced developers and those new to Julia and allows for more simple analysis and generation of algorithms for new and existing code.","abstract_has_math":false,"creators":["Julian, Meredith"],"institution":"Massachusetts Institute of Technology","degree_name":"Master","degree_level":null,"degree_discipline":null,"degree_department":"Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science","school":null,"contributors":[],"advisors":["Edelman, Alan"],"committee_chairs":[],"committee_members":[],"year":2021,"date_issued":"2021-06","date_published":"2021-06","updated_at":"2026-07-22T22:21:35Z","subjects":[],"languages":[],"rights":["In Copyright - Educational Use Permitted","Copyright MIT"],"rights_urls":["http://rightsstatements.org/page/InC-EDU/1.0/"],"identifier_entries":[]},"links":{"outbound_url":"https://hdl.handle.net/1721.1/139203","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Edelman, Alan"]},{"key":"dc:contributor.department","label":"Department","values":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science"]},{"key":"dc:creator","label":"Author","values":["Julian, Meredith"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2022-01-14T14:56:27Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2022-01-14T14:56:27Z"]},{"key":"dc:date.issued","label":"Date","values":["2021-06"]},{"key":"dc:publisher","label":"Institution","values":["Massachusetts Institute of Technology"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Master","Master of Engineering in Electrical Engineering and Computer Science"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:rights","label":"Dc Rights","values":["In Copyright - Educational Use Permitted","Copyright MIT"]},{"key":"dc:rights.uri","label":"Rights URI","values":["http://rightsstatements.org/page/InC-EDU/1.0/"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["https://hdl.handle.net/1721.1/139203"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["Central processing unit (CPU) code performance is highly dependent on instruction and data parallelism. Instruction parallelism is largely focused on CPU cores and threading, while data parallelism relies on specialized vectors. Single-instruction, multiple-data (SIMD) vectors allow for a single instruction to be executed on multiple data elements in parallel, and is very fine-grained compared to instruction parallelism. This project focuses on data parallelism. One way to increase performance on CPU is to rearrange code to allow for more vectorization, such as considering striding of array accesses. The polyhedral model of computation describes a series of operations and abstractions for manipulating code without violating dependencies or correctness, but is more aggressive than typical compiler optimizations. This paper describes the process of applying the polyhedral model to the Julia language with the acceleration of code via increased vectorization and memory locality in mind. It succeeds as a tool for both experienced developers and those new to Julia and allows for more simple analysis and generation of algorithms for new and existing code."]},{"key":"dc:description.degree","label":"Dc Description Degree","values":["M.Eng."]},{"key":"dc:title","label":"Title","values":["Polyhedral Code Transformation for Julia"]}]}],"canonical_facts":{"dc:contributor.advisor":["Edelman, Alan"],"dc:contributor.department":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science"],"dc:creator":["Julian, Meredith"],"dc:date.accessioned":["2022-01-14T14:56:27Z"],"dc:date.available":["2022-01-14T14:56:27Z"],"dc:date.issued":["2021-06"],"dc:description.abstract":["Central processing unit (CPU) code performance is highly dependent on instruction and data parallelism. Instruction parallelism is largely focused on CPU cores and threading, while data parallelism relies on specialized vectors. Single-instruction, multiple-data (SIMD) vectors allow for a single instruction to be executed on multiple data elements in parallel, and is very fine-grained compared to instruction parallelism. This project focuses on data parallelism. One way to increase performance on CPU is to rearrange code to allow for more vectorization, such as considering striding of array accesses. The polyhedral model of computation describes a series of operations and abstractions for manipulating code without violating dependencies or correctness, but is more aggressive than typical compiler optimizations. This paper describes the process of applying the polyhedral model to the Julia language with the acceleration of code via increased vectorization and memory locality in mind. It succeeds as a tool for both experienced developers and those new to Julia and allows for more simple analysis and generation of algorithms for new and existing code."],"dc:description.degree":["M.Eng."],"dc:identifier.uri":["https://hdl.handle.net/1721.1/139203"],"dc:publisher":["Massachusetts Institute of Technology"],"dc:rights":["In Copyright - Educational Use Permitted","Copyright MIT"],"dc:rights.uri":["http://rightsstatements.org/page/InC-EDU/1.0/"],"dc:title":["Polyhedral Code Transformation for Julia"],"dc:type":["Thesis"],"thesis:degree_name":["Master","Master of Engineering in Electrical Engineering and Computer Science"]},"updated_at":"2026-07-22T22:21:35Z"}