Skip to main content

Project Status

Documentation Status coverage license: MIT PyPI Version Downloads conda-forge OpenSSF Scorecard OpenSSF Best Practices DOI Benchmarks REUSE status

Heat

High-performance data analytics in Python, at scale.

Getting Started | Tutorials | Docs | Contributing


Why Heat?

Heat is a distributed tensor framework built on PyTorch and mpi4py. It provides highly optimized algorithms and data structures for tensor computations using CPUs, GPUs (CUDA/ROCm), and distributed cluster systems. It is designed to handle massive arrays that exceed the memory and computational limits of a single machine.

  • Seamless integration: Port existing NumPy/SciPy code to multi-node clusters with minimal effort.
  • Hardware-agnostic: Supports CPUs and GPUs (CUDA, ROCm, Apple MPS).
  • Efficient scaling: Exploit the entire, cumulative RAM of your cluster for memory-intensive operations.

Jupyter4NFDI 👈 Try Heat right in your browser without any installations!

Requirements

  • Python: >= 3.12
  • MPI: OpenMPI, MPICH, or Intel MPI
  • Frameworks: mpi4py >= 3.1, pytorch >= 2.6

Installation

# Via pip (with optional I/O support)
pip install heat[hdf5,netcdf,zarr]

# Via conda-forge
conda install -c conda-forge heat

# Via easybuild (for HPC systems)
eb heat-<version>.eb --robot

# Via spack (for HPC systems)
spack install py-heat

Distributed Example

Heat handles inter-node communication automatically. Define how your data is partitioned across the cluster using the DNDarray.split attribute. Push computations to your GPUs with the DNDarray.device attribute. Heat will take care of the rest, ensuring efficient data movement and synchronization across nodes.

Here an example from our Linear Algebra tutorial:

View Distributed Example (mpirun / srun)

1. Create your script (my_script.py):

import heat as ht

split_A = 0
split_B = 1
M = 10000
N = 10000
K = 10000
A = ht.random.randn(M, N, split=split_A, device="gpu")
B = ht.random.randn(N, K, split=split_B, device="gpu")
C = ht.matmul(A, B)
print(C)

2. Run with MPI:

On your laptop, e.g. with OpenMPI:

mpirun -np 4 python my_script.py

On an HPC cluster with SLURM:

srun --nodes=2 --ntasks-per-node=2 --gpus-per-node=2 python my_script.py

Contributing and Support

We welcome contributions from the community. Please see our Contribution Guidelines and the Code of Conduct.

For bug reports, feature requests, or general questions, please use GitHub Issues or Discussions.

How to cite

Citations are essential for the sustainability of this project. If Heat supports your work, please cite our main paper:

Götz, M., et al. (2020). HeAT - a Distributed and GPU-accelerated Tensor Framework for Data Analytics. In 2020 IEEE International Conference on Big Data (Big Data) (pp. 276-287). IEEE. DOI: 10.1109/BigData50022.2020.9378050.

BibTeX
@inproceedings{heatBigData2020,
  author={Götz, Markus and Debus, Charlotte and Coquelin, Daniel and Krajsek, Kai and Comito, Claudia and Knechtges, Philipp and Hagemeier, Björn and Tarnawa, Michael and Hanselmann, Simon and Siggel, Martin and Basermann, Achim and Streit, Achim},
  booktitle={2020 IEEE International Conference on Big Data (Big Data)},
  title={HeAT – a Distributed and GPU-accelerated Tensor Framework for Data Analytics},
  year={2020},
  volume={},
  number={},
  pages={276-287},
  keywords={Heating systems;Industries;Data analysis;Big Data;Parallel processing;Libraries;Arrays;HeAT;Tensor Framework;High-performance Computing;PyTorch;NumPy;Message Passing Interface;GPU;Big Data Analytics;Machine Learning;Dask;Model Parallelism;Parallel Application Frameworks},
  doi={10.1109/BigData50022.2020.9378050}}

Acknowledgments

This work was funded by the Helmholtz Association Initiative and Networking Fund (Project ZT-I-0003, "Helmholtz Analytics Framework"); the Helmholtz AI platform grant; the European Space Agency (ESA) (Programme 4000144045); the Helmholtz Association Innovation Fund (Project HiRSE); the Helmholtz Association ScienceServe call 2025 (Project DB002891, HeatHub); the Google Summer of Code 2022 program.

Heat is a NumFOCUS affiliated project.

License

Heat is distributed under the MIT license. See the LICENSE file for details.

Release files for heat 1.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for heat 1.9.0
File Size Uploaded
heat-1.9.0.tar.gz 451.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for heat 1.9.0
File Interpreter ABI Platform
heat-1.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 944.7 kB

Release files / heat-1.9.0.tar.gz

Download URL heat-1.9.0.tar.gz
Size 451.1 kB
Tags Source
SHA-256 checksum
How to use checksums
cd5aacd7b8dccb2c47b7c088260503ae1eb1a3138048a4b687f48746f1a7f749
BLAKE2b-256 checksum
How to use checksums
ef4238f88f246a61af61dc5032675e92b5508fd2fab5f474ead8a253d4c6e67f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.0

Release files / heat-1.9.0-py3-none-any.whl

Download URL heat-1.9.0-py3-none-any.whl
Size 493.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2709e9ed233dcdab69009b06ce1f9429c791e993b5d5abc7b6b20627d67e6621
BLAKE2b-256 checksum
How to use checksums
9b17b730a37f2418fb3256c21e7931c4df67d781922b6aecd34ee6a536985e0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.0

Release history Release notifications | RSS feed

This release

1.9.0 This release

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.1.0

1 release file

0.0.5

1 release file

0.0.2

1 release file

0.0.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page