/siamcse21

Resources for the SIAMCSE21 minitutorial "Automatic Differentiation as a Tool for Computational Science"

Primary LanguageJupyter Notebook

Automatic Differentiation as a Tool for Computational Science

https://www.siam.org/conferences/cm/program/minitutorials/cse21-minitutorials

Organizers: Laurent Hascoët, Paul Hovland, Jan Hückelheim, Sri Hari Krishna Narayanan

Session 1: Wednesday, March 3, 4:15 p.m. - 5:55 p.m. CST

Content Resources
Introduction Slides
Seed matrices Slides
Demo & Hands on: Rosenbrock Open In Collab
Demo & Hands on: Scalar Open In Collab
Demo & Hands on: Performance testing Open In Collab

Session 2: Thursday, March 4, 9:45 a.m. - 11:25 a.m. CST

Content Resources
Memory requirements Slides
Demo & Hands on: Derivative based optimization Open In Collab
Know what you are differentiating Slides
Adding AD to existing code Slides
Demo & Hands on: Dot product test Open In Collab
Automatic differentiation for parallel programs Slides
Hessians and higher-order derivatives Slides
Further Reading Slides

How to run the notebooks

Option 1 (preferred): Using Google Colab. (You will need to login to your Google account)

  1. Click on the Open In Collab button for the session

Option 2: Use Jupyter Notebook locally

  1. Clone this repository or download it
  2. Install any prerequisites
pip install jupyterlab
pip install jax
pip install jaxlib
  1. Open the notebook
jupyter notebook rosenbrock.ipynb

Option 3: Use python version locally

  1. Clone this repository or download it
  2. Install any prerequisites
pip install jax
pip install jaxlib
  1. Run the python code
python rosenbrock.py