A framework for high-performance data analytics and machine learning.
Project description
Heat is a distributed tensor framework for high performance data analytics.
Project Status
Goals
Heat is a flexible and seamless open-source software for high performance data analytics and machine learning. It provides highly optimized algorithms and data structures for tensor computations using CPUs, GPUs and distributed cluster systems on top of MPI. The goal of Heat is to fill the gap between data analytics and machine learning libraries with a strong focus on single-node performance, and traditional high-performance computing (HPC). Heat's generic Python-first programming interface integrates seamlessly with the existing data science ecosystem and makes it as effortless as using numpy to write scalable scientific and data science applications.
Heat allows you to tackle your actual Big Data challenges that go beyond the computational and memory needs of your laptop and desktop.
Features
- High-performance n-dimensional tensors
- CPU, GPU and distributed computation using MPI
- Powerful data analytics and machine learning methods
- Abstracted communication via split tensors
- Python API
Support Channels
We use GitHub Discussions as a forum for questions about Heat. If you found a bug or miss a feature, then please file a new issue.
Requirements
Heat requires Python 3.7 or newer. Heat is based on PyTorch. Specifically, we are exploiting PyTorch's support for GPUs and MPI parallelism. For MPI support we utilize mpi4py. Both packages can be installed via pip or automatically using the setup.py.
Installation
Tagged releases are made available on the Python Package Index (PyPI). You can typically install the latest version with
$ pip install heat[hdf5,netcdf]
where the part in brackets is a list of optional dependencies. You can omit it, if you do not need HDF5 or NetCDF support.
It is recommended to use the most recent supported version of PyTorch!
It is also very important to ensure that the PyTorch version is compatible with the local CUDA installation. More information can be found here.
Hacking
If you want to work with the development version, you can check out the sources using
$ git clone <https://github.com/helmholtz-analytics/heat.git>
The installation can then be done from the checked-out sources with
$ pip install heat[hdf5,netcdf,dev]
Getting Started
TL;DR: Quick Start (Read this to get a quick overview of Heat).
Check out our Jupyter Notebook Tutorial right here on Github or in the /scripts directory, to learn and understand about the basics and working of Heat.
The complete documentation of the latest version is always deployed on Read the Docs.
Try your first Heat program
$ python
>>> import heat as ht
>>> x = ht.arange(10,split=0)
>>> print(x)
DNDarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=ht.int32, device=cpu:0, split=0)
>>> y = ht.ones(10,split=0)
>>> print(y)
DNDarray([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.], dtype=ht.float32, device=cpu:0, split=0)
>>> print(x + y)
DNDarray([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.], dtype=ht.float32, device=cpu:0, split=0)
Also, you can test your setup by running the heat_test.py
script:
mpirun -n 2 python heat_test.py
It should print something like this:
x is distributed: True
Global DNDarray x: DNDarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=ht.int32, device=cpu:0, split=0)
Global DNDarray x:
Local torch tensor on rank 0 : tensor([0, 1, 2, 3, 4], dtype=torch.int32)
Local torch tensor on rank 1 : tensor([5, 6, 7, 8, 9], dtype=torch.int32)
Resources:
Parallel Computing and MPI:
mpi4py
Contribution guidelines
We welcome contributions from the community, if you want to contribute to Heat, be sure to review the Contribution Guidelines before getting started!
We use GitHub issues for tracking requests and bugs, please see Discussions for general questions and discussion, and You can also get in touch with us on Mattermost. You can sign up with your GitHub credentials. Once you log in, you can introduce yourself on the Town Square
channel.
Small improvements or fixes are always appreciated; issues labeled as "good first issue" may be a good starting point.
If you’re unsure where to start or how your skills fit in, reach out! You can ask us here on GitHub, by leaving a comment on a relevant issue that is already open.
If you are new to contributing to open source, this guide helps explain why, what, and how to get involved.
License
Heat is distributed under the MIT license, see our LICENSE file.
Citing Heat
If you find Heat helpful for your research, please mention it in your publications. You can cite:
- Götz, M., Debus, C., Coquelin, D., Krajsek, K., Comito, C., Knechtges, P., Hagemeier, B., Tarnawa, M., Hanselmann, S., Siggel, S., Basermann, A. & Streit, A. (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.
@inproceedings{heat2020,
title={{HeAT -- a Distributed and GPU-accelerated Tensor Framework for Data Analytics}},
author={
Markus Götz and
Charlotte Debus and
Daniel Coquelin and
Kai Krajsek and
Claudia Comito and
Philipp Knechtges and
Björn Hagemeier and
Michael Tarnawa and
Simon Hanselmann and
Martin Siggel and
Achim Basermann and
Achim Streit
},
booktitle={2020 IEEE International Conference on Big Data (Big Data)},
year={2020},
pages={276-287},
month={December},
publisher={IEEE},
doi={10.1109/BigData50022.2020.9378050}
}
Acknowledgements
This work is supported by the Helmholtz Association Initiative and Networking Fund under project number ZT-I-0003 and the Helmholtz AI platform grant.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file heat-1.3.0.tar.gz
.
File metadata
- Download URL: heat-1.3.0.tar.gz
- Upload date:
- Size: 284.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa247539a559881ffe574a70227d3c72551e7c4a9fb29b0945578d6a840d1c87 |
|
MD5 | ae624a8dc3248720472e26effc65b4c8 |
|
BLAKE2b-256 | f6e2ae62f7f3567b79a3b81bd71801fccb88665a76f00068ded542d2c6359e52 |
File details
Details for the file heat-1.3.0-py3-none-any.whl
.
File metadata
- Download URL: heat-1.3.0-py3-none-any.whl
- Upload date:
- Size: 313.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0551ca2a8cedb9c05002c076b747d85a5fd294c6bd63f5e390df1272eaaa6a3 |
|
MD5 | be59c89a2f96881fa918c95c8198cd23 |
|
BLAKE2b-256 | a6b93d9dd4940b0a5b2f1ef81f982a4d608614c3e062cd079f12b0c342f36992 |