{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/24316"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/24316","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Data parallelism with hierarchically tiled objects","abstract":"Exploiting parallelism in modern machines increases the di culty of developing applications. Thus, new abstractions are needed that facilitate parallel programming and at the same time allow the programmer to control performance. Tiling is a very important primitive for controlling both parallelism and locality, but many traditional approaches to tiling are only applicable to computations on dense arrays. This thesis makes several contributions, all in the general area of data parallel operators for the programming of multiprocessors and their current most popular incarnation, multicores. It accomplishes this through the development of Ravenna, a library of data parallel operators for shared-memory systems. Ravenna extends previous work on a data type for dense arrays called the Hierarchically Tiled Array, or HTA. Ravenna supports arbitrary data types, enabling programmers to write data parallel computations based on other data types such as sets or graphs. Ravenna provides programmers with several mechanisms for tiling data types. In particular for data structures other than dense arrays, it provides a generalized approach called functional tiling. Functional tiling provides programmers with a separation of concerns between implementing a computation and how to tile it. Functional tiling in this way also acts as a tuning mechanism that allows programmers to tune the performance of their codes by plugging in di erent tiling strategies. This thesis evaluates the programming model of expressing programs as a sequence of higher level data parallel operators through examining several applications from di erent domains written in Ravenna. These applications include simple microbenchmarks used to compare against another shared-memory programming library, a solver for banded linear systems called SPIKE, n-body simulation, clustering, and discrete optimization. The evaluation shows that these programs can be elegantly expressed by the programming model, and that the model's applicability is not limited to computations based on dense arrays. Particularly, it shows that the resulting programs resemble conventional, sequential programs, simplifying programmer e ort and that the available abstractions provided by Ravenna allow programmers to tune in order to obtain good parallel performance.","abstract_html":"Exploiting parallelism in modern machines increases the di culty of developing applications. Thus, new abstractions are needed that facilitate parallel programming and at the same time allow the programmer to control performance. Tiling is a very important primitive for controlling both parallelism and locality, but many traditional approaches to tiling are only applicable to computations on dense arrays. This thesis makes several contributions, all in the general area of data parallel operators for the programming of multiprocessors and their current most popular incarnation, multicores. It accomplishes this through the development of Ravenna, a library of data parallel operators for shared-memory systems. Ravenna extends previous work on a data type for dense arrays called the Hierarchically Tiled Array, or HTA. Ravenna supports arbitrary data types, enabling programmers to write data parallel computations based on other data types such as sets or graphs. Ravenna provides programmers with several mechanisms for tiling data types. In particular for data structures other than dense arrays, it provides a generalized approach called functional tiling. Functional tiling provides programmers with a separation of concerns between implementing a computation and how to tile it. Functional tiling in this way also acts as a tuning mechanism that allows programmers to tune the performance of their codes by plugging in di erent tiling strategies. This thesis evaluates the programming model of expressing programs as a sequence of higher level data parallel operators through examining several applications from di erent domains written in Ravenna. These applications include simple microbenchmarks used to compare against another shared-memory programming library, a solver for banded linear systems called SPIKE, n-body simulation, clustering, and discrete optimization. The evaluation shows that these programs can be elegantly expressed by the programming model, and that the model&#x27;s applicability is not limited to computations based on dense arrays. Particularly, it shows that the resulting programs resemble conventional, sequential programs, simplifying programmer e ort and that the available abstractions provided by Ravenna allow programmers to tune in order to obtain good parallel performance.","abstract_has_math":false,"creators":["Brodman, James 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 A.","Garzaran, Maria J.","Cytron, Ron","Gropp, William D.","Heath, Michael T."],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2011,"date_issued":"2011-05-25T14:53:56Z","date_published":"2011-05-25T14:53:56Z","updated_at":"2026-07-22T22:25:23Z","subjects":["parallelism","parallel programming","data parallelism","tiling"],"languages":["en"],"rights":["Copyright 2011 James C Brodman"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/24316","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Padua, David A.","Garzaran, Maria J.","Cytron, Ron","Gropp, William D.","Heath, Michael T."]},{"key":"dc:creator","label":"Author","values":["Brodman, James C."]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2011-05-25T14:53:56Z","2011-05"]},{"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":["parallelism","parallel programming","data parallelism","tiling"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2011 James C Brodman"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/24316"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Exploiting parallelism in modern machines increases the di culty of developing applications. Thus, new abstractions are needed that facilitate parallel programming and at the same time allow the programmer to control performance. Tiling is a very important primitive for controlling both parallelism and locality, but many traditional approaches to tiling are only applicable to computations on dense arrays. This thesis makes several contributions, all in the general area of data parallel operators for the programming of multiprocessors and their current most popular incarnation, multicores. It accomplishes this through the development of Ravenna, a library of data parallel operators for shared-memory systems. Ravenna extends previous work on a data type for dense arrays called the Hierarchically Tiled Array, or HTA. Ravenna supports arbitrary data types, enabling programmers to write data parallel computations based on other data types such as sets or graphs. Ravenna provides programmers with several mechanisms for tiling data types. In particular for data structures other than dense arrays, it provides a generalized approach called functional tiling. Functional tiling provides programmers with a separation of concerns between implementing a computation and how to tile it. Functional tiling in this way also acts as a tuning mechanism that allows programmers to tune the performance of their codes by plugging in di erent tiling strategies. This thesis evaluates the programming model of expressing programs as a sequence of higher level data parallel operators through examining several applications from di erent domains written in Ravenna. These applications include simple microbenchmarks used to compare against another shared-memory programming library, a solver for banded linear systems called SPIKE, n-body simulation, clustering, and discrete optimization. The evaluation shows that these programs can be elegantly expressed by the programming model, and that the model's applicability is not limited to computations based on dense arrays. Particularly, it shows that the resulting programs resemble conventional, sequential programs, simplifying programmer e ort and that the available abstractions provided by Ravenna allow programmers to tune in order to obtain good parallel performance.","Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2010-12-16T17:14:25Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Brodman_James.pdf: 8550472 bytes, checksum: 1c9802b624e30af44228876b68b83994 (MD5)","Made available in DSpace on 2011-05-25T14:53:56Z (GMT). No. of bitstreams: 2 Brodman_James.pdf: 8550472 bytes, checksum: 1c9802b624e30af44228876b68b83994 (MD5) license.txt: 4063 bytes, checksum: 7b52a001195a01d4147b3bbbd9ce5f78 (MD5)"]},{"key":"dc:title","label":"Title","values":["Data parallelism with hierarchically tiled objects"]}]}],"canonical_facts":{"dc:contributor":["Padua, David A.","Garzaran, Maria J.","Cytron, Ron","Gropp, William D.","Heath, Michael T."],"dc:creator":["Brodman, James C."],"dc:date":["2011-05-25T14:53:56Z","2011-05"],"dc:description":["Exploiting parallelism in modern machines increases the di culty of developing applications. Thus, new abstractions are needed that facilitate parallel programming and at the same time allow the programmer to control performance. Tiling is a very important primitive for controlling both parallelism and locality, but many traditional approaches to tiling are only applicable to computations on dense arrays. This thesis makes several contributions, all in the general area of data parallel operators for the programming of multiprocessors and their current most popular incarnation, multicores. It accomplishes this through the development of Ravenna, a library of data parallel operators for shared-memory systems. Ravenna extends previous work on a data type for dense arrays called the Hierarchically Tiled Array, or HTA. Ravenna supports arbitrary data types, enabling programmers to write data parallel computations based on other data types such as sets or graphs. Ravenna provides programmers with several mechanisms for tiling data types. In particular for data structures other than dense arrays, it provides a generalized approach called functional tiling. Functional tiling provides programmers with a separation of concerns between implementing a computation and how to tile it. Functional tiling in this way also acts as a tuning mechanism that allows programmers to tune the performance of their codes by plugging in di erent tiling strategies. This thesis evaluates the programming model of expressing programs as a sequence of higher level data parallel operators through examining several applications from di erent domains written in Ravenna. These applications include simple microbenchmarks used to compare against another shared-memory programming library, a solver for banded linear systems called SPIKE, n-body simulation, clustering, and discrete optimization. The evaluation shows that these programs can be elegantly expressed by the programming model, and that the model's applicability is not limited to computations based on dense arrays. Particularly, it shows that the resulting programs resemble conventional, sequential programs, simplifying programmer e ort and that the available abstractions provided by Ravenna allow programmers to tune in order to obtain good parallel performance.","Item withdrawn by Mark Zulauf (zulauf@illinois.edu) on 2010-12-16T17:14:25Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Brodman_James.pdf: 8550472 bytes, checksum: 1c9802b624e30af44228876b68b83994 (MD5)","Made available in DSpace on 2011-05-25T14:53:56Z (GMT). No. of bitstreams: 2 Brodman_James.pdf: 8550472 bytes, checksum: 1c9802b624e30af44228876b68b83994 (MD5) license.txt: 4063 bytes, checksum: 7b52a001195a01d4147b3bbbd9ce5f78 (MD5)"],"dc:identifier":["http://hdl.handle.net/2142/24316"],"dc:language":["en"],"dc:rights":["Copyright 2011 James C Brodman"],"dc:subject":["parallelism","parallel programming","data parallelism","tiling"],"dc:title":["Data parallelism with hierarchically tiled objects"],"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:23Z"}