Skip to main content

Qiskit BackendV2 bridge for MIMIQ — run Qiskit circuits on MIMIQ cloud or local MIMIQ simulators.

Project description

MIMIQ

mimiq-qiskit

Qiskit bridge for MIMIQ.

A drop-in Qiskit BackendV2 that lets Qiskit users submit circuits to the MIMIQ cloud — or to any local MIMIQ simulator — without leaving the Qiskit ecosystem. Build your circuits with QuantumCircuit, hand them to a MimiqBackend, get back a familiar qiskit.result.Result.

Highlights:

  • MimiqBackend — a BackendV2 covering the standard gate set, arbitrary UnitaryGates, and single-gate mid-circuit conditionals. A batch of circuits is submitted as a single MIMIQ job.
  • MimiqSamplerV2 / MimiqEstimatorV2 — native Qiskit V2 primitives. The estimator computes expectation values exactly with MIMIQ's expectation-value engine, with no shot noise.
  • MIMIQ-specific run options (bonddim, entdim, timelimit, noisemodel, …) pass straight through backend.run(...).

Repository layout

mimiq-qiskit/
├── docs/        # Sphinx documentation
├── examples/    # Runnable examples
├── src/         # Python package
└── tests/       # Pytest suite

Qiskit is Python-only, so this repo has no Julia side — the package lives at the repo root rather than under a nested mimiq-qiskit-python/ directory.

Quick start

from qiskit import QuantumCircuit
from mimiqlink import MimiqConnection
from mimiq_qiskit import MimiqBackend

# Authenticate against the MIMIQ cloud (opens a browser prompt).
conn = MimiqConnection()
conn.connect()

backend = MimiqBackend(conn)

qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])

job = backend.run(qc, shots=1000)
counts = job.result().get_counts()
print(counts)

Local MIMIQ simulators (anything implementing the mimiqcircuits.backends.Backend interface) wrap the same way — pass the backend instance instead of a connection:

from mimiq_qiskit import MimiqBackend
from somewhere import MyLocalBackend

backend = MimiqBackend(MyLocalBackend())

Primitives

Prefer the native primitives for sampling and expectation values. The estimator is exact — no shot noise:

from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from mimiq_qiskit import MimiqBackend, MimiqEstimatorV2

backend = MimiqBackend(conn)
estimator = MimiqEstimatorV2(backend)

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)

result = estimator.run([(qc, SparsePauliOp(["ZZ", "XX"], [1.0, 0.5]))]).result()
print(result[0].data.evs)

See examples/sampling.py and examples/expectation_values.py for runnable scripts.

Installation

pip install mimiq-qiskit

Development

Branch model: active development on devel, releases on main.

uv sync             # install dev environment
uv run pytest -sxv  # run the test suite
uv build            # build wheel + sdist

Repositories and releases

Development happens on the private GitLab repository (origin); the public GitHub mirror (public, qperfect-io/mimiq-qiskit) is kept in sync on the main branch and the public version tags:

  • main and vX.Y.Z tags are pushed to both origin and public.
  • vX.Y.Z-private tags live only on origin/devel and never reach the public remote.

On the public repository, pushing a vX.Y.Z tag triggers the PyPI publish and GitHub Pages documentation deploy. To develop against an unreleased mimiqcircuits, add the sibling checkout locally without committing it:

uv add --editable ../mimiqcircuits-python

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mimiq_qiskit-0.1.0.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mimiq_qiskit-0.1.0-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

Details for the file mimiq_qiskit-0.1.0.tar.gz.

File metadata

  • Download URL: mimiq_qiskit-0.1.0.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mimiq_qiskit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0c7e7e4b9930c102d658d3a84f4df241c61bbdfd4112fc286022d14192da4a9f
MD5 ebfa7f2ff7219c87ec38a3b3b0a9a399
BLAKE2b-256 90d318ee275fa988c51f36061d40f023d5d6ca9058f698713690da628ae8a4a7

See more details on using hashes here.

File details

Details for the file mimiq_qiskit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mimiq_qiskit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mimiq_qiskit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d09026d771f69299684b775b8cc00a7de155b25db40b97df07172e103845628c
MD5 efe2a946357c4b796570f87ebefd581e
BLAKE2b-256 9a851ecc2ecc821b4818486ae46576f8a6933389c11a451316780491ad2556c7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page