Skip to content

Requirements ​

Each requirement is labelled by how much you need it.

LabelMeaning
RequiredMENOS will not install or run without it
RecommendedWorks without it, but you will want it
OptionalOnly for specific features
GPU-onlyOnly for the CUDA backend
Development-onlyOnly for working on MENOS itself

Operating system and hardware ​

RequirementLabel
OSLinux or WindowsRequired (macOS and aarch64 are unverified; Windows is CPU-only)
CPUx86-64 (x64)Required for what has been verified
MemorySee Memory belowRequired

Software ​

The Required to build rows apply only to a source install. The PyPI wheels (CPython 3.10–3.14, Linux x86-64) and the Windows wheels need none of them.

VersionLabelNotes
Python3.10–3.14Requiredrequires-python >=3.10
NumPyany compatible with your PythonRequiredInstalled automatically
Qiskit2.5.2Required for MENOSBackend and MENOSEstimatorPinned exactly by the qiskit extra; other versions are untested
C++ compilerGCC 12+, Clang 16+ or AppleClang 15+ (C++20); on Windows, the MSVC 14.50 toolset from Visual Studio 2026 (Build Tools are enough; 14.51 is refused because it miscompiles MENOS)Required to buildGCC 15.2 and MSVC 14.50 were used
CMake3.25 or newerRequired to build4.2.3 was used
gitanyRequired to buildCMake fetches test dependencies from GitHub
LAPACK, LAPACKE, BLAS (development packages)anyRequired to buildOn Ubuntu: liblapacke-dev liblapack-dev libblas-dev. On Windows, scripts/fetch-openblas-windows.ps1 downloads the pinned OpenBLAS 0.3.34 release
Network access to github.comRequired to buildFor GoogleTest and nlohmann/json, pinned
scikit-build-core 1.0.3, nanobind 3.1.0exactRequired to buildFetched by the package installer
uvanyRecommendeduv add menos, and used by the project's scripts; pip also works

GPU (CUDA) ​

RequirementLabel
NVIDIA GPUCompute capability 8.6 is what the build targets by defaultGPU-only
NVIDIA driverA driver supporting your CUDA toolkit; 595.91.07 was used with toolkit 13.4, 566.14 with toolkit 12.4GPU-only
CUDA toolkit12.0 or newer; 13.4 and 12.4 were verifiedGPU-only
Host compilerThe same C++ compiler as aboveGPU-only

GPUs of other compute capabilities can be targeted by overriding the architecture at configure time; only compute capability 8.6 has been tested. Details, including a two-toolkit pitfall, are in CUDA Requirements.

Development ​

Label
clang-format, clang-tidyDevelopment-only: required by scripts/verify.sh (Linux)
Visual Studio 2026 C++ tools, CMake and Ninja (both ship with Visual Studio)Development-only: used by scripts/verify-windows.ps1
pytest 9.1.1Development-only: installed by the test extra
Node.js and npmDevelopment-only: to build this documentation

Memory ​

Memory is the requirement that most often decides what you can run.

Host memory. A dense statevector of n qubits needs 16 · 2ⁿ bytes (one complex128 amplitude is 16 bytes).

QubitsStatevector size
2016 MiB
25512 MiB
284 GiB
3016 GiB

By default MENOS allows a job to use 50% of the machine's physical memory. You can change that per job with the memory budget (Memory Constraints). A job whose plan would need more is refused before any allocation, with an error that states the required and available bytes.

Other engines use far less: a stabilizer simulation of 200 qubits needs about 13 KB, and a matrix-product-state simulation of 100 weakly entangled qubits needed about 50 KB in the example.

GPU memory. The device budget is the free memory the driver reports, which is smaller than the marketing figure: the development GPU is sold as 4096 MiB and reports 3770 MiB total and about 3681 MiB free. A statevector must fit in that, so by arithmetic the ceiling on such a card is 27 qubits (2 GiB); the largest size actually executed in verification was 26. See GPU Memory.

Checking what you have ​

bash
python3.14 --version
cmake --version
g++ --version
nvidia-smi          # GPU-only

Released under the Apache-2.0 license. GitHub · PyPI