Prepared for SciPy 2026
Authors: John Stachurski, Thomas J. Sargent, Smit Lunagariya, Matt McKay
The tutorial demonstrates how to accelerate simulations using modern Python tools.
It focuses on Thomas Schelling's segregation model as our running example to explore acceleration tools like JAX.
The Schelling segregation model shows how mild individual preferences can lead to extreme aggregate outcomes. We study:
- The basic model — Understanding the dynamics of racial segregation using Python classes
- NumPy implementation — Rewriting the model with arrays and functions for clarity and speed
- JAX implementation — Translating the model to JAX syntax and concepts
- Further parallelization — How can we exploit modern parallel hardware (e.g., GPUs)
QuantEcon workshop hosting website provides an option to directly run these workshop lectures on Google Colab. If you choose to run the lectures on Colab, you do not need any setup. All the dependencies are pre-installed in the Colab. Use the following button on any of the lectures to open it in colab.
You can optionally run JAX lectures on a GPU or TPU to see the performance gains. You can connect to a GPU/TPU in colab in the following way:
Click on available runtime
You will need Python 3.11+ installed on your local machine.
The following two options show how to setup the dependency if you plan to run these lectures locally.
pip install --upgrade matplotlib numpy jax
- Clone the repository:
git clone https://github.com/QuantEcon/scipy_tutorial_2026.git
- Create a new environment using the
environment.ymlfrom this repo.
# Run this from root directory of this repository
conda env create -f environment.yml
conda activate quantecon_scipy_tutorial_2026
# Run a small python script from the root of the repository
python setup_test.py
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


