{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/109402"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/109402","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Code generation of array constructs for distributed memory systems","abstract":"Programming for high-performance systems to fully utilize the potential of the computing system is a complex problem. This is particularly evident when programming distributed memory clusters containing multiple NUMA chips and GPUs on each node since it would require a complex combination of MPI, OpenMP, CUDA, OpenCL, etc to achieve high performance even for sequentially simplistic codes. Programs requiring high performance are usually painstakingly written by hand in C/C++ or Fortran using MPI+X to target these machines. This work presents a multi-layer code generation framework Vaani that takes a very high-level representation of computations and generates C+MPI code by transforming the input through a series of intermediate representations. The very high-level nature of the language greatly facilitates programming parallel systems. Additionally, the use of multiple representations provide a flexible and transparent venue for the user to interact and customize the transformation process to generate code suitable to the user and the target machine. Experimental evaluation shows that the current implementation of Vaani generates code that is competitive with handwritten codes and hand-optimized libraries.","abstract_html":"Programming for high-performance systems to fully utilize the potential of the computing system is a complex problem. This is particularly evident when programming distributed memory clusters containing multiple NUMA chips and GPUs on each node since it would require a complex combination of MPI, OpenMP, CUDA, OpenCL, etc to achieve high performance even for sequentially simplistic codes. Programs requiring high performance are usually painstakingly written by hand in C/C++ or Fortran using MPI+X to target these machines. This work presents a multi-layer code generation framework Vaani that takes a very high-level representation of computations and generates C+MPI code by transforming the input through a series of intermediate representations. The very high-level nature of the language greatly facilitates programming parallel systems. Additionally, the use of multiple representations provide a flexible and transparent venue for the user to interact and customize the transformation process to generate code suitable to the user and the target machine. Experimental evaluation shows that the current implementation of Vaani generates code that is competitive with handwritten codes and hand-optimized libraries.","abstract_has_math":false,"creators":["Pothukuchi, Sweta Yamini"],"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","Kale, Laxmikant V","Kloeckner, Andreas","Franchetti, Franz"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2021,"date_issued":"2021-03-05T21:38:11Z","date_published":"2021-03-05T21:38:11Z","updated_at":"2026-07-22T22:24:50Z","subjects":["Code Generation","Distributed Memory Sytems","MPI","High Level Abstractions"],"languages":["en"],"rights":["Copyright 2020 Sweta Yamini Pothukuchi"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/109402","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Padua, David","Kale, Laxmikant V","Kloeckner, Andreas","Franchetti, Franz"]},{"key":"dc:creator","label":"Author","values":["Pothukuchi, Sweta Yamini"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2021-03-05T21:38:11Z","2020-12-01","2020-12"]},{"key":"dc:type","label":"Dc Type","values":["text","Thesis"]},{"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":["Code Generation","Distributed Memory Sytems","MPI","High Level Abstractions"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2020 Sweta Yamini Pothukuchi"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/109402"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Programming for high-performance systems to fully utilize the potential of the computing system is a complex problem. This is particularly evident when programming distributed memory clusters containing multiple NUMA chips and GPUs on each node since it would require a complex combination of MPI, OpenMP, CUDA, OpenCL, etc to achieve high performance even for sequentially simplistic codes. Programs requiring high performance are usually painstakingly written by hand in C/C++ or Fortran using MPI+X to target these machines. This work presents a multi-layer code generation framework Vaani that takes a very high-level representation of computations and generates C+MPI code by transforming the input through a series of intermediate representations. The very high-level nature of the language greatly facilitates programming parallel systems. Additionally, the use of multiple representations provide a flexible and transparent venue for the user to interact and customize the transformation process to generate code suitable to the user and the target machine. Experimental evaluation shows that the current implementation of Vaani generates code that is competitive with handwritten codes and hand-optimized libraries.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2021-03-04 without embargo terms","The student, Sweta Yamini Pothukuchi, accepted the attached license on 2020-11-30 at 13:42.","The student, Sweta Yamini Pothukuchi, submitted this Dissertation for approval on 2020-11-30 at 14:34.","This Dissertation was approved for publication on 2020-12-01 at 14:15.","DSpace SAF Submission Ingestion Package generated from Vireo submission #15990 on 2021-03-04 at 15:35:23","Made available in DSpace on 2021-03-05T21:38:11Z (GMT). No. of bitstreams: 2 POTHUKUCHI-DISSERTATION-2020.pdf: 3706761 bytes, checksum: 4d240c1c752184d215b8f5001b719c46 (MD5) LICENSE.txt: 4220 bytes, checksum: 7d454c8b8165109f7deab1df73f8f252 (MD5) Previous issue date: 2020-12-01"]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["Code generation of array constructs for distributed memory systems"]}]}],"canonical_facts":{"dc:contributor":["Padua, David","Kale, Laxmikant V","Kloeckner, Andreas","Franchetti, Franz"],"dc:creator":["Pothukuchi, Sweta Yamini"],"dc:date":["2021-03-05T21:38:11Z","2020-12-01","2020-12"],"dc:description":["Programming for high-performance systems to fully utilize the potential of the computing system is a complex problem. This is particularly evident when programming distributed memory clusters containing multiple NUMA chips and GPUs on each node since it would require a complex combination of MPI, OpenMP, CUDA, OpenCL, etc to achieve high performance even for sequentially simplistic codes. Programs requiring high performance are usually painstakingly written by hand in C/C++ or Fortran using MPI+X to target these machines. This work presents a multi-layer code generation framework Vaani that takes a very high-level representation of computations and generates C+MPI code by transforming the input through a series of intermediate representations. The very high-level nature of the language greatly facilitates programming parallel systems. Additionally, the use of multiple representations provide a flexible and transparent venue for the user to interact and customize the transformation process to generate code suitable to the user and the target machine. Experimental evaluation shows that the current implementation of Vaani generates code that is competitive with handwritten codes and hand-optimized libraries.","Submission original under an indefinite embargo labeled 'Open Access'. The submission was exported from vireo on 2021-03-04 without embargo terms","The student, Sweta Yamini Pothukuchi, accepted the attached license on 2020-11-30 at 13:42.","The student, Sweta Yamini Pothukuchi, submitted this Dissertation for approval on 2020-11-30 at 14:34.","This Dissertation was approved for publication on 2020-12-01 at 14:15.","DSpace SAF Submission Ingestion Package generated from Vireo submission #15990 on 2021-03-04 at 15:35:23","Made available in DSpace on 2021-03-05T21:38:11Z (GMT). No. of bitstreams: 2 POTHUKUCHI-DISSERTATION-2020.pdf: 3706761 bytes, checksum: 4d240c1c752184d215b8f5001b719c46 (MD5) LICENSE.txt: 4220 bytes, checksum: 7d454c8b8165109f7deab1df73f8f252 (MD5) Previous issue date: 2020-12-01"],"dc:format":["application/pdf"],"dc:identifier":["http://hdl.handle.net/2142/109402"],"dc:language":["en"],"dc:rights":["Copyright 2020 Sweta Yamini Pothukuchi"],"dc:subject":["Code Generation","Distributed Memory Sytems","MPI","High Level Abstractions"],"dc:title":["Code generation of array constructs for distributed memory systems"],"dc:type":["text","Thesis"],"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:24:50Z"}