Requirements ------------ Supported OS ^^^^^^^^^^^^ Xmipp has been tested on the following operating systems: - **Ubuntu**: 20.04, 22.04, 24.04 - **CentOS**: 7 Other Linux systems may work but are not officially supported. Compilation and execution might not be straightforward. Hardware requirements ^^^^^^^^^^^^^^^^^^^^^ - At least **2 CPU cores** are required. - On some virtual machine tools only one is assigned by default. Please check and ensure at least two processors are assigned. Software dependencies ^^^^^^^^^^^^^^^^^^^^^ Compiler ^^^^^^^^ Xmipp requires a **C++17 compatible compiler**. We only officially support GCC and we require **GCC >= 9** Some users have reported successfully compiling xmipp with Clang >= 5.0 but is not officialy supported .. note:: If compiling with CUDA, a `compatible compiler `_ must be available. CMake ^^^^^ Xmipp requires **CMake >= 3.18 and < 4**. CUDA (optional) ^^^^^^^^^^^^^^^ Supported versions: **11.0 – 13**. By default, Xmipp attempts to automatically detect a CUDA installation. - We recommend using the newest version available for your operating system. - Installation guide: `CUDA Toolkit Archive `_ - CUDA - compiler compatibility (`reference `_) Manual configuration is possible if needed: To activate/deactivate CUDA compilation [Examples]: - XMIPP_USE_CUDA (xmipp.conf) [``XMIPP_USE_CUDA=ON``] - XMIPP3_XMIPP_USE_CUDA (environment) [``export XMIPP3_XMIPP_USE_CUDA=ON``] To specify the CUDA compiler (nvcc) [Examples]: - CMAKE_CUDA_COMPILER (xmipp.conf) [``CMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc``] - XMIPP_CUDA_BIN (`Scipion configuration file `_) [``XMIPP_CUDA_BIN=/usr/local/cuda/bin/``] - XMIPP3_CMAKE_CUDA_COMPILER (environment) [``export XMIPP3_CMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc``] To define a specific host compiler [Examples]: - CMAKE_CUDA_HOST_COMPILER (xmipp.conf) [``CMAKE_CUDA_HOST_COMPILER=/usr/bin/gcc``] - XMIPP3_CMAKE_CUDA_HOST_COMPILER (environment) [``export XMIPP3_CMAKE_CUDA_HOST_COMPILER=/usr/bin/gcc``] To manually set CUDA libraries path [Examples]: - XMIPP_CUDA_LIB (`Scipion configuration file `_) [``XMIPP_CUDA_LIB=/usr/local/cuda/lib64``] Refer to the `configuration page `_ for additional details. .. list-table:: :header-rows: 0 :widths: 50 50 * - CUDA version - Max supported GCC version * - 13.0, 13.1 - 15 * - 12.8, 12.9 - 14 * - 12.4, 12.5, 12.6 - 13.2 * - 12.1, 12.2, 12.3 - 12.2 * - 12 - 12.1 * - 11.4.1+, 11.5, 11.6, 11.7, 11.8 - 11 * - 11.1, 11.2, 11.3, 11.4.0 - 10 * - 11 - 9 .. warning:: CUDA 11.5 is not compatible with GCC 9. Please change one of them if you encounter errors. HDF5 ^^^^^^^^^^^^^^^ Scipion requires the HDF5 library. When using the default **Scipion Conda environment**, HDF5 is installed automatically from *conda-forge*. By default, this pulls the **latest available version** of HDF5. Versions **newer than 1.12** require **GCC 13 or newer** to be available on the system. If the system compiler is older, this may lead to compilation or runtime errors. For this reason, it is **recommended to explicitly install a compatible HDF5 version** inside the Scipion Conda environment: .. code-block:: bash scipion3 run conda install conda-forge::hdf5==1.12.2 This version is known to be compatible with older GCC compilers commonly found on supported Linux distributions. Dependencies ^^^^^^^^^^^^ The following packages must be installed before building Xmipp: - ``gcc``, ``g++`` — C and C++ compilers - ``cmake (>=3.18,<4)`` — cross-platform build system - ``git`` — version control system - ``zlib`` — compression library - ``fftw (>=3)`` — FFT library - ``hdf5 (1.8 <= version <=1.12.2)`` — HDF5 library - ``openmpi`` development libraries - ``sqlite (>=3)`` — SQLite database - ``libtiff`` — TIFF image support - ``libjpeg`` — JPEG support (Ubuntu: ``libjpeg-dev`` / RHEL: ``libjpeg-turbo-devel``) - ``openjdk (<=11)`` — Java Development Kit - ``python3-dev`` and ``python3-numpy`` — Python 3 development headers and NumPy Installing dependencies ^^^^^^^^^^^^^^^^^^^^^^^ Ubuntu/Debian """"""""""""" .. code-block:: bash sudo apt install -y gcc g++ cmake git libfftw3-dev libopenmpi-dev libhdf5-dev libtiff5-dev libsqlite3-dev libjpeg-dev python3-dev python3-numpy default-jdk zlib1g-dev CentOS/RHEL """"""""""" .. note:: On CentOS 7, the default GCC version is not compatible with Xmipp. You can enable a newer GCC version with: .. code-block:: bash yum install centos-release-scl yum install devtoolset-10 scl enable devtoolset-10 bash .. note:: On some RHEL-based systems, HDF5 may require enabling the **EPEL** repository: .. code-block:: bash yum install epel-release Install dependencies with: .. code-block:: bash yum install -y gcc gcc-c++ cmake git fftw-devel openmpi-devel hdf5-devel libtiff-devel sqlite-devel libjpeg-turbo-devel python3-devel python3-numpy java-11-openjdk-devel zlib-devel Final notes ^^^^^^^^^^^ These requirements will ensure your system is ready to build and run Xmipp. If you encounter problems, please check known `issues `_ or report a new one.