Welcome to the Heat Tutorials#
Heat builds on PyTorch and mpi4py to provide a high-performance computing infrastructure for memory-intensive applications within the NumPy/SciPy ecosystem. If you are looking to scale single-CPU code to a multi-node cluster to exploit its cumulative RAM for massive datasets, these interactive notebooks will guide you through the core concepts.
Environment Setup#
Before diving into the tutorials, you need to set up your Python environment and start an IPython cluster. We provide scripts and guides for both local machines and High-Performance Computing (HPC) environments.
Local Setup (Laptop/Workstation):
Run either
setup_pip.shorsetup_conda.shto install OpenMPI, create a virtual environment, install Heat and its dependencies (likeipyparallel), and launch Jupyter.Open and run
setup_local.ipynbto verify your IPyParallel cluster is running correctly.
HPC Setup (SLURM / JSC):
If you are running on Jupyter-JSC at the Jülich Supercomputing Centre, start with
setup_jsc.ipynb.
Jupyter4NFDI:
If you are on the Jupyter4NFDI Jupyter Hub, everything is already installed, but you need to start the IPython cluster just like you would locally. See setup_local.ipynb for details.
Training materials#
Once your cluster is running, we recommend following the tutorials in this order:
The Fundamentals#
Basics.ipynb: Start here! Learn how to create
DNDarrays, understand thesplitparameter, and perform basic operations across multiple processes.Internals.ipynb: A look behind the curtain for potential contributors and power users. Understand how Heat manages local shapes (
lshape) and learn how to useredistribute_to manually balance data across your cluster.
Mathematics & Machine Learning#
See Heat in action on complex mathematical operations and large-scale datasets.
Loading_preprocessing.ipynb: Learn how to parallel-load and preprocess large datasets using Heat’s distributed data structures and operations.
Linear_algebra.ipynb: Explore matrix-matrix multiplications, Randomized SVD, and Hierarchical SVD.
Clustering_and_PCA.ipynb: Learn how to scale K-Means clustering and Principal Component Analysis (PCA) using a real-world dataset of ~1.4 million asteroids from the JPL Small Body Database.
DMD.ipynb: Dive into Dynamic Mode Decomposition (DMD) using roughly a year of 6-hourly global windspeed data from ERA5.
Profiling & Optimization#
Profiling_with_perun.ipynb: Learn how to track performance and measure the energy consumption (power draw) of your distributed applications using the
perunlibrary and its@monitordecorators.
Distributed Deep Learning#
Finally, the distributed training scripts from our Nov. 2025 training are available in the examples/tutorial2025_dl directory.
Problems?#
We rely on your feedback!
Did you encounter any issues?
Do you want to request a tutorial on a specific topic?
Do you have suggestions for improving the existing notebooks?
Please open an issue in our GitHub repository: helmholtz-analytics/heat#issues. Thanks!