Symbolics.jl - High performance symbolic numerics via multiple dispatch, Julia Computer Algebra
From ISSAC 2021: High-performance symbolic-numerics via multiple dispatch
Shashi Gowda, Yingbo Ma, Alessandro Cheli, Maja Gwozdz, Viral B. Shah, Alan Edelman, Christopher Rackauckas
As mathematical computing becomes more democratized in high-level languages, high-performance symbolic-numeric systems are necessary for domain scientists and engineers to get the best performance out of their machine without deep knowledge of code optimization. Naturally, users need different term types either to have different algebraic properties for them, or to use efficient data structures. To this end, we developed Symbolics.jl, an extendable symbolic system which uses dynamic multiple dispatch to change behavior depending on the domain needs. In this work we detail an underlying abstract term interface which allows for speed without sacrificing generality. We show that by formalizing a generic API on actions independent of implementation, we can retroactively add optimized data structures to our system without changing the pre-existing term rewriters. We showcase how this can be used to optimize term construction and give a 113x acceleration on general symbolic transformations. Further, we show that such a generic API allows for complementary term-rewriting implementations. We demonstrate the ability to swap between classical term-rewriting simplifiers and e-graph-based term-rewriting simplifiers. We showcase an e-graph ruleset which minimizes the number of CPU cycles during expression evaluation, and demonstrate how it simplifies a real-world reaction-network simulation to halve the runtime. Additionally, we show a reaction-diffusion partial differential equation solver which is able to be automatically converted into symbolic expressions via multiple dispatch tracing, which is subsequently accelerated and parallelized to give a 157x simulation speedup. Together, this presents Symbolics.jl as a next-generation symbolic-numeric computing environment geared towards modeling and simulation
Видео Symbolics.jl - High performance symbolic numerics via multiple dispatch, Julia Computer Algebra канала Christopher Rackauckas
Shashi Gowda, Yingbo Ma, Alessandro Cheli, Maja Gwozdz, Viral B. Shah, Alan Edelman, Christopher Rackauckas
As mathematical computing becomes more democratized in high-level languages, high-performance symbolic-numeric systems are necessary for domain scientists and engineers to get the best performance out of their machine without deep knowledge of code optimization. Naturally, users need different term types either to have different algebraic properties for them, or to use efficient data structures. To this end, we developed Symbolics.jl, an extendable symbolic system which uses dynamic multiple dispatch to change behavior depending on the domain needs. In this work we detail an underlying abstract term interface which allows for speed without sacrificing generality. We show that by formalizing a generic API on actions independent of implementation, we can retroactively add optimized data structures to our system without changing the pre-existing term rewriters. We showcase how this can be used to optimize term construction and give a 113x acceleration on general symbolic transformations. Further, we show that such a generic API allows for complementary term-rewriting implementations. We demonstrate the ability to swap between classical term-rewriting simplifiers and e-graph-based term-rewriting simplifiers. We showcase an e-graph ruleset which minimizes the number of CPU cycles during expression evaluation, and demonstrate how it simplifies a real-world reaction-network simulation to halve the runtime. Additionally, we show a reaction-diffusion partial differential equation solver which is able to be automatically converted into symbolic expressions via multiple dispatch tracing, which is subsequently accelerated and parallelized to give a 157x simulation speedup. Together, this presents Symbolics.jl as a next-generation symbolic-numeric computing environment geared towards modeling and simulation
Видео Symbolics.jl - High performance symbolic numerics via multiple dispatch, Julia Computer Algebra канала Christopher Rackauckas
Показать
Комментарии отсутствуют
Информация о видео
Другие видео канала
![JuliaCon 2019 | Symbolic Manipulation in Julia | Harrison Grodin](https://i.ytimg.com/vi/bGYSae90hA0/default.jpg)
![Changing Physics education with Julia | George Datseris | JuliaCon2021](https://i.ytimg.com/vi/04HAQXl5aj4/default.jpg)
![JuliaCon 2020 | Auto-Optimization and Parallelism in DifferentialEquations.jl | Chris Rackauckas](https://i.ytimg.com/vi/UNkXNZZ3hSw/default.jpg)
![Symbolics.jl - fast and flexible symbolic programming | Shashi Gowda, Yingbo Ma | JuliaCon2021](https://i.ytimg.com/vi/Vkz4c-lDMU8/default.jpg)
![Why Julia is the future of programming and you should learn it now](https://i.ytimg.com/vi/ceQ9CXuY7FY/default.jpg)
![Julia and DifferentialEquations.jl : Chris Rackauckas, MIT](https://i.ytimg.com/vi/zJ3R6vOhibA/default.jpg)
![JuliaSim Introduction Demo, JuliaCon 2021](https://i.ytimg.com/vi/teqS3O362Ts/default.jpg)
![Map of Computer Science](https://i.ytimg.com/vi/SzJ46YA_RaA/default.jpg)
![JuliaCon 2019 | The Unreasonable Effectiveness of Multiple Dispatch | Stefan Karpinski](https://i.ytimg.com/vi/kc9HwsxE1OY/default.jpg)
![CYMATICS: Science Vs. Music - Nigel Stanford](https://i.ytimg.com/vi/Q3oItpVa9fs/default.jpg)
![Accelerating Quantitative Systems Pharmacology with Machine Learning - SMB 2021](https://i.ytimg.com/vi/KLjJps268Wc/default.jpg)
![Unleashing Algebraic Metaprogramming in Julia with Metatheory.jl | A Cheli, P Zucker | JuliaCon2021](https://i.ytimg.com/vi/tdXfsTliRJk/default.jpg)
![Self Taught Programmers... Listen Up.](https://i.ytimg.com/vi/FrFY6Y1MJBQ/default.jpg)
![JuliaCon 2019 | How We Wrote a Textbook using Julia](https://i.ytimg.com/vi/ofWy5kaZU3g/default.jpg)
![I Made A Water Computer And It Actually Works](https://i.ytimg.com/vi/IxXaizglscw/default.jpg)
![Modeling Spacecraft Separation Dynamics in Julia - Jonathan Diegelman](https://i.ytimg.com/vi/tQpqsmwlfY0/default.jpg)
![JuliaCon 2020 | AlgebraicJulia: Applied Category Theory in Julia | James Fairbanks](https://i.ytimg.com/vi/7zr2qnud4XM/default.jpg)
![The Biggest Myth In Education](https://i.ytimg.com/vi/rhgwIhB58PA/default.jpg)
![Symbolic Mathematics in Julia | John Lapyre](https://i.ytimg.com/vi/M742_73edLA/default.jpg)
![Structural Identifiability Tools in Julia: A Tutorial | Ilia Ilmer | SciMLCon 2022](https://i.ytimg.com/vi/jg1DME3cwjg/default.jpg)