Supported backends#

HTTomo currently supports several software packages that are used as backends to perform data processing and reconstruction. The list of the external packages will be growing in future to meet users’ needs.

If the package has a modular structure with an easy access to every method, for example as TomoPy software or scikit library, then the integration process is straightforward. The required YAML template can be generated by using Templates generator, or manually, and used with HTTomo. More complicated in structure packages would need an additional wrapping, see for instance the reconstruction methods in the HTTomolibgpu library.

Please see the provided list of YAML Templates.

TomoPy software (CPU)#

TomoPy is an open-source Python package for tomographic data processing and image reconstruction developed at The Advanced Photon Source in Illinois, USA. The project is active since 2013 and it gained a large audience of users and contributors across tomographic imaging community.

  • TomoPy is an open-source package in Python and C for data processing and reconstruction. TomoPy is mostly a CPU processing library and in HTTomo we expose the CPU modules only.

  • It is a CPU-multithreaded package. HTTomo controls parallelisation through MPI on a higher level and also supports local CPU multithreading from TomoPy, for every MPI process.

  • TomoPy is a library of stand-alone methods which can be easily integrated into HTTomo. Notably not all TomoPy methods are integrated in HTTomo because of the I/O nature of some modules. Please see the list of available TomoPy YAML Templates.

HTTomolibgpu library (GPU)#

HTTomolibgpu library is developed at Diamond Light source by Data Analysis Group to work together with the HTTomo software.

  • HTTomolibgpu is a Python library of GPU accelerated methods written using CuPy API and CUDA language.

  • Most of the original methods have been taken from TomoPy or Savu software and then re-optimised and GPU-accelerated.

  • It is a fully modular library and methods can be used stand-alone, however the GPU memory distribution feature of HTTomo will not be available. This means that the methods can silently fail if the GPU memory is overflowed.

HTTomolib library (CPU)#

HTTomolib library is similar to HTTomolibgpu, but contains mostly CPU modules.

Note

The HTTomo release usually supports a specific version of the backend package. Please check that the YAML templates are linked to the version advertised in the release.