Frequently asked questions¶
We currently do not have specific plans in this direction, but we agree that it would be very helpful.
No. The package does not include segmentation algorithms, since we are currently focused on tomography, while we feel that segmentation are more part of the application specific data analysis that occurs after tomographic processing. An important exception is when segmentation steps are used as part of the tomographic reconstruction algorithm, such as in the DART algorithm.
Yes. Please check the alignment module for details.
The ASTRA toolbox provides highly efficient tomographic reconstruction methods by implementing them on graphic processing units (GPUs). It includes advanced iterative methods and allows for very flexible scanning geometries. The ASTRA toolbox also includes building blocks which can be used to develop new reconstruction methods, allowing for easy and efficient implementation and modification of advanced reconstruction methods. However, the toolbox is only focused on reconstruction, and does not include pre-processing or post-processing methods that are typically required for correctly processing synchrotron data. Furthermore, no routines to read data from disk are provided by the toolbox.
The TomoPy toolbox is specifically designed to be easy to use and deploy at a synchrotron facility beamline. It supports reading many common synchrotron data formats from disk through the companion project, DXChange [B14], and includes several other processing algorithms commonly used for synchrotron data. Integrating the ASTRA toolbox into the TomoPy framework, brought optimized GPU-based reconstruction methods to synchrotron beamline users at a time when TomoPy had no GPU-based methods. Even today, the ASTRA toolbox offers faster iterative methods than TomoPy.
UFO is a general purpose image processing framework, optimized for heterogeneous compute systems and streams of data. Arbitrary data processing tasks are plugged together to form larger processing pipelines. These pipelines are then mapped to the hardware resources available at run-time, i.e. all available multiple GPUs and CPUs.
One specific use case that has been integrated into the TomoPy is fast reconstruction using the filtered backprojection and direct Fourier inversion methods although others for pre- and post-processing might be added in the future.
TomoPy supports Windows, Linux, and macOS. The ASTRA toolbox supports Linux and Windows. Project UFO supports Linux and macOS.
The GPU algorithms in TomoPy and the ASTRA toolbox are all implemented using nVidia’s CUDA. As a result, only nVidia CUDA enabled GPUs can be used to run them. UFO uses OpenCL, so it supports both AMD and nVidia OpenCL compatible GPUs.
Maybe. In their default installation packages, TomoPy and the ASTRA toolbox are limited to running on a single multi-core and multi-GPU machine. Both toolboxes can be run on a HPC cluster through parallelization using MPI, but since installation and running on a HPC cluster is often cluster specific, the default installation packages do not include these capabilities.
As such, the integrated packages that is presented in the manuscript currently does not support running on a HPC cluster. Note that the ASTRA toolbox provides a separate MPI enabled package for use on a HPC cluster. We refer to [B25] for more details about TomoPy’s planned HPC implementation. It is a MapReduce type MPI implementation layer, which was successfully used on many clusters, i.e. Stampede, Cori, Mira. There are plans to allow user access to TomoPy on a HPC cluster (e.g. through a client or webportal), but these projects will take some time before they are being matured for user’s use.
pip wasn’t designed to manage non-Python packages, and TomoPy has non-Python dependencies. Our preferred package and environment manager, conda, makes it easier for us (the developers) to build and distribute TomoPy.