Package: heat
Heat is a distributed tensor framework for high performance data analytics.Project StatusGoalsHeat 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.FeaturesHigh-performance n-dimensional tensorsCPU, GPU and distributed computation using MPIPowerful data analytics and machine learning methodsAbstracted communication via split tensorsPython APISupport ChannelsWe useGitHub Discussionsas a forum for questions about Heat.
If you found a bug or miss a feature, then please file a newissue.RequirementsHeat requires Python 3.7 or newer.
Heat is based onPyTorch. Specifically, we are exploiting
PyTorch's support for GPUsandMPI parallelism. For MPI support we utilizempi4py. Both packages can be installed via pip
or automatically using the setup.py.InstallationTagged releases are made available on thePython 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 foundhere.HackingIf 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 StartedTL;DR:Quick Start(Read this to get a quick overview of Heat).Check out our Jupyter NotebookTutorialright 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 onRead the Docs.Try your first Heat program$python>>>importheatasht>>>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 theheat_test.pyscript:mpirun-n2pythonheat_test.pyIt should print something like this:xisdistributed:True
GlobalDNDarrayx:DNDarray([0,1,2,3,4,5,6,7,8,9],dtype=ht.int32,device=cpu:0,split=0)GlobalDNDarrayx:
Localtorchtensoronrank0:tensor([0,1,2,3,4],dtype=torch.int32)Localtorchtensoronrank1:tensor([5,6,7,8,9],dtype=torch.int32)Resources:Heat TutorialsHeat API ReferenceParallel Computing and MPI:@davidhenty'scourseWes Kendall'sTutorialsmpi4pympi4py docsTutorialContribution guidelinesWe welcome contributions from the community, if you want to contribute to Heat, be sure to review theContribution Guidelinesbefore getting started!We useGitHub issuesfor tracking requests and bugs, please seeDiscussionsfor general questions and discussion, and You can also get in touch with us onMattermost. You can sign up with your GitHub credentials. Once you log in, you can introduce yourself on theTown Squarechannel.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 guidehelps explain why, what, and how to get involved.LicenseHeat is distributed under the MIT license, see ourLICENSEfile.Citing HeatIf 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}
}AcknowledgementsThis work is supported by theHelmholtz Association Initiative and
Networking Fundunder project number ZT-I-0003 and the Helmholtz AI platform grant.