Entry tags:
Erasing the difference between symbolic computing and compiler optimizations in Julia
Chris Rackauckas says: "In 2022, the difference between symbolic computing and compiler optimizations will be erased in Julia. Anyone who can come up with a set of symbolic mathematical rules will automatically receive an optimized compiler pass to build better code."
Details in the comments.
Details in the comments.
no subject
no subject
*************
"Hey, I only need 11 digits of accuracy so please optimize my model according to this tolerance" and boom it's able to simplify the code and accelerate it by almost an order of magnitude! This is for a system of differential-algebraic equations in rigid body dynamics / robotics. Now the kicker: 10 lines of code are all the user needs to define in order to get that 8.5x speedup!!! "Writing a customized compiler pass" has changed from the realm of computer science to the realm of mathematics and engineering via e-graphs.
In 2022 this will be connected to the Symbolics.jl array symbolics to give automated array operation simplification system that can be applied to Julia quasi-static code. Think XLA but fully customizable from the user side. There will be default rule sets but customization. Because it's so high level, anyone can join in this exercise. No compiler expertise required. Contribute to the rule sets ( https://github.com/JuliaSymbolics/SymbolicUtils.jl/blob/master/src/simplify_rules.jl ), add a few linear algebra simplifications. Add some trig rules. Make some benchmark problems. Any Julia programmer can do it.
I don't know what the democratization of code simplifier writing will bring, but I'm excited to see what happens. If 2022 goes correctly, everyone will say that Julia cheats too much in its benchmarks because too much automatic optimization is applied [...]
no subject
no subject
Chris Hanson and Gerald Jay Sussman. Software Design for Flexibility: How to Avoid Programming Yourself into a Corner. MIT Press, 2021.