Skip to main content

Qiskit Qrack Provider - Qrack High-Performance GPU simulation for Qiskit

Project description

qiskit-qrack-provider

This repository contains a Qrack provider for Qiskit. You must install PyQrack to use it.

Performance can benefit greatly from following the Qrack repository "Quick Start" and "Power user considerations."

Qrack is a GPU-accelerated simulator with optional pure-CPU and CPU/GPU-hybrid simulation, scaling from minimalist systems to multiple GPUs for high performance, with novel near-Clifford, Schmidt-decomposition, quantum binary decision diagram (QBDD), light-cone optimization, state vector, and other simulation techniques. This repository provides the Qrack QasmSimulator.

This provider is based on and adapted from work by the IBM Qiskit Team and QCGPU's creator, Adam Kelly. Attribution is noted in content files, where appropriate. Original contributions and adaptations were made by Daniel Strano of the VM6502Q/Qrack Team.

To use, in Qiskit:

from qiskit.providers.qrack import Qrack

backend = Qrack.get_backend('qasm_simulator')

For example, for use with unitaryfund/mitiq, creating a (noiseless) executor can be as simple as follows:

from qiskit.providers.qrack import Qrack

def executor(circuit, shots=1000):
    """Executes the input circuit and returns the noisy expectation value <A>, where A=|0><0|.
    """
    # Use the Qrack QasmSimulator backend, (but it's specifically noiseless)
    ideal_backend = Qrack.get_backend('qasm_simulator')

    # Append measurements
    circuit_to_run = circuit.copy()
    circuit_to_run.measure_all()

    # Run and get counts
    print(f"Executing circuit with {len(circuit)} gates using {shots} shots.")
    job = ideal_backend.run(circuit_to_run, shots=shots)
    counts = job.result().get_counts()

    # Compute expectation value of the observable A=|0><0|
    return counts["0"] / shots

Generally, you will need to adapt the above executor snippet to your particular purpose.

(Happy Qracking! You rock!)


License: Apache License Version 2.0, Copyright (c) Daniel Strano and the Qrack contributors 2017-2024. All rights reserved.

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

qiskit_qrack_provider-1.1.0.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

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

qiskit_qrack_provider-1.1.0-py3-none-any.whl (29.2 kB view details)

Uploaded Python 3

File details

Details for the file qiskit_qrack_provider-1.1.0.tar.gz.

File metadata

  • Download URL: qiskit_qrack_provider-1.1.0.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for qiskit_qrack_provider-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c5ef12841a6d533693c988b94dc6b7a2c352a472245f28d6a1aafdb93950a7bf
MD5 e8a6b934b2c312341487a0e4b0c59239
BLAKE2b-256 c1f73939043f7b6e1be19522221d344ee7acf6f89542abdb75961a8f87ee7a85

See more details on using hashes here.

File details

Details for the file qiskit_qrack_provider-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for qiskit_qrack_provider-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 05421dd1c8a2afaf0b34f762a90b570ba4f4c8670ee22669958eb4c9c290d134
MD5 68dfa0d6f31b6ec3d07592567dd3cec4
BLAKE2b-256 b7b050c859015c196915191f5b575fe3d1bd563f87cda5a4edb095f6b5849a5e

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