Skip to content
Mini-course at Princeton on High Performance Python
Jupyter Notebook
Branch: master
Clone or download
Latest commit 988e29b Nov 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
classic
data Starting on slides, convering some from Jim Nov 14, 2019
img Using notebooks for everything, adding Tensorflow Nov 19, 2019
.gitignore Starting on slides, convering some from Jim Nov 14, 2019
.gitmodules
00_intro.ipynb Adding links Nov 20, 2019
01_fractal_accelerate.ipynb Adding 07 and improving beginning Nov 20, 2019
02_temperatures.ipynb Adding more parts Nov 19, 2019
03_mcmc.ipynb Adding more parts Nov 19, 2019
04_runge_kutta.ipynb Adding 07 and improving beginning Nov 20, 2019
05_distributed.ipynb Using notebooks for everything, adding Tensorflow Nov 19, 2019
06_tensorflow.ipynb Using notebooks for everything, adding Tensorflow Nov 19, 2019
07_callables.ipynb Adding 07 and improving beginning Nov 20, 2019
FractalInteract.ipynb
README.md Adding links Nov 20, 2019
environment.yml

README.md

High Performance Python

Princeton mini-course

By Henry Schreiner, with Jim Pivarski

Installation

To run on Binder, click this badge: Binder

To install locally:

Download and install miniconda. On macOS with homebrew, just run brew cask install miniconda.

Run:

conda env create -f environment.yml

from this directory. This will create an environment performance-minicourse. To use:

conda activate performance-minicourse

And, to disable:

conda deactivate

or restart your terminal.

If you want to add a package, modify environment.yml then run:

conda env update -f environment.yml

Lessons

  • 00 Intro: The introduction
  • 01 Fractal accelerate: A look at a fractal computation, and ways to accelerate it with Numpy changes, numexpr, and numba.
  • 02 Temperatures: A look at reading files and array manipulation in Numpy and Pandas.
  • 03 MCMC: A Marco Chain Monte Carlo generator (and metropolis generator) in Python and Numba, with a focus on profiling.
  • 04 Runge-Kutta: Implementing a popular integration algorithm in Numpy and Numba.
  • 05 Distributed: An exploration of ways to break up code (fractal) into chunks for multithreading, multiproccessing, and Dask distribution.
  • 06 Tensorflow: A look at implementing a Negative Log Likelihood function (used for unbinned fitting) in Numpy and Google's Tensorflow.
  • 07 Callables: A look at Scipy's LowLevelCallable, and how to implement one with Numba.

Class participants: please complete the survey here.

You can’t perform that action at this time.