Skip to main content

Qiskit Provider for QDD

Project description

Documentation

QDD

Documentation is available on GitHub Pages.

QDD is a decision diagram based quantum computing simulator for Qiskit. It can reduce memory usage compared with typical state-vector simulators when the decision diagram representation remains compact.

Installation

Install QDD from PyPI:

pip install qdd

Supported environment:

  • Linux x86_64 and aarch64
  • Python 3.9 through 3.14

Quick Start

QDD works as a Qiskit backend.

from qiskit import QuantumCircuit

from qdd import QddProvider

backend = QddProvider().get_backend("qasm_simulator")

circuit = QuantumCircuit(3)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure_all()

job = backend.run(circuit, shots=1024, seed_simulator=1234)
print(job.result().get_counts())

For statevector simulation:

from qiskit import QuantumCircuit

from qdd import QddProvider

backend = QddProvider().get_backend("statevector_simulator")

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

statevector = backend.run(circuit).result().get_statevector()
print(statevector)

MPI Usage

MPI support is optional. Use the MPI-enabled qdd-mpi distribution only when you want to run QDD across MPI ranks.

The qdd and qdd-mpi distributions provide the same import qdd Python package namespace. Do not install both in the same environment.

Install the MPI-enabled package from PyPI:

pip install mpi4py
CC=mpicc CXX=mpicxx pip install qdd-mpi --no-binary qdd-mpi

Minimal MPI run with Qiskit:

# mpi_bell.py
from mpi4py import MPI
from qiskit import QuantumCircuit

from qdd import QddProvider

backend = QddProvider().get_backend("qasm_simulator")
backend.set_options(use_mpi=True)

circuit = QuantumCircuit(3)
circuit.h(0)
circuit.cx(0, 1)
circuit.cx(1, 2)
circuit.measure_all()

result = backend.run(circuit, shots=1024).result()
if MPI.COMM_WORLD.Get_rank() == 0:
    print(result.get_counts())

Run the script under MPI:

mpirun -n 2 python mpi_bell.py

You can also pass use_mpi=True per run, or through QDD primitive backend options such as Sampler(backend_options={"use_mpi": True}) and Estimator(backend_options={"use_mpi": True}).

Documentation

Full documentation, including source builds, testing, MPI usage, and Python/C++ API references, is published with GitHub Pages:

https://fujitsu-utokyo-qdd.github.io/QDD/

The documentation source is in docs/source.

Citation

If you use QDD in academic work, please cite:

  • "Accelerating Decision Diagram-based Multi-node Quantum Simulation with Ring Communication and Automatic SWAP Insertion," IEEE QSW 2024: 10.1109/QSW62656.2024.00025

Additional references:

License

BSD 3-Clause Clear License

Limitation of Liability

In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.

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

qdd-0.4.0.tar.gz (109.6 kB view details)

Uploaded Source

Built Distributions

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

qdd-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (724.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

qdd-0.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (699.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

qdd-0.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (724.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

qdd-0.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (699.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

qdd-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (724.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

qdd-0.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (699.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

qdd-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (725.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

qdd-0.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (700.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

qdd-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (725.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

qdd-0.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (700.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

qdd-0.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (726.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

qdd-0.4.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (700.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file qdd-0.4.0.tar.gz.

File metadata

  • Download URL: qdd-0.4.0.tar.gz
  • Upload date:
  • Size: 109.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for qdd-0.4.0.tar.gz
Algorithm Hash digest
SHA256 c3f5a39efa9cee970cfd6a102f0fa9d322f658f39bafc2b5dbf0e3c4bd591765
MD5 ce7e43e668c9b797d3ca47cbd09a7907
BLAKE2b-256 ceea6c633fd1e3e3ceaadeb9182903edc74a324c4eb0566484d6f8bc9cc9e44b

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0.tar.gz:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 20a69a3c1b82d6fd32f9b67de0a7b88474563889c080e881d18eb2daf7d83d9b
MD5 32dc004c6f0a49176e1b2c3b075f6c6b
BLAKE2b-256 604f91de47b2624a6f9b0ecf2e9749ab73c6c2dbda4a948d16be0f6d1b506d78

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e879b077ebae3969e48abd4f9cc880b8997466921bcd831f37867adf6eda07bb
MD5 ad1766d3f3447b3284b2700780179873
BLAKE2b-256 7d071837eb8894488bd1217ebefd50b113479d1b78f54bce05f7b4a4ddff49a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2cbe1af1be6dcc1a75e3b87002f74084862f148468730173a2112d578dece0a3
MD5 6473ec483ecb7205dd4fa6524620e631
BLAKE2b-256 47842aba45a3b6369f30247211d05fc5505c80bcf92b3bab554a89a9fc0787c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 98a5e144573b15a64cac45d85d241b10f2366b078c471b60715d310f5a55bafc
MD5 988c7d1db48f5126a7c3fddaecafd8e3
BLAKE2b-256 ff3a3e40e2b8fdb5cd1b58ef70380cc6465c4bedf7240d0511543b30995c202a

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b81756d261267b03ce144baa960e7ec1df013fa9fb923571737a97771154f027
MD5 65e1eab34e8b8b87bf41800164cb21c3
BLAKE2b-256 99d8a6c6b872518a464703e4203630bb9cd1f22cc99e4a4f99e904ac125fcb0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 688c28276c459c14d4b8d261d98645a2afcfeb3d7917c8153964c785bb106fa6
MD5 b0e2c3228c4919e3dd697e08ac9664e4
BLAKE2b-256 2f543e389d588a3d899d0a10ae86d1fb7ff735766bb963f4f1e0aa7808c806ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 027468761167bb778c2d736dd3ba8f7e2eeddb73f59f92a40b44d63b5af71d80
MD5 71f60d20ffccaf5f2adedcb3a4a62cdf
BLAKE2b-256 aa1ee813e1e37f0caef970563d8dc08e50bb4eb5716c229864a893f1a3531c17

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b16fd29401b5e4a753dae6d6256085fcd828e4109225c70b8de6c8af38ea1068
MD5 0e871ff5a55e7ed02bf6f6e0a91d55de
BLAKE2b-256 b7863f670656337cf44ec6e884983508cd88099b4afd14cfbd7e1e37a6bd1084

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ab061707b23acfeb908d51c00b6f31fa91b7414b0b3d7d5642659311492a6be5
MD5 d438e2662c04765d8c036d30b303c5dd
BLAKE2b-256 54f1c8ec743ee856b30d5ec04a817ae1d71e317cb1970a1f65fe62fd20642c88

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 45433f42f9769996dc77765ecc338a530fc9467497b381fba0d6d5ae087e233d
MD5 1461d9575107aad0179b9c6ed8d39737
BLAKE2b-256 4c185831f45f3b33ff7221098b21b2de01d9e40ec9489d8afa389b7afdcabc76

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0d472bd9cde6b7afbcec48a545e6c43c9deb3fd3870e061273913199332a652b
MD5 8069d4769ca6d94f3f2aa51dbab2c9f1
BLAKE2b-256 79179ee23360141d229ad415b2950faf9608215b8235b9179951898b99daf9d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qdd-0.4.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.4.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ac7f7518f17a2727aea944c4fb7e218144014a8cf3f0f52cf20227d6667e5b76
MD5 0de8eb510d199388950435558d9a12cb
BLAKE2b-256 fe3fdde05e5a4212587eb52ab5bb0f26b255e0b8796529b0f08e8500688d11ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.4.0-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish_to_pypi_ci.yml on Fujitsu-UTokyo-QDD/QDD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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