{"title":"Catwalk.jl: An adaptive dispatch optimizer","authors":"K. Schäffer","doi":"10.21105/jcon.00098","DOIUrl":null,"url":null,"abstract":"Catwalk.jl is a JIT compiler implemented as a Julia library that generates optimized dispatch code based on statistical profiling. Unlike typical JIT compilers it requires some integration work from its users, allowing it to completely eliminate the need of complex deoptimization logic. It is able to compile new type- stabilized routes or reorder existing ones if the distribution of dispatched types changes during runtime and the customizable cost model predicts significant speedup compared to the best version that was previously compiled. Catwalk.jl was designed for situations when both composability and runtime polymorphism is required, and some runtime com- pilation overhead is acceptable for speeding up dynamic dispatch in hot loops.","PeriodicalId":443465,"journal":{"name":"JuliaCon Proceedings","volume":"24 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-04-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"JuliaCon Proceedings","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.21105/jcon.00098","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Catwalk.jl is a JIT compiler implemented as a Julia library that generates optimized dispatch code based on statistical profiling. Unlike typical JIT compilers it requires some integration work from its users, allowing it to completely eliminate the need of complex deoptimization logic. It is able to compile new type- stabilized routes or reorder existing ones if the distribution of dispatched types changes during runtime and the customizable cost model predicts significant speedup compared to the best version that was previously compiled. Catwalk.jl was designed for situations when both composability and runtime polymorphism is required, and some runtime com- pilation overhead is acceptable for speeding up dynamic dispatch in hot loops.