  Tomographic imaging has benefited from advances in X-ray sources, detectors
and optics to enable novel observations in science, engineering and medicine.
These advances have come with a dramatic increase of input data in the form of
faster frame rates, larger fields of view or higher resolution, so high
performance solutions are currently widely used for analysis. Tomographic
instruments can vary significantly from one to another, including the hardware
employed for reconstruction: from single CPU workstations to large scale hybrid
CPU/GPU supercomputers. Flexibility on the software interfaces and
reconstruction engines are also highly valued to allow for easy development and
prototyping. This paper presents a novel software framework for tomographic
analysis that tackles all aforementioned requirements. The proposed solution
capitalizes on the increased performance of sparse matrix-vector multiplication
and exploits multi-CPU and GPU reconstruction over MPI. The solution is
implemented in Python and relies on CuPy for fast GPU operators and CUDA kernel
integration, and on SciPy for CPU sparse matrix computation. As opposed to
previous tomography solutions that are tailor-made for specific use cases or
hardware, the proposed software is designed to provide flexible, portable and
high-performance operators that can be used for continuous integration at
different production environments, but also for prototyping new experimental
settings or for algorithmic development. The experimental results demonstrate
how our implementation can even outperform state-of-the-art software packages
used at advanced X-ray sources worldwide.
