diff --git a/Manifest.toml b/Manifest.toml index 1e517cec..d91c6517 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -60,9 +60,9 @@ version = "0.9.17" [[IOCapture]] deps = ["Logging", "Random"] -git-tree-sha1 = "8b72179abc660bfab5e28472e019392b97d0985c" +git-tree-sha1 = "b6d6bfdd7ce25b0f9b2f6b3dd56b2673a66c8770" uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" -version = "0.2.4" +version = "0.2.5" [[IniFile]] git-tree-sha1 = "f550e6e32074c939295eb5ea6de31849ac2c9625" diff --git a/showcase/index.html b/showcase/index.html index 49649415..7e0d77b3 100644 --- a/showcase/index.html +++ b/showcase/index.html @@ -1 +1 @@ -
The purpose of this page is to demonstrate the various applications where the SciML tools have been employed. If you would like your own work added to this list, please open a pull request.
There are many external libraries which connect and utilize SciML utilities under the hood. The following an incomplete list of software organizations providing domain modeling tools that are built upon SciML. If you would like your institution's tools added to the list, please open a pull request.
DJ4Earth: Differentaible Programming / SciML for Climate Modeling
CMU+MIT+Citrine: Accelerated Computational Electrochemical Systems Discovery (ACED)
Los Alamos National Lab: Model Analysis & Decision Support (MADS)
Safe Blues: A Method for Estimation and Control in the Fight Against COVID-19
Trixi.jl: Adaptive high-order numerical simulations of hyperbolic PDEs in Julia
Technique could efficiently solve partial differential equations for numerous applications (PEDS)
MagNav Project Demos Real-Time Magnetic Navigation (built on SciML tooling)
$46 million dollar DARPA grant for artificial blood development with SciML, "this highly complex project that requires the use of advanced modeling and simulation, and a scientific machine learning software system to optimize the prototypes and to test for safety and efficacy in models of complex trauma with multiple complications", see our blog post for more details
"Year of autonomy in Alaskan glaciers, flight, earth orbit, cislunar space and mars" article in the Dec edition of AIAA's Aerospace America magazine (SciML used on embedded devices for control of unmanned aerial vehicles), image for safe keeping
Q&A: Chris Rackauckas on the equations at the heart of practically everything
Using machine learning to derive black hole motion from gravitational waves (using SciML DiffEqFlux)
HPCWire: Argonne AI for Science Colloquium Marks Challenges and Progress
Pumas-AI looks to democratize access to drug development tools (using SciML)
List23: The Open Source HetaSimulator project is going to be launched by InSysBio
PR Newswire: InSysBio to launch its OpenSource HetaSimulator project
Julia Computing Launches JuliaSim for Scientific ML In Cloud
Julia Computing Launches JuliaSim For Scientific Machine Learning In Cloud
Julia Computing introduces JuliaSim, next-generation cloud-based simulation platform
SafeBlues Release (3/16/2021) (analysis done with SciML)
Gizmodo: Researchers Are Working on a Virtual Phone Virus That 'Mimics' the Spread of Covid-19
El Universal: Covid-19. Crean virus virtual que se propaga por Bluetooth en tu móvil
MarseilleNews.net: Ce virus virtuel transmettant Bluetooth peut imiter la propagation du COVID
MIT CCE News: Researchers develop Bluetooth powered “virtual virus” to track COVID-19’s spread
la100 Cienradios: Crearon un “virus digital” que podría rastrear el coronavirus
Mobile Bulgaria: Виртуален вирус пресъздава моделите на разпространение на COVID-19
LaMinute.info: Le virus du téléphone virtuel « imite » la propagation de Covid-19
Manlokam: ఇదొక స్పెషల్ వైరస్.. బ్లూటూత్ ద్వారా పనిచేస్తూ కోవిడ్ను గుర్తిస్తుంది..
El Pais: DESARROLLAN UN VIRUS PARA MÓVILES QUE SE PROPAGA COMO SI FUERA LA COVID-19
La Repubblica: Il virus 'virtuale' mima Covid e sa dire come viaggia l'epidemia
Amarujala.com: ब्लूटूथ से फोन में फैलता है यह खास वायरस, कोरोना ट्रैक करने में करता है मदद
pplware: “Vírus virtual” transmite-se entre smartphones ao estilo do coronavírus
LokMat News 18: ब्लूट्यूथने फोनमध्ये पसरतो हा खास व्हायरस; Coronavirus ट्रॅक करण्यासाठी होते मदत
Ajel News: فيروس افتراضي ينتقل بالبلوتوث يساعد في تتبع انتشار «كورونا»
4gnews: Investigadores criam "coronavirus digital" transmissível aos smartphones por Bluetooth
Upvarta News: ब्लूटूथ से मोबाइल में दस्तक देगा ये खास Virus , जानें क्या है वर्चुअल वायरस
Youm7: تطوير فيروس افتراضى ينتشر عبر البلوتوث بين الهواتف الذكية لتتبع كورونا
El Universal: Covid-19. Crean virus virtual que se propaga por Bluetooth en tu móvil
MobileSyrup: Researchers develop virtual mobile virus to better understand COVID-19 spread
LaFM: Aparece virus que infecta smartphones de manera 'similar' al coronavirus
DeobreProgramy: Safe Blues: wirus na smartfony ma pomóc w badaniu COVID-19
Pingvin.pro: Віртуальний вірус для смартфонів допоможе оцінити поширення COVID-19
SecurityLab.ru: Передающийся по Bluetooth вирус поможет в оценке распространения COVID-19
The Next Web: Scientists want to unleash a Bluetooth-powered ‘virtual virus’ to study COVID-19
Pinakait: A ‘safe’ virus that transfers via Bluetooth created to predict Covid-like virus spread
WoahTech: Bluetooth Transmitting ‘Safe’ Virus Developed To Track COVID Spread
News 21: A ‘safe’ virus that transfers via Bluetooth created to predict Covid-like virus spread
24-e News: They create a laboratory cell phone virus that simulates the spread of COVID-19
JioForMe: Designed a secure “virtual” epidemic .Spreading it will help us learn about COVID
Prowell Tech: This Bluetooth-transmitting virtual virus can mimic COVID spread
Olhar Digital: Researchers create “virtual virus” to study the spread of Covid-19
MobyGeek: Researchers Developed Virtual Phone Virus To Recreate How COVID-19 Spreads
Tech Codex: Researchers develop virtual mobile virus to better understand COVID-19 spread
The Canadian: Researchers Develop Virtual Mobile Viruses to Better Understand the Spread of COVID-19
Flipboard UK: Virtual virus that transmits between phones developed to mimic COVID spread
ZDNet: Researchers develop Bluetooth-transmitting 'virus' to improve COVID-19 tracking accuracy
GadgetsNow: A ‘safe’ virus that transfers via Bluetooth created to predict Covid-like virus spread
guncelkal: Researchers Are Working on a Virtual Phone Virus That ‘Mimics’ the Spread of Covid-19
Newsbreak: Researchers Are Working on a Virtual Phone Virus That 'Mimics' the Spread of Covid-19
Android Authority: Virtual virus that transmits between phones developed to mimic COVID spread
Apostolato Digitale: Intelligenza Artificiale in parrocchia (Video)
MIT News: Slowing the spread of Covid-19 (with SciML models)
JaxEnter: Julia: The programming language of the future? (SciML mentioned as a popular tool)
SciML Software (through Pumas) is utilized in an FDA-approved submission
MIT News: MIT-led team to develop (SciML) software to help forecast space storms
HPCWire: What’s New in Computing vs. COVID-19: Julia, Twitter, TACC & More
Cornell Chronicle: Digital ‘virus’ helps researchers map potential spread
Phys.org: Digital 'virus' helps researchers map potential spread
latronet.gr: Χαρτογράφηση εξάπλωσης CoViD-19 με κινητό τηλέφωνο
Popular Deep Learning Frameworks: An Overview (DiffEqFlux.jl mentioned)
ZDNet: Could a neural network have predicted this pandemic’s impact?
UQ News: A mathematical framework could help safely ease social distancing
MIT News: Model quantifies the impact of quarantine measures on Covid-19’s spread
The Age: COVID-19 simulator could help track virus spread as restrictions eased
The Brazilian National Institute for Space Research (INPE) plans space missions with SciML
JaxEnter: Machine learning meets math: Solve differential equations with new Julia library
Julia (SciML) is awarded funded through the ARPA-E DIFFERENTIATE Program
Parallel Computing and Scientific Machine Learning (SciML): Methods and Applications
Nonlinear Dynamics: A Concise Introduction Interlaced with Code
Numerical Methods for Scientific Computing: The Definitive Manual for Math Geeks
The Koopman Operator in Systems and Control
"All simulations have been performed in Julia, with additional Julia packages: LinearAlgebra.jl, Random.jl, Plots.jl, Lasso.jl, DifferentialEquations.jl"
2024: PumasAI Named Best Clinical Pharmacology Technology Development Firm in Biotechnology Awards
2022: MIT Portugal Program Poster Award, Vinicius Santana, University of Porto
2021: International Society of Pharmacology (ISoP) Mathematics and Computing Special Interest Group Poster Award. Niklas Korsbo (Pumas-AI, University of Cambridge), Chris Elrod (Julia Computing), Francesco Brizzi (Roche), Antoine Soubret (Roche), Andreas Noack (Julia Computing), Vijay Ivaturi (Pumas-AI, University of Maryland School of Pharmacy) and Christopher Rackauckas (Julia Computing, MIT): For "Automatic identification of non-obvious prognostic factors in big data with DeepNLME". DeepNLME is built using the SciML tooling.
2021: United States Department of the Air Force Artificial Intelligence Accelerator Scientific Excellence Award (Chris Rackauckas): For "For developing innovative computational processes to accelerate the simulation of nonlinear systems using neural networks".
2021: Mediterranean Machine Learning School Outstanding Poster Award (Simone Azeglio, Valerio Pagliarino, Francesco Calisto, Luca Bottero, Martina S., Sara Tiengo, Giovanni Graziano): For "Physics-Informed Machine Learning Simulator for Wildfire Propagation" with NeuralPDE.jl.
2020: International Society of Pharmacology (ISoP) Emerging Scientist Award (Chris Rackauckas): For development of SciML and Pumas.
2020: American Conference on Pharmacometrics (ACoP) Quality Award (Chris Rackauckas and Vijay Ivaturi): For DiffEqGPU accelerating QSP models by 175x.
2020: IEEE High-Performance Extreme Computing (HPEC) Outstanding Paper Award (Chris Rackauckas and Qing Nie): For the high-performance adaptive SDE solvers in StochasticDiffEq.jl.
2019: International Society of Pharmacology (ISoP) Mathematics and Computing Special Interest Group Poster Award (Chris Rackauckas and Vijay Ivaturi): Koopman operator tooling of DiffEqUncertainty.jl accelerating uncertainty quantification in PK/PD modeling by 100x.
2018 Julia Community Award (Chris Rackauckas): For development of SciML (at the time, named JuliaDiffEq).
DSWeb 2018 Dynamical Systems Software Contest: Runner up is DifferentialEquations.jl and a winner is DynamicalSystems.jl which utilizes DifferentialEquations.jl.
2017: Best Speaker Award, Tsukuba Global Science Week (Chris Rackauckas): Presentation on StochasticDiffEq.jl for systems biology.
Peregrination of a raconteur through maths, computing, and life with Chris Rackauckas (MIT)
Jousef Murad: Chris Rackauckas - Physics-Informed Neural Networks (PINNs) | Podcast #42
JuliaLang AMA: Ask us anything, SciML edition: Chris Rackauckas and Yingbo Ma
On combining machine learning-based and theoretical ecosystem models
Integrating the Orbital Systems with Satellite Analysis Toolkit (SAT)
GroundTracker and Orbital Analysis for Satellite Analysis Toolkit
Towards Modular Data-driven Simulations (Microsoft Research)
Integro Differential Equations GSoC 2021 NumFOCUS: Final Report
StructuralIdentifiability.jl Google Summer of Code: Final Results
Discretizations of Partial Differential Equations: GSoC'21 : Final Report
Neural Hybrid Differential Equations and Adjoint Sensitivity Analysis
Shadowing Methods for Forward and Adjoint Sensitivity Analysis of Chaotic Systems
Bayesian Inference using Julia and TuringLang at Stuttgart Julia Programming
Adam Davis: DiffEqFlux — Differential Equations and Neural Networks
StochasticLifestyle: ModelingToolkit, Modelica, and Modia: The Composable Modeling Future in Julia
Adam MacLean: A thread on teaching dynamical systems in Julia
Jesse Perla: Machine Learning and High Dimensional Economics
StochasticLifestyle: JuliaCall Update: Automated Julia Installation for R Packages
Neural ODE for Reinforcement Learning and Nonlinear Optimal Control: Cartpole Problem Revisited
"Modeling control of run-of-river power plant Grønvollfoss" in Julia
StochasticLifestyle: GPU-Accelerated ODE Solving in R with Julia, the Language of Libraries
Francesco Martinuzzi: Google Summer of Code 2020 Final Report
High weak order solvers and adjoint sensitivity analysis for stochastic differential equations
Francesco Martinuzzi: GSoC week 11: Gated Recurring Unit-based reservoir
Francesco Martinuzzi: GSoC week 10: Reservoir Memory Machines
Francesco Martinuzzi: GSoC week 9: Cycle Reservoirs with Regular Jumps
Utkarsh's Blog: Second Evaluations (Parallel Extrapolation Methods)
Physics-informed neural networks (PINNs) solver on Julia. GSoC 2020. Second evaluation.
Ludovico: July deliverables: Two new surrogates methods and benchmarking
Francesco Martinuzzi: GSoC week 7: Reservoir Computing with Cellular Automata Part 1
Francesco Martinuzzi: GSoC week 6: minimum complexity echo state network
Kirill Zubov: Physics-informed neural networks (PINNs) solvers on Julia
Sebastian Callh personal blog: Forecasting the weather with neural ODEs
Utkarsh's Blog: Community Bonding & First Evaluation (BDF & NDF methods)
Ludovico: From JSOC to GSOC: a new beginning with Surrogates.jl
Francesco Martinuzzi: GSoC week 3: Echo State Gaussian Processes
SCIML: LOGICIELS LIBRES POUR L'APPRENTISSAGE MACHINE SCIENTIFIQUE
Francesco Martinuzzi: GSoC week 2: Support Vector Regression in Echo State Networks
Frank Schäfer: GSoC 2020: High weak order SDE solvers and their utility in neural SDEs
Modeling pandemics subject to stochastic uncertainties – A polynomial chaos approach
Francesco Martinuzzi: GSoC week 1: lasso, Elastic Net and Huber loss
Modelling and data analysis tools to study the 2020 COVID-19 outbreak
Kevin Hannay: Differential Equations as a Neural Network Layers
Safe Blues — The Measurement Tool for Responsible Easing of Social Distancing
Per-Olof Persson and Robert Sweeney Blanco: The DifferentialEquations Package
Current status of neural differential equations and the importance of language
Phylodynamics of SARS-CoV-2, Simon Frost (Microsoft Health Futures)
Francesco Martinuzzi: A brief introduction to Reservoir Computing
Nicolau Leal Werneck: Fitting the SIR model to Covid-19 fatality data
StochasticLifestyle: Recent advancements in differential equation solver software
StochasticLifestyle: A Collection of Jacobian Sparsity Acceleration Tools for Julia
StochasticLifestyle: The Essential Tools of Scientific Machine Learning (Scientific ML)
StochasticLifestyle: Neural Jump SDEs (Jump Diffusions) and Neural PDEs
JuliaLang: DiffEqFlux.jl – A Julia Library for Neural Differential Equations
StochasticLifestyle: Some State of the Art Packages in Julia v1.0
Mathieu Besançon: Winter warm-up: toy models for heat exchangers
UCI Data Science Initiative: A Quick Tour of DifferentialEquations.jl
StochasticLifestyle: Why Numba and Cython are not substitutes for Julia
Ronan Chagas: Using julia to simulate systems composed of continuous and discrete parts
StochasticLifestyle: Solving Systems of Stochastic PDEs and using GPUs in Julia
JuliaLang: GSoC 2017 : A Wrapper for the FEniCS Finite Element Toolbox
JuliaLang: GSoC 2017: Efficient Discretizations of PDE Operators
StochasticLifestyle: Some Fun With Julia Types: Symbolic Expressions in the ODE Solver
JuliaLang: GSoC 2017: Native Julia second order ODE and BVP solvers
Yiannis Simillides blog: FEniCS.jl: Second "Approximate" Month
Yiannis Simillides blog: FEniCS.jl: First "Approximate" Month
Mathieu Besançon: DifferentialEquations.jl - part 2: decision from the model
Mathieu Besançon: Getting started with DifferentialEquations.jl
The purpose of this page is to demonstrate the various applications where the SciML tools have been employed. If you would like your own work added to this list, please open a pull request.
There are many external libraries which connect and utilize SciML utilities under the hood. The following an incomplete list of software organizations providing domain modeling tools that are built upon SciML. If you would like your institution's tools added to the list, please open a pull request.
DJ4Earth: Differentaible Programming / SciML for Climate Modeling
CMU+MIT+Citrine: Accelerated Computational Electrochemical Systems Discovery (ACED)
Los Alamos National Lab: Model Analysis & Decision Support (MADS)
Safe Blues: A Method for Estimation and Control in the Fight Against COVID-19
Trixi.jl: Adaptive high-order numerical simulations of hyperbolic PDEs in Julia
This is how they use AI to recreate smells from the past (using Julia SciML)
Technique could efficiently solve partial differential equations for numerous applications (PEDS)
MagNav Project Demos Real-Time Magnetic Navigation (built on SciML tooling)
$46 million dollar DARPA grant for artificial blood development with SciML, "this highly complex project that requires the use of advanced modeling and simulation, and a scientific machine learning software system to optimize the prototypes and to test for safety and efficacy in models of complex trauma with multiple complications", see our blog post for more details
"Year of autonomy in Alaskan glaciers, flight, earth orbit, cislunar space and mars" article in the Dec edition of AIAA's Aerospace America magazine (SciML used on embedded devices for control of unmanned aerial vehicles), image for safe keeping
Q&A: Chris Rackauckas on the equations at the heart of practically everything
Using machine learning to derive black hole motion from gravitational waves (using SciML DiffEqFlux)
HPCWire: Argonne AI for Science Colloquium Marks Challenges and Progress
Pumas-AI looks to democratize access to drug development tools (using SciML)
List23: The Open Source HetaSimulator project is going to be launched by InSysBio
PR Newswire: InSysBio to launch its OpenSource HetaSimulator project
Julia Computing Launches JuliaSim for Scientific ML In Cloud
Julia Computing Launches JuliaSim For Scientific Machine Learning In Cloud
Julia Computing introduces JuliaSim, next-generation cloud-based simulation platform
SafeBlues Release (3/16/2021) (analysis done with SciML)
Gizmodo: Researchers Are Working on a Virtual Phone Virus That 'Mimics' the Spread of Covid-19
El Universal: Covid-19. Crean virus virtual que se propaga por Bluetooth en tu móvil
MarseilleNews.net: Ce virus virtuel transmettant Bluetooth peut imiter la propagation du COVID
MIT CCE News: Researchers develop Bluetooth powered “virtual virus” to track COVID-19’s spread
la100 Cienradios: Crearon un “virus digital” que podría rastrear el coronavirus
Mobile Bulgaria: Виртуален вирус пресъздава моделите на разпространение на COVID-19
LaMinute.info: Le virus du téléphone virtuel « imite » la propagation de Covid-19
Manlokam: ఇదొక స్పెషల్ వైరస్.. బ్లూటూత్ ద్వారా పనిచేస్తూ కోవిడ్ను గుర్తిస్తుంది..
El Pais: DESARROLLAN UN VIRUS PARA MÓVILES QUE SE PROPAGA COMO SI FUERA LA COVID-19
La Repubblica: Il virus 'virtuale' mima Covid e sa dire come viaggia l'epidemia
Amarujala.com: ब्लूटूथ से फोन में फैलता है यह खास वायरस, कोरोना ट्रैक करने में करता है मदद
pplware: “Vírus virtual” transmite-se entre smartphones ao estilo do coronavírus
LokMat News 18: ब्लूट्यूथने फोनमध्ये पसरतो हा खास व्हायरस; Coronavirus ट्रॅक करण्यासाठी होते मदत
Ajel News: فيروس افتراضي ينتقل بالبلوتوث يساعد في تتبع انتشار «كورونا»
4gnews: Investigadores criam "coronavirus digital" transmissível aos smartphones por Bluetooth
Upvarta News: ब्लूटूथ से मोबाइल में दस्तक देगा ये खास Virus , जानें क्या है वर्चुअल वायरस
Youm7: تطوير فيروس افتراضى ينتشر عبر البلوتوث بين الهواتف الذكية لتتبع كورونا
El Universal: Covid-19. Crean virus virtual que se propaga por Bluetooth en tu móvil
MobileSyrup: Researchers develop virtual mobile virus to better understand COVID-19 spread
LaFM: Aparece virus que infecta smartphones de manera 'similar' al coronavirus
DeobreProgramy: Safe Blues: wirus na smartfony ma pomóc w badaniu COVID-19
Pingvin.pro: Віртуальний вірус для смартфонів допоможе оцінити поширення COVID-19
SecurityLab.ru: Передающийся по Bluetooth вирус поможет в оценке распространения COVID-19
The Next Web: Scientists want to unleash a Bluetooth-powered ‘virtual virus’ to study COVID-19
Pinakait: A ‘safe’ virus that transfers via Bluetooth created to predict Covid-like virus spread
WoahTech: Bluetooth Transmitting ‘Safe’ Virus Developed To Track COVID Spread
News 21: A ‘safe’ virus that transfers via Bluetooth created to predict Covid-like virus spread
24-e News: They create a laboratory cell phone virus that simulates the spread of COVID-19
JioForMe: Designed a secure “virtual” epidemic .Spreading it will help us learn about COVID
Prowell Tech: This Bluetooth-transmitting virtual virus can mimic COVID spread
Olhar Digital: Researchers create “virtual virus” to study the spread of Covid-19
MobyGeek: Researchers Developed Virtual Phone Virus To Recreate How COVID-19 Spreads
Tech Codex: Researchers develop virtual mobile virus to better understand COVID-19 spread
The Canadian: Researchers Develop Virtual Mobile Viruses to Better Understand the Spread of COVID-19
Flipboard UK: Virtual virus that transmits between phones developed to mimic COVID spread
ZDNet: Researchers develop Bluetooth-transmitting 'virus' to improve COVID-19 tracking accuracy
GadgetsNow: A ‘safe’ virus that transfers via Bluetooth created to predict Covid-like virus spread
guncelkal: Researchers Are Working on a Virtual Phone Virus That ‘Mimics’ the Spread of Covid-19
Newsbreak: Researchers Are Working on a Virtual Phone Virus That 'Mimics' the Spread of Covid-19
Android Authority: Virtual virus that transmits between phones developed to mimic COVID spread
Apostolato Digitale: Intelligenza Artificiale in parrocchia (Video)
MIT News: Slowing the spread of Covid-19 (with SciML models)
JaxEnter: Julia: The programming language of the future? (SciML mentioned as a popular tool)
SciML Software (through Pumas) is utilized in an FDA-approved submission
MIT News: MIT-led team to develop (SciML) software to help forecast space storms
HPCWire: What’s New in Computing vs. COVID-19: Julia, Twitter, TACC & More
Cornell Chronicle: Digital ‘virus’ helps researchers map potential spread
Phys.org: Digital 'virus' helps researchers map potential spread
latronet.gr: Χαρτογράφηση εξάπλωσης CoViD-19 με κινητό τηλέφωνο
Popular Deep Learning Frameworks: An Overview (DiffEqFlux.jl mentioned)
ZDNet: Could a neural network have predicted this pandemic’s impact?
UQ News: A mathematical framework could help safely ease social distancing
MIT News: Model quantifies the impact of quarantine measures on Covid-19’s spread
The Age: COVID-19 simulator could help track virus spread as restrictions eased
The Brazilian National Institute for Space Research (INPE) plans space missions with SciML
JaxEnter: Machine learning meets math: Solve differential equations with new Julia library
Julia (SciML) is awarded funded through the ARPA-E DIFFERENTIATE Program
Parallel Computing and Scientific Machine Learning (SciML): Methods and Applications
Nonlinear Dynamics: A Concise Introduction Interlaced with Code
Numerical Methods for Scientific Computing: The Definitive Manual for Math Geeks
The Koopman Operator in Systems and Control
"All simulations have been performed in Julia, with additional Julia packages: LinearAlgebra.jl, Random.jl, Plots.jl, Lasso.jl, DifferentialEquations.jl"
2024: PumasAI Named Best Clinical Pharmacology Technology Development Firm in Biotechnology Awards
2022: MIT Portugal Program Poster Award, Vinicius Santana, University of Porto
2021: International Society of Pharmacology (ISoP) Mathematics and Computing Special Interest Group Poster Award. Niklas Korsbo (Pumas-AI, University of Cambridge), Chris Elrod (Julia Computing), Francesco Brizzi (Roche), Antoine Soubret (Roche), Andreas Noack (Julia Computing), Vijay Ivaturi (Pumas-AI, University of Maryland School of Pharmacy) and Christopher Rackauckas (Julia Computing, MIT): For "Automatic identification of non-obvious prognostic factors in big data with DeepNLME". DeepNLME is built using the SciML tooling.
2021: United States Department of the Air Force Artificial Intelligence Accelerator Scientific Excellence Award (Chris Rackauckas): For "For developing innovative computational processes to accelerate the simulation of nonlinear systems using neural networks".
2021: Mediterranean Machine Learning School Outstanding Poster Award (Simone Azeglio, Valerio Pagliarino, Francesco Calisto, Luca Bottero, Martina S., Sara Tiengo, Giovanni Graziano): For "Physics-Informed Machine Learning Simulator for Wildfire Propagation" with NeuralPDE.jl.
2020: International Society of Pharmacology (ISoP) Emerging Scientist Award (Chris Rackauckas): For development of SciML and Pumas.
2020: American Conference on Pharmacometrics (ACoP) Quality Award (Chris Rackauckas and Vijay Ivaturi): For DiffEqGPU accelerating QSP models by 175x.
2020: IEEE High-Performance Extreme Computing (HPEC) Outstanding Paper Award (Chris Rackauckas and Qing Nie): For the high-performance adaptive SDE solvers in StochasticDiffEq.jl.
2019: International Society of Pharmacology (ISoP) Mathematics and Computing Special Interest Group Poster Award (Chris Rackauckas and Vijay Ivaturi): Koopman operator tooling of DiffEqUncertainty.jl accelerating uncertainty quantification in PK/PD modeling by 100x.
2018 Julia Community Award (Chris Rackauckas): For development of SciML (at the time, named JuliaDiffEq).
DSWeb 2018 Dynamical Systems Software Contest: Runner up is DifferentialEquations.jl and a winner is DynamicalSystems.jl which utilizes DifferentialEquations.jl.
2017: Best Speaker Award, Tsukuba Global Science Week (Chris Rackauckas): Presentation on StochasticDiffEq.jl for systems biology.
Peregrination of a raconteur through maths, computing, and life with Chris Rackauckas (MIT)
Jousef Murad: Chris Rackauckas - Physics-Informed Neural Networks (PINNs) | Podcast #42
JuliaLang AMA: Ask us anything, SciML edition: Chris Rackauckas and Yingbo Ma
On combining machine learning-based and theoretical ecosystem models
Integrating the Orbital Systems with Satellite Analysis Toolkit (SAT)
GroundTracker and Orbital Analysis for Satellite Analysis Toolkit
Towards Modular Data-driven Simulations (Microsoft Research)
Integro Differential Equations GSoC 2021 NumFOCUS: Final Report
StructuralIdentifiability.jl Google Summer of Code: Final Results
Discretizations of Partial Differential Equations: GSoC'21 : Final Report
Neural Hybrid Differential Equations and Adjoint Sensitivity Analysis
Shadowing Methods for Forward and Adjoint Sensitivity Analysis of Chaotic Systems
Bayesian Inference using Julia and TuringLang at Stuttgart Julia Programming
Adam Davis: DiffEqFlux — Differential Equations and Neural Networks
StochasticLifestyle: ModelingToolkit, Modelica, and Modia: The Composable Modeling Future in Julia
Adam MacLean: A thread on teaching dynamical systems in Julia
Jesse Perla: Machine Learning and High Dimensional Economics
StochasticLifestyle: JuliaCall Update: Automated Julia Installation for R Packages
Neural ODE for Reinforcement Learning and Nonlinear Optimal Control: Cartpole Problem Revisited
"Modeling control of run-of-river power plant Grønvollfoss" in Julia
StochasticLifestyle: GPU-Accelerated ODE Solving in R with Julia, the Language of Libraries
Francesco Martinuzzi: Google Summer of Code 2020 Final Report
High weak order solvers and adjoint sensitivity analysis for stochastic differential equations
Francesco Martinuzzi: GSoC week 11: Gated Recurring Unit-based reservoir
Francesco Martinuzzi: GSoC week 10: Reservoir Memory Machines
Francesco Martinuzzi: GSoC week 9: Cycle Reservoirs with Regular Jumps
Utkarsh's Blog: Second Evaluations (Parallel Extrapolation Methods)
Physics-informed neural networks (PINNs) solver on Julia. GSoC 2020. Second evaluation.
Ludovico: July deliverables: Two new surrogates methods and benchmarking
Francesco Martinuzzi: GSoC week 7: Reservoir Computing with Cellular Automata Part 1
Francesco Martinuzzi: GSoC week 6: minimum complexity echo state network
Kirill Zubov: Physics-informed neural networks (PINNs) solvers on Julia
Sebastian Callh personal blog: Forecasting the weather with neural ODEs
Utkarsh's Blog: Community Bonding & First Evaluation (BDF & NDF methods)
Ludovico: From JSOC to GSOC: a new beginning with Surrogates.jl
Francesco Martinuzzi: GSoC week 3: Echo State Gaussian Processes
SCIML: LOGICIELS LIBRES POUR L'APPRENTISSAGE MACHINE SCIENTIFIQUE
Francesco Martinuzzi: GSoC week 2: Support Vector Regression in Echo State Networks
Frank Schäfer: GSoC 2020: High weak order SDE solvers and their utility in neural SDEs
Modeling pandemics subject to stochastic uncertainties – A polynomial chaos approach
Francesco Martinuzzi: GSoC week 1: lasso, Elastic Net and Huber loss
Modelling and data analysis tools to study the 2020 COVID-19 outbreak
Kevin Hannay: Differential Equations as a Neural Network Layers
Safe Blues — The Measurement Tool for Responsible Easing of Social Distancing
Per-Olof Persson and Robert Sweeney Blanco: The DifferentialEquations Package
Current status of neural differential equations and the importance of language
Phylodynamics of SARS-CoV-2, Simon Frost (Microsoft Health Futures)
Francesco Martinuzzi: A brief introduction to Reservoir Computing
Nicolau Leal Werneck: Fitting the SIR model to Covid-19 fatality data
StochasticLifestyle: Recent advancements in differential equation solver software
StochasticLifestyle: A Collection of Jacobian Sparsity Acceleration Tools for Julia
StochasticLifestyle: The Essential Tools of Scientific Machine Learning (Scientific ML)
StochasticLifestyle: Neural Jump SDEs (Jump Diffusions) and Neural PDEs
JuliaLang: DiffEqFlux.jl – A Julia Library for Neural Differential Equations
StochasticLifestyle: Some State of the Art Packages in Julia v1.0
Mathieu Besançon: Winter warm-up: toy models for heat exchangers
UCI Data Science Initiative: A Quick Tour of DifferentialEquations.jl
StochasticLifestyle: Why Numba and Cython are not substitutes for Julia
Ronan Chagas: Using julia to simulate systems composed of continuous and discrete parts
StochasticLifestyle: Solving Systems of Stochastic PDEs and using GPUs in Julia
JuliaLang: GSoC 2017 : A Wrapper for the FEniCS Finite Element Toolbox
JuliaLang: GSoC 2017: Efficient Discretizations of PDE Operators
StochasticLifestyle: Some Fun With Julia Types: Symbolic Expressions in the ODE Solver
JuliaLang: GSoC 2017: Native Julia second order ODE and BVP solvers
Yiannis Simillides blog: FEniCS.jl: Second "Approximate" Month
Yiannis Simillides blog: FEniCS.jl: First "Approximate" Month
Mathieu Besançon: DifferentialEquations.jl - part 2: decision from the model
Mathieu Besançon: Getting started with DifferentialEquations.jl
The following is the current project list for the SciML Small Grants Program.
The small grant projects are decided by the SciML Steering Council and candidates can choose to take on projects from the project list. This is similar to "bounty programs" seen in other open source environments, though it is driven by SciML in a manner that is designed to give better outcomes to both contributors and maintainers of the project. In order to remove a hostile competitive atmosphere, candidates must declare to the committee interest before solving the chosen issue and, upon approval by the selection committee, are given an exclusive time interval (defaulting to one month) to solve the issue. Payout is done upon completion of the chosen project and acceptance by the steering council.
All projects are expected to contribute the code to repositories in the SciML Github organization. Code which is not contributed to the open source repositories will not be considered in the approval evaluations.
To declare for a small grant program, send an email to sciml@julialang.org with:
Full legal name
CV
Link to Github account
Short bio / background about your experience in the topic
Description of which project you're interested in
The potential reviewers will then get in touch to clarify details of the project and establish a clear work statement. Once clarifed, steering council will then respond with whether the application is accepted and commence the work under the supervision of the reviewer. When the reviewer accepts and merges the appropriate PRs, the grant will be determined as completed and the payout will commence. The grants are project based and payout will only occur upon acceptance by the reviewer.
Note that information about ongoing projects will be tracked as public information below in order to give clear information to other contributors about what projects are taken. Completed projects will be added to a projects archive.
If you wish to donate to the SciML Small Grants Program, please donate via NumFOCUS. SciML via NumFOCUS is a 501(c)(3) public charity in the United States. Your donation is tax-deductible to the extent provided by US law. General donated funds are used for the developer programs such as the small grants program and the SciML Fellowship.
Donations can be earmarked towards specific projects. In order for an earmarked project to become a part of the SciML Small Grants program it must be approved by the SciML Steering Council. The reason why all chosen projects must be vetted by the Steering Council is that we want to be fair to the potential contributors, and this means we must ensure that the suggested projects will have a prompt review process and proper maintanance beyond the timeframe of the project. For this reason, we suggest discussing with maintainers in the official Slack/Zulip before making an earmarked donation.
Reviewers are committed to giving timely feedback and reviews. It is expected that you keep in constant touch with the reviewer during the duration of the project, discussing on one of the community chat channels at least a few times a week until project completion. Discussions should take place in the SciML Slack or Zulip channels (#diffeq-bridged or #sciml-bridged) to allow for other contributors to give feedback. Reviews of PRs should be expected within a few days to ensure the contributor can complete the project in the allotted time frame.
However, it is also expected that the contributor can work fairly independently with guidance from the reviewer. Contributors are expected to be comfortable enough in the area of expertise to work through the errors and test failures on their own. The SciML Small Grants Program is not a training program like Google Summer of Code or the SciML Fellowship, and thus the reviewer is not expected to mentor or teach the contributor how to solve the problem. The reviewer is in no obligation to help the contributor work through tests, bug fixing, etc. as these projects were chosen due to the fact that the maintainers have not been able to find the time to cover these areas. The obligation of the reviewer is to give a timely feedback on what the requirements for merging would be (i.e. what tests are required to be added, whether certain code meets style demands, etc.) so that the contributor can achieve a mergable PR within the time frame, but there is no expectation that the reviewer will "go the extra mile" to teach the contributor how the package or mathematics works.
The "Simple Handwritten PDEs as ODEs" benchmarks have been failing for awhile. They need to be updated to the "new" linear solve syntax introduced in 2022. When updated, these benchmarks should serve as a canonical development point for PDE-specific methods, such as implicit-explicit (IMEX) and exponential integrators.
Information to Get Started: The Contributing Section of the SciMLBenchmarks README describes how to contribute to the benchmarks. The benchmark results are generated using the benchmark server. Half of the benchmarks are setup using hand-discretized finite difference stencils for the PDE, the other half use ApproxFun.jl in order to do a pseudospectral discretization. A direct pseudospectral discretization via manual FFTs and operator construction would also be fine.
Related Issues: https://github.com/SciML/SciMLBenchmarks.jl/issues/929
Success Criteria: Pull requests which update the benchmarks in the folder to be sucessful with current Julia and package version (v1.10) without erroring, generating work-precision diagrams. In addition, these should be updated to give a more clear definition of the PDE being solve, adding a LaTeX description of the equations to the top of the file.
Recommended Skills: Basic (undergrad-level) knowledge of finite difference and pseudospectral PDE discretiations.
Reviewers: Chris Rackauckas
In Progress: Claimed by Edward Berman for the time period of May 6th, 2024 - June 6th 2024.
BlackBoxOptimizationBenchmarking.jl is a very interesting set of benchmarks between global optimization tools. However, it has not been updated in years. It would be useful to the community if this set of benchmarks was updated to the modern SciML interfaces and benchmarking tools so it can make use of the full set of methods in Optimization.jl and drive further developments and recommendations to users.
Information to Get Started: The Contributing Section of the SciMLBenchmarks README describes how to contribute to the benchmarks. The benchmark results are generated using the benchmark server. It is expected that the benchmarks are updated to use the Optimization.jl interface, which is an interface over most optimizers in Julia. Not all of the optimizers are covered in this interface: simply remove the optimizers which are not wrapped into Optimization.jl
Related Issues: https://github.com/SciML/SciMLBenchmarks.jl/issues/640
Success Criteria: The benchmarks should be turned into a loop over Optimization.jl solvers in a standard SciMLBenchmarks benchmark build.
Recommended Skills: Basic (undergrad-level) knowledge of using numerical optimizers
Reviewers: Chris Rackauckas and Vaibhav Dixit
CUTEst.jl is a repository of constrained and unconstrained nonlinear programming problems for testing and comparing optimization algorithms. We would like to be able to repurpose this work for improving Optimization.jl's performance and tracking the performance of optimizers. It would be useful to the community if this set of benchmarks was updated to the modern SciML interfaces and benchmarking tools so it can make use of the full set of methods in Optimization.jl and drive further developments and recommendations to users.
This would likely turn into either contributions to CUTEst or wrappers to CUTEst (hosted in SciML) which which transform the NLPModels form into Optimization.jl, and a benchmarking script that loops over all optimization problems and applies a set of optimizers to each of them, computing summary statistics at the bottom.
Information to Get Started: The Contributing Section of the SciMLBenchmarks README describes how to contribute to the benchmarks. The benchmark results are generated using the benchmark server. It is expected that the benchmarks are updated to use the Optimization.jl interface, which is an interface over most optimizers in Julia. Not all of the optimizers are covered in this interface: simply remove the optimizers which are not wrapped into Optimization.jl
Related Issues: https://github.com/SciML/SciMLBenchmarks.jl/issues/935
Success Criteria: The benchmarks should be turned into a loop over Optimization.jl solvers in a standard SciMLBenchmarks benchmark build.
Recommended Skills: Basic (undergrad-level) knowledge of using numerical optimizers
Reviewers: Chris Rackauckas and Vaibhav Dixit
It's no surprise to anyone to hear that DifferentialEquations.jl, in particular the OrdinaryDiffEq.jl solver package, is very large and takes a long time to precompile. However, this is because there are a lot of solvers in the package. The goal would be to refactor this package so that sets of solvers are instead held in subpackages that are only loaded on-demand. Since many of the solvers are only used in more niche applications, this allows for them to be easily maintained in the same repo while not imposing a loading cost on the more standard appliations.
Information to Get Started: The OrdinaryDiffEq.jl solvers are all found in the Github repository and the format of the package is docmented in the developer documentation
Related Issues: https://github.com/SciML/OrdinaryDiffEq.jl/issues/2177
Success Criteria: The independent solver packages are registered and released, and a breaking update to OrdinaryDiffEq.jl is released which reduces the loading time by not including all solvers by default. This success also requires updating package documentation to reflect these changes.
Recommended Skills: Since all of the code for the solvers exists and this a refactor, no prior knowledge of numerical differential equations is required. Only standard software development skills and test-driven development of a large code base is required.
Reviewers: Chris Rackauckas
New benchmarks for differential-algebraic equation (DAE) systems would greatly improve our ability to better tune solvers across problems. However, we are currently lacking in the number of such benchmarks that exist. The goal would be to add standard benchmarks from this issue to the SciMLBenchmarks system so that they can be performance tracked over time.
Information to Get Started: Contributing Section of the SciMLBenchmarks README describes how to contribute to the benchmarks. The benchmark results are generated using the benchmark server. The transition amplifier benchmark and slider crank benchmark were old PRs to add a few of the problems. These could be used as starting points to solve two problems. One would likely need to modify the structural simplification to turn dummy derivative off as well, that can be discsused with Chris in the PR review.
Related Issues: https://github.com/SciML/OrdinaryDiffEq.jl/issues/2177
Success Criteria: New benchmarks with the DAE systems.
Recommended Skills: Prior knowledge in modeling with differential-algebaic equations would be helpful for debugging.
Reviewers: Chris Rackauckas
The perform_step! implementations per solver in OrdinaryDiffEq.jl are often "bespoke", i.e. one step implementation per solver. The reason is because the package code grew organically over time and this is the easiest way to ensure performance and write out a new method. However, many of the methods can be collapsed by class into a single solver set using a tableau implementation that loops over coefficients. Because of the nuances in performance and implementation, we have avoided doing this refactoring until a few more pieces were set in stone.
Note that this should be done based on classes of solvers, as documented in the code as files in the perform_step!
implementations (though the explicit Runge-Kutta methods are split across a few files and should all be a single tableau). Solver set should be discussed before starting the project.
It is recommended that implicit methods such as Rosenbrock and SDIRK integrators are done first, as the extra intricacies of their algorithm make this refactor simpler because the nuances of the implementation are less likely to noticably impact performance.
Information to Get Started: The OrdinaryDiffEq.jl solvers are all found in the Github repository and the format of the package is docmented in the developer documentation. The key to doing this right is to note that it is just a refactor, so all of the methods are there in the package already. However, note that some methods can be a bit nuanced, for example, BS5 and DP8 use fairly non-standard error estimators for an explicit Runge-Kutta method, while Verner methods have a twist with laziness. Because of this, the key is to be careful to add points to dispatch to alternative based on the nuances of the given algorithms.
Related Issues: https://github.com/SciML/OrdinaryDiffEq.jl/issues/233
Success Criteria: The independent solver packages are registered and released, and a breaking update to OrdinaryDiffEq.jl is released which reduces the loading time by not including all solvers by default. This success also requires updating package documentation to reflect these changes.
Recommended Skills: Since all of the code for the solvers exists and this a refactor, no prior knowledge of numerical differential equations is required. Only standard software development skills and test-driven development of a large code base is required.
Reviewers: Chris Rackauckas
In Progress: Claimed by Miguel Raz Guzman for the time period of May 10th, 2024 - June 10th 2024.
LoopVectorization.jl is a central package for the performance of many Julia packages. Its internals make use of many low-level features and manual SIMD that can make it require significant maintanance to be optimized for new versions of the compiler.
Information to Get Started:
With Julia v1.12:
opaque pointer mode is now the default
Julia pointers are now LLVM pointers instead of integers, as they were in earlier Julia versions.
The purpose of this project is to update LoopVectorization.jl, VectorizationBase.jl, SLEEFPirates.jl and the rest of the JuliaSIMD ecosystem so that all the llvmcall
s use opaque pointers, and any Ptr
arguments or returns are llvm ptr
s instead of integers. LoopVectorization.jl tests should pass under --depwarn=error
.
Note that the funds for this project as given by earmarked donations to the JuliaLang project which SciML will help administer through the small grants program.
Success Criteria: LoopVectorization.jl runs on v1.12's latest release.
Recommended Skills: This requires some low-level knoweldge of LLVM IR and familiarity with llvmcall
. The changes should be routine.
Reviewers: Chris Elrod
The following is the current project list for the SciML Small Grants Program.
The small grant projects are decided by the SciML Steering Council and candidates can choose to take on projects from the project list. This is similar to "bounty programs" seen in other open source environments, though it is driven by SciML in a manner that is designed to give better outcomes to both contributors and maintainers of the project. In order to remove a hostile competitive atmosphere, candidates must declare to the committee interest before solving the chosen issue and, upon approval by the selection committee, are given an exclusive time interval (defaulting to one month) to solve the issue. Payout is done upon completion of the chosen project and acceptance by the steering council.
All projects are expected to contribute the code to repositories in the SciML Github organization. Code which is not contributed to the open source repositories will not be considered in the approval evaluations.
To declare for a small grant program, send an email to sciml@julialang.org with:
Full legal name
CV
Link to Github account
Short bio / background about your experience in the topic
Description of which project you're interested in
The potential reviewers will then get in touch to clarify details of the project and establish a clear work statement. Once clarifed, steering council will then respond with whether the application is accepted and commence the work under the supervision of the reviewer. When the reviewer accepts and merges the appropriate PRs, the grant will be determined as completed and the payout will commence. The grants are project based and payout will only occur upon acceptance by the reviewer.
Note that information about ongoing projects will be tracked as public information below in order to give clear information to other contributors about what projects are taken. Completed projects will be added to a projects archive.
If you wish to donate to the SciML Small Grants Program, please donate via NumFOCUS. SciML via NumFOCUS is a 501(c)(3) public charity in the United States. Your donation is tax-deductible to the extent provided by US law. General donated funds are used for the developer programs such as the small grants program and the SciML Fellowship.
Donations can be earmarked towards specific projects. In order for an earmarked project to become a part of the SciML Small Grants program it must be approved by the SciML Steering Council. The reason why all chosen projects must be vetted by the Steering Council is that we want to be fair to the potential contributors, and this means we must ensure that the suggested projects will have a prompt review process and proper maintanance beyond the timeframe of the project. For this reason, we suggest discussing with maintainers in the official Slack/Zulip before making an earmarked donation.
Reviewers are committed to giving timely feedback and reviews. It is expected that you keep in constant touch with the reviewer during the duration of the project, discussing on one of the community chat channels at least a few times a week until project completion. Discussions should take place in the SciML Slack or Zulip channels (#diffeq-bridged or #sciml-bridged) to allow for other contributors to give feedback. Reviews of PRs should be expected within a few days to ensure the contributor can complete the project in the allotted time frame.
However, it is also expected that the contributor can work fairly independently with guidance from the reviewer. Contributors are expected to be comfortable enough in the area of expertise to work through the errors and test failures on their own. The SciML Small Grants Program is not a training program like Google Summer of Code or the SciML Fellowship, and thus the reviewer is not expected to mentor or teach the contributor how to solve the problem. The reviewer is in no obligation to help the contributor work through tests, bug fixing, etc. as these projects were chosen due to the fact that the maintainers have not been able to find the time to cover these areas. The obligation of the reviewer is to give a timely feedback on what the requirements for merging would be (i.e. what tests are required to be added, whether certain code meets style demands, etc.) so that the contributor can achieve a mergable PR within the time frame, but there is no expectation that the reviewer will "go the extra mile" to teach the contributor how the package or mathematics works.
The "Simple Handwritten PDEs as ODEs" benchmarks have been failing for awhile. They need to be updated to the "new" linear solve syntax introduced in 2022. When updated, these benchmarks should serve as a canonical development point for PDE-specific methods, such as implicit-explicit (IMEX) and exponential integrators.
Information to Get Started: The Contributing Section of the SciMLBenchmarks README describes how to contribute to the benchmarks. The benchmark results are generated using the benchmark server. Half of the benchmarks are setup using hand-discretized finite difference stencils for the PDE, the other half use ApproxFun.jl in order to do a pseudospectral discretization. A direct pseudospectral discretization via manual FFTs and operator construction would also be fine.
Related Issues: https://github.com/SciML/SciMLBenchmarks.jl/issues/929
Success Criteria: Pull requests which update the benchmarks in the folder to be sucessful with current Julia and package version (v1.10) without erroring, generating work-precision diagrams. In addition, these should be updated to give a more clear definition of the PDE being solve, adding a LaTeX description of the equations to the top of the file.
Recommended Skills: Basic (undergrad-level) knowledge of finite difference and pseudospectral PDE discretiations.
Reviewers: Chris Rackauckas
BlackBoxOptimizationBenchmarking.jl is a very interesting set of benchmarks between global optimization tools. However, it has not been updated in years. It would be useful to the community if this set of benchmarks was updated to the modern SciML interfaces and benchmarking tools so it can make use of the full set of methods in Optimization.jl and drive further developments and recommendations to users.
Information to Get Started: The Contributing Section of the SciMLBenchmarks README describes how to contribute to the benchmarks. The benchmark results are generated using the benchmark server. It is expected that the benchmarks are updated to use the Optimization.jl interface, which is an interface over most optimizers in Julia. Not all of the optimizers are covered in this interface: simply remove the optimizers which are not wrapped into Optimization.jl
Related Issues: https://github.com/SciML/SciMLBenchmarks.jl/issues/640
Success Criteria: The benchmarks should be turned into a loop over Optimization.jl solvers in a standard SciMLBenchmarks benchmark build.
Recommended Skills: Basic (undergrad-level) knowledge of using numerical optimizers
Reviewers: Chris Rackauckas and Vaibhav Dixit
CUTEst.jl is a repository of constrained and unconstrained nonlinear programming problems for testing and comparing optimization algorithms. We would like to be able to repurpose this work for improving Optimization.jl's performance and tracking the performance of optimizers. It would be useful to the community if this set of benchmarks was updated to the modern SciML interfaces and benchmarking tools so it can make use of the full set of methods in Optimization.jl and drive further developments and recommendations to users.
This would likely turn into either contributions to CUTEst or wrappers to CUTEst (hosted in SciML) which which transform the NLPModels form into Optimization.jl, and a benchmarking script that loops over all optimization problems and applies a set of optimizers to each of them, computing summary statistics at the bottom.
Information to Get Started: The Contributing Section of the SciMLBenchmarks README describes how to contribute to the benchmarks. The benchmark results are generated using the benchmark server. It is expected that the benchmarks are updated to use the Optimization.jl interface, which is an interface over most optimizers in Julia. Not all of the optimizers are covered in this interface: simply remove the optimizers which are not wrapped into Optimization.jl
Related Issues: https://github.com/SciML/SciMLBenchmarks.jl/issues/935
Success Criteria: The benchmarks should be turned into a loop over Optimization.jl solvers in a standard SciMLBenchmarks benchmark build.
Recommended Skills: Basic (undergrad-level) knowledge of using numerical optimizers
Reviewers: Chris Rackauckas and Vaibhav Dixit
In Progress: Claimed by Param Umesh Thakkar for the time period of June 18th, 2024 - July 18th 2024.
It's no surprise to anyone to hear that DifferentialEquations.jl, in particular the OrdinaryDiffEq.jl solver package, is very large and takes a long time to precompile. However, this is because there are a lot of solvers in the package. The goal would be to refactor this package so that sets of solvers are instead held in subpackages that are only loaded on-demand. Since many of the solvers are only used in more niche applications, this allows for them to be easily maintained in the same repo while not imposing a loading cost on the more standard appliations.
Information to Get Started: The OrdinaryDiffEq.jl solvers are all found in the Github repository and the format of the package is docmented in the developer documentation
Related Issues: https://github.com/SciML/OrdinaryDiffEq.jl/issues/2177
Success Criteria: The independent solver packages are registered and released, and a breaking update to OrdinaryDiffEq.jl is released which reduces the loading time by not including all solvers by default. This success also requires updating package documentation to reflect these changes.
Recommended Skills: Since all of the code for the solvers exists and this a refactor, no prior knowledge of numerical differential equations is required. Only standard software development skills and test-driven development of a large code base is required.
Reviewers: Chris Rackauckas
In Progress: Claimed by Marko Polic for the time period of June 18th, 2024 - July 18th 2024.
New benchmarks for differential-algebraic equation (DAE) systems would greatly improve our ability to better tune solvers across problems. However, we are currently lacking in the number of such benchmarks that exist. The goal would be to add standard benchmarks from this issue to the SciMLBenchmarks system so that they can be performance tracked over time.
Information to Get Started: Contributing Section of the SciMLBenchmarks README describes how to contribute to the benchmarks. The benchmark results are generated using the benchmark server. The transition amplifier benchmark and slider crank benchmark were old PRs to add a few of the problems. These could be used as starting points to solve two problems. One would likely need to modify the structural simplification to turn dummy derivative off as well, that can be discsused with Chris in the PR review.
Related Issues: https://github.com/SciML/OrdinaryDiffEq.jl/issues/2177
Success Criteria: New benchmarks with the DAE systems.
Recommended Skills: Prior knowledge in modeling with differential-algebaic equations would be helpful for debugging.
Reviewers: Chris Rackauckas
The perform_step! implementations per solver in OrdinaryDiffEq.jl are often "bespoke", i.e. one step implementation per solver. The reason is because the package code grew organically over time and this is the easiest way to ensure performance and write out a new method. However, many of the methods can be collapsed by class into a single solver set using a tableau implementation that loops over coefficients. Because of the nuances in performance and implementation, we have avoided doing this refactoring until a few more pieces were set in stone.
Note that this should be done based on classes of solvers, as documented in the code as files in the perform_step!
implementations (though the explicit Runge-Kutta methods are split across a few files and should all be a single tableau). Solver set should be discussed before starting the project.
It is recommended that implicit methods such as Rosenbrock and SDIRK integrators are done first, as the extra intricacies of their algorithm make this refactor simpler because the nuances of the implementation are less likely to noticably impact performance.
Information to Get Started: The OrdinaryDiffEq.jl solvers are all found in the Github repository and the format of the package is docmented in the developer documentation. The key to doing this right is to note that it is just a refactor, so all of the methods are there in the package already. However, note that some methods can be a bit nuanced, for example, BS5 and DP8 use fairly non-standard error estimators for an explicit Runge-Kutta method, while Verner methods have a twist with laziness. Because of this, the key is to be careful to add points to dispatch to alternative based on the nuances of the given algorithms.
Related Issues: https://github.com/SciML/OrdinaryDiffEq.jl/issues/233
Success Criteria: The independent solver packages are registered and released, and a breaking update to OrdinaryDiffEq.jl is released which reduces the loading time by not including all solvers by default. This success also requires updating package documentation to reflect these changes.
Recommended Skills: Since all of the code for the solvers exists and this a refactor, no prior knowledge of numerical differential equations is required. Only standard software development skills and test-driven development of a large code base is required.
Reviewers: Chris Rackauckas
In Progress: Claimed by Miguel Raz Guzman for the time period of May 10th, 2024 - June 10th 2024.
LoopVectorization.jl is a central package for the performance of many Julia packages. Its internals make use of many low-level features and manual SIMD that can make it require significant maintanance to be optimized for new versions of the compiler.
Information to Get Started:
With Julia v1.12:
opaque pointer mode is now the default
Julia pointers are now LLVM pointers instead of integers, as they were in earlier Julia versions.
The purpose of this project is to update LoopVectorization.jl, VectorizationBase.jl, SLEEFPirates.jl and the rest of the JuliaSIMD ecosystem so that all the llvmcall
s use opaque pointers, and any Ptr
arguments or returns are llvm ptr
s instead of integers. LoopVectorization.jl tests should pass under --depwarn=error
.
Note that the funds for this project as given by earmarked donations to the JuliaLang project which SciML will help administer through the small grants program.
Success Criteria: LoopVectorization.jl runs on v1.12's latest release.
Recommended Skills: This requires some low-level knoweldge of LLVM IR and familiarity with llvmcall
. The changes should be routine.
Reviewers: Chris Elrod