Skip to main content

An open source quantum circuit simulator to be run locally with the Amazon Braket SDK

Project description

Amazon Braket (SDK) Qrack Simulator

This is an Amazon Braket SDK back end for the open-source unitaryfund/qrack simulator. (PyQrack provides pure Python language bindings from C++ Qrack.) This simulator can be run locally, via either a (vendor-agnostic) OpenCL implementation or a (NVIDIA-specific) CUDA implementation. (CPU-only local simulation is also supported, when compiling and installing Qrack from source.) You can use the simulator to test quantum tasks that you construct for the Amazon Braket SDK before you submit them to the Amazon Braket service for execution.

Setting up Amazon Braket Qrack Simulator Python

Installing this package will install the Amazon Braket SDK, necessary to use the local simulator. For manual installation of the SDK, follow the instructions in the README for setup.

Checking the version of the Qrack simulator

You can check your currently installed version of amazon-braket-qrack-simulator with pip show:

pip show amazon-braket-qrack-simulator

or alternatively from within Python:

>>> from braket import qrack_simulator
>>> qrack_simulator.__version__

Usage

The quantum simulator implementation BraketQrackSimulator plugs into the LocalSimulator interface in Amazon Braket SDK, with the backend parameter as "qrack".

Executing a circuit using the default simulator

from braket.circuits import Circuit
from braket.devices import LocalSimulator

device = LocalSimulator(backend="qrack")

bell = Circuit().h(0).cnot(0, 1)
print(device.run(bell, shots=100).result().measurement_counts)

Documentation

BraketQrackSimulator follows a subset of the Amazon Braket SDK default simulator input and output interfaces. Detailed documentation for the default simulator, including the API reference, can be found on Read the Docs.

To generate the API Reference HTML in your local environment

First, install tox:

pip install tox

To generate the HTML, first change directories (cd) to position the cursor in the amazon-braket-qrack-simulator-python directory. Then, run the following command to generate the HTML documentation files:

tox -e docs

To view the generated documentation, open the following file in a browser: ../amazon-braket-qrack-simulator-python/build/documentation/html/index.html

Testing

If you want to contribute to the project, be sure to run unit tests and get a successful result before you submit a pull request. To run the unit tests, first install pytest, if necessary:

pip install pytest

With pytest installed, use this command in the amazon-braket-qrack-simulator-python directory:

pytest .

License

This project is licensed under the Apache-2.0 License.

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

amazon-braket-qrack-simulator-0.3.1.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file amazon-braket-qrack-simulator-0.3.1.tar.gz.

File metadata

File hashes

Hashes for amazon-braket-qrack-simulator-0.3.1.tar.gz
Algorithm Hash digest
SHA256 c10cbb66b51dc6abb10f2e55ec24f02f049c59ef3c73601109b148355c9864ab
MD5 9ab34de10832bf97f6b8fc661b36721b
BLAKE2b-256 fbe0ab741596a80de626597e5f3ef1f97a8e6a88412c99d0cfc806a74f15c427

See more details on using hashes here.

File details

Details for the file amazon_braket_qrack_simulator-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for amazon_braket_qrack_simulator-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ea19051138ccd0a52db61b3aeb4208471c0e7e104af4f865678aa417b447978f
MD5 5d4e8236ca55b82d072925ccef14b5ec
BLAKE2b-256 0d45f46772904edddc5ad55f4ba5bc823cae1493f660403bb8d96d343a3810ae

See more details on using hashes here.

Supported by

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