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.13

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.3.2.tar.gz (107.2 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.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (712.7 kB view details)

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

qdd-0.3.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (687.2 kB view details)

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

qdd-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (712.7 kB view details)

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

qdd-0.3.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (687.6 kB view details)

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

qdd-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (713.8 kB view details)

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

qdd-0.3.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (688.1 kB view details)

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

qdd-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (714.1 kB view details)

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

qdd-0.3.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (688.4 kB view details)

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

qdd-0.3.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (714.3 kB view details)

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

qdd-0.3.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (688.5 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for qdd-0.3.2.tar.gz
Algorithm Hash digest
SHA256 745ea87884cd81b87717d1d99930fb05d8e608d318dc6ef293814d05328b0139
MD5 4af699f85c22ed0abfa72d3f9703003a
BLAKE2b-256 629c8a4d7db60717b1bc355019d36deb716ea346161d386a903dc3c8c3c78f28

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2.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.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.3.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2d47a656c1077b353c8736fa31ef3c5c1e31e7afc037f2ced0e2ec0ecdc61587
MD5 13566f4104d2a6f9ea98715c79def47e
BLAKE2b-256 333e79a5c08e17b327068a00c31c941742f204291e28128ac21e167051b85050

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2-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.3.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.3.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 804b62dce49750db3427a522d0b4cf81cdb6b4885d8a8226e40c7b325c922d29
MD5 178db6080ede072b2465f924b4dafdc4
BLAKE2b-256 ade2c61b98a5b7e0c9dc9391584895d7033474db2c53cc8fc8532400889a6a64

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2-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.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.3.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 31a1fb80577cfcf2deff9813c35983072cce0587fcb6c958b126015e5533ac8e
MD5 2b4cb507c945665678894991b921b906
BLAKE2b-256 68aaea418b6df5a26d593eb21699fcf0a40517aa7b5619487b33d435ea665e15

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2-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.3.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.3.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a14bc1a5608d5a0346c6f5be0abab16aafa5be9be5fd20724509b7dadf154feb
MD5 ee82a3247d59a71949293292c151e631
BLAKE2b-256 5711686c0ec62638434c73821e4476879ffceb93dd97b718f2b602dcbb70441e

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2-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.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 94b25b171064f33d3294fccae219e661a4d14464262f8f259b5e7ae16945748a
MD5 73638a05e7f75348b83597e5af2a2e07
BLAKE2b-256 bc533a326f00897c0fd9eeea0091aa6528e7857d5a78902558cda175611881ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2-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.3.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.3.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 81c3d025bc0aa942f411a81887a43db29d448c5b7c2ff095982ae2a05309196c
MD5 7d757e3560c3fbff87b0f6aed04d6a6c
BLAKE2b-256 73ce17ebad22771349a56b9e9b37bd5ef77b066f03dfdab8769eae018c4c5394

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2-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.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.3.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7bc6c66c84c496f3845261f506aef8e1ed4b9443d55466a58041da84233f6395
MD5 3571dc4deb2fc5d73e47e4f2b2feed08
BLAKE2b-256 6a2a77f9bed62c143837fa394ac4976886f11387dfdd78db74cdf03142e4c075

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2-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.3.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.3.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fb96bcc9d55f4e75f95cf3843c27af2031e4282499d25b5099207a270d971001
MD5 1de2054bc94f01b0acdb03cfd57e7399
BLAKE2b-256 30f7ff599efc8bdfbc15fc33b713efe2b26c019c05cb1a58533bbfa4d823213f

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2-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.3.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for qdd-0.3.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d1035680f22d59cff4e3e185418710e91c3e25e06b9cf4f6573749c2033310e4
MD5 c87dcefa6121388e95f85741a48789a4
BLAKE2b-256 b2746af3a7b52a4bc5ad80bcb02be656e462df2db7421870c80873239649c364

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2-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.3.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for qdd-0.3.2-cp39-cp39-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 98a9b2bcfad749c108d1138b0d90efc58cfcdd1e8e0f176456beb042d9ebae7f
MD5 8052164ce7eaf8706fe1a747747e90e1
BLAKE2b-256 45e01989ff4057b9c889bfaeed87af07b82cd2ce0a756dc7d963ac373ea19786

See more details on using hashes here.

Provenance

The following attestation bundles were made for qdd-0.3.2-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