Skip to content

Compatibility ​

What MENOS was built and tested against. "Tested" means exercised by scripts/verify.sh (Linux) or scripts/verify-windows.ps1 (Windows) on the development machine.

Software ​

ComponentVersionStatus
Python3.10–3.14Required (>=3.10); 3.14 in both verification scripts, 3.10–3.14 by the Windows wheel tests
Qiskit2.5.2Pinned exactly; other versions untested
Qiskit Aer0.17.2Optional (menos[noise]), for noise models; pinned exactly and checked against Qiskit 2.5.2
NumPyWhatever installs with your PythonRequired
CMake3.25 or newer4.2.3 used
C++ compilerGCC 12+, Clang 16+, AppleClang 15+ (C++20); MSVC on WindowsGCC 15.2.0 and MSVC 14.50 used
LAPACK, LAPACKE, BLASDevelopment packages; OpenBLAS 0.3.34 (LP64, pinned) on WindowsRequired to build
scikit-build-core1.0.3Build-time, pinned
nanobind3.1.0Build-time, pinned
GoogleTestv1.18.0 (pinned commit)Fetched at configure time; used by tests only
nlohmann/jsonv3.12.0Fetched at configure time; used by tests only

Platforms ​

PlatformStatus
Linux x86-64Verified
Linux aarch64Intended, not verified
macOS arm64Intended, not verified
Windows x64 (MSVC)Verified, CPU only
Windows ARM64Not supported

GPU ​

ComponentVersion / status
NVIDIA GPUCompute capability 8.6 verified (RTX 3050 Laptop GPU); 8.9 verified running code built for 8.6 (RTX 4060 Laptop GPU)
CUDA toolkit12.0 or newer required; 13.4 and 12.4 verified
NVIDIA driver595.91.07 verified with toolkit 13.4 (advertises CUDA 13.2); 566.14 verified with toolkit 12.4 under WSL (advertises CUDA 12.7)
CUDA on aarch64, macOS or native WindowsNot supported (on Windows, use WSL)
AMD ROCm, Apple MetalNot implemented

Qiskit interfaces ​

InterfaceImplemented
BackendV2Yes (MENOSBackend)
JobV1Yes (MENOSJob)
BaseEstimatorV2Yes (MENOSEstimator)
BaseSamplerV2No
ProviderNo
BackendV1No

OpenQASM ​

The command-line tool reads OpenQASM 2 and OpenQASM 3, chosen by the program's header (see Command Line). OpenQASM 3 is imported for its static-circuit subset, with stdgates.inc gates as Qiskit defines them; reset, control flow and timing are refused with their location. From Python, menos.from_qasm3(text, inputs) returns a Circuit (since Phase 19); there is no Python entry point for OpenQASM 2. Results agree with Qiskit's own OpenQASM 3 import (qiskit.qasm3.loads) within 1e-12, global phase included.

Verification ​

python
import sys
from importlib.metadata import version

import menos

assert sys.version_info >= (3, 10)
assert version("qiskit") == "2.5.2"
assert menos.__version__ == version("menos")

Released under the Apache-2.0 license. GitHub · PyPI