Installation

parallelproj is a pure Python package for PET image reconstruction. It relies on two lower-level dependencies:

  • libparallelproj – a compiled C++/CUDA library providing the core projector implementations

  • parallelproj-core – a minimal Python interface to libparallelproj

Both libparallelproj and parallelproj-core are available on conda-forge and are documented at libparallelproj.readthedocs.io.

Note

We strongly recommend installing parallelproj from conda-forge, which automatically pulls in the correct pre-compiled libparallelproj variant (CPU or CUDA) for your system.

Tip

You can get miniforge (a minimal conda installer configured for conda-forge) here. We recommend installing into a dedicated virtual environment.

Default install (auto CUDA detection)

The following commands create a new environment named parallelproj and install the package along with all required compiled libraries.

$ mamba create -n parallelproj -c conda-forge parallelproj
$ conda create -n parallelproj -c conda-forge parallelproj

After creation, activate the environment:

$ mamba activate parallelproj
$ conda activate parallelproj

Tip

To use parallelproj with PyTorch or CuPy, add them as extra dependencies directly in the environment creation call, e.g.:

$ mamba create -n parallelproj -c conda-forge parallelproj pytorch
$ mamba create -n parallelproj -c conda-forge parallelproj cupy

Force a specific CUDA build

If you need a particular CUDA toolkit version of libparallelproj, you can pin it explicitly when creating the environment. Replace cuda129 below with the CUDA version matching your system (e.g. cuda129, cuda13).

$ mamba create -n parallelproj-cuda129 -c conda-forge cuda-version=12.9 parallelproj
$ conda create -n parallelproj-cuda129 -c conda-forge cuda-version=13.0 parallelproj

Force a CPU-only build

To explicitly install the CPU-only variant of libparallelproj (e.g. on a machine without a GPU):

$ mamba create -n parallelproj-cpu -c conda-forge parallelproj "libparallelproj=*=cpu*"
$ conda create -n parallelproj-cpu -c conda-forge parallelproj "libparallelproj=*=cpu*"

Verifying the installation

To check whether the installed parallelproj-core (backend) package was compiled with CUDA support, run the following in Python:

import parallelproj_core
print(parallelproj_core.cuda_enabled)  # 1 = CUDA enabled, 0 = CPU only