{"title":"Algebraic Transformation of Descriptive Vector Byte-code Sequences","authors":"M. Larsen","doi":"10.1145/3009925.3009926","DOIUrl":null,"url":null,"abstract":"Both high-productivity and high-performance are two often sought after aspects of scientific programming. Python gives the programmer high-productivity, but even with NumPy it is often not high-performant because of the GIL1, which makes it inherently single threaded. Bohrium intercepts NumPy calls and generates an intermediate language, Bohrium byte-code, before being compiled to OpenCL kernels. It thus grants Python/NumPy the ability to be easily run on multicore systems or GPUs, without changing the source code. The Bohrium byte-code can be optimized, by transforming byte-code sequences into more performant ones. This way, the scientific programmer will not need to change her code to utilize special performant constructs.","PeriodicalId":311948,"journal":{"name":"Proceedings of the Doctoral Symposium of the 17th International Middleware Conference","volume":"97 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-12-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the Doctoral Symposium of the 17th International Middleware Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3009925.3009926","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Both high-productivity and high-performance are two often sought after aspects of scientific programming. Python gives the programmer high-productivity, but even with NumPy it is often not high-performant because of the GIL1, which makes it inherently single threaded. Bohrium intercepts NumPy calls and generates an intermediate language, Bohrium byte-code, before being compiled to OpenCL kernels. It thus grants Python/NumPy the ability to be easily run on multicore systems or GPUs, without changing the source code. The Bohrium byte-code can be optimized, by transforming byte-code sequences into more performant ones. This way, the scientific programmer will not need to change her code to utilize special performant constructs.