{"title":"Automatic Parallelization of Programs via Software Stream Rewriting","authors":"Tao Tao, D. Plaisted","doi":"10.1109/IPDPSW55747.2022.00094","DOIUrl":null,"url":null,"abstract":"We introduce a system for automatically paral-lelizing programs using a parallel-by-default language based on stream rewriting. Our method is general and supports all programs that can be written in a typical high-level, imperative language. The technique is fine-grained and fully automatic. It requires no programmer annotation, static analysis, runtime profiling, or cutoff schemes. The only assumption is that all function arguments in the input program can be executed in parallel. This does not affect the generality of our system since the programmers can write sequential parts in continuation-passing style. Experiments show that the runtime can scale computation-bound programs up to 16 cores without performance degradation. Future works remain to improve key aspects of the runtime and further increase the system's performance.","PeriodicalId":286968,"journal":{"name":"2022 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)","volume":"38 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/IPDPSW55747.2022.00094","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
We introduce a system for automatically paral-lelizing programs using a parallel-by-default language based on stream rewriting. Our method is general and supports all programs that can be written in a typical high-level, imperative language. The technique is fine-grained and fully automatic. It requires no programmer annotation, static analysis, runtime profiling, or cutoff schemes. The only assumption is that all function arguments in the input program can be executed in parallel. This does not affect the generality of our system since the programmers can write sequential parts in continuation-passing style. Experiments show that the runtime can scale computation-bound programs up to 16 cores without performance degradation. Future works remain to improve key aspects of the runtime and further increase the system's performance.