Skip to content

An adaptive optimizer for speeding up dynamic dispatch in Julia

License

Notifications You must be signed in to change notification settings

tisztamo/Catwalk.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Catwalk.jl

DOI DOI

Documentation CI Lifecycle ColPrac: Contributor Guide on Collaborative Practices for Community Packages

Catwalk.jl can speed up long-running Julia processes by minimizing the overhead of dynamic dispatch. It is a JIT compiler that continuosly re-optimizes dispatch code based on data collected at runtime.

Speedup demo source code of this test

It profiles user-specified call sites, estimating the distribution of dynamically dispatched types during runtime, and generates fast static routes for the most frequent ones on the fly.

The statistical profiler has very low overhead and can be configured to handle situations where the distribution of dispatched types changes relatively fast.

To minimize compilation overhead, recompilation only occurs when the distribution changed enough and the tunable cost model predicts significant speedup compared to the best version that was previously compiled.

Documentation (dev)

About

An adaptive optimizer for speeding up dynamic dispatch in Julia

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages