An open source framework for using Amazon Braket devices with the Strawberry Fields photonic device programming library
Project description
This plugin provides a BraketEngine class for running photonic quantum circuits created in Strawberry Fields on the Amazon Braket service.
The Amazon Braket Python SDK is an open source library that provides a framework to interact with quantum computing hardware devices and simulators through Amazon Braket.
Strawberry Fields is an open source library for writing and running programs for photonic quantum computers.
The plugin documentation can be found here: https://amazon-braket-strawberryfields-plugin-python.readthedocs.io/en/latest/.
Features
This plugin provides the classes BraketEngine for submitting photonic circuits to Amazon Braket and BraketJob for tracking the status of the Braket task.
BraketEngine and BraketJob have the same interfaces as RemoteEngine in Strawberry Fields and Job in the Xanadu Cloud Client, respectively, and can be used as drop-in replacements:
from braket.strawberryfields_plugin import BraketEngine
eng = BraketEngine("arn:aws:braket:us-east-1::device/qpu/xanadu/Borealis")
result = eng.run(prog, shots=1000) # Synchronous, returns sf.Result
job = eng.run_async(prog, shots=1000) # Asychronous, returns BraketJob
print(job.status)
Installation
Before you begin working with the Amazon Braket Strawberry Fields Plugin, make sure that you installed or configured the following prerequisites:
Download and install Python 3.7.2 or greater. If you are using Windows, choose the option Add Python to environment variables before you begin the installation.
Make sure that your AWS account is onboarded to Amazon Braket, as per the instructions here.
Download and install Strawberry Fields:
pip install strawberryfields
You can then install the latest release of the Strawberry Fields-Braket plugin as follows:
pip install amazon-braket-strawberryfields-plugin
You can also install the development version from source by cloning this repository and running a pip install command in the root directory of the repository:
git clone https://github.com/aws/amazon-braket-strawberryfields-plugin-python.git
cd amazon-braket-strawberryfields-plugin-python
pip install .
You can check your currently installed version of amazon-braket-strawberryfields-plugin with pip show:
pip show amazon-braket-strawberryfields-plugin
or alternatively from within Python:
from braket import strawberryfields_plugin
strawberryfields_plugin.__version__
Tests
Make sure to install test dependencies first:
pip install -e "amazon-braket-strawberryfields-plugin-python[test]"
Unit tests
Run the unit tests using:
tox -e unit-tests
To run an individual test:
tox -e unit-tests -- -k 'your_test'
To run linters and unit tests:
tox
Integration tests
To run the integration tests, set the AWS_PROFILE as explained in the amazon-braket-sdk-python README:
export AWS_PROFILE=Your_Profile_Name
Run the integration tests with:
tox -e integ-tests
To run an individual integration test:
tox -e integ-tests -- -k 'your_test'
Documentation
To build the HTML documentation, run:
tox -e docs
The documentation can then be found in the doc/build/documentation/html/ directory.
Contributing
We welcome contributions - simply fork the repository of this plugin, and then make a pull request containing your contribution. All contributers to this plugin will be listed as authors on the releases.
We also encourage bug reports, suggestions for new features and enhancements, and even links to cool projects or applications built with the plugin.
Support
Source Code: https://github.com/aws/amazon-braket-strawberryfields-plugin-python
Issue Tracker: https://github.com/aws/amazon-braket-strawberryfields-plugin-python/issues
General Questions: https://quantumcomputing.stackexchange.com/questions/ask (add the tag amazon-braket)
Strawberry Fields Forum: https://discuss.strawberryfields.ai
If you are having issues, please let us know by posting the issue on our Github issue tracker, or by asking a question in the forum.
License
This project is licensed under the Apache-2.0 License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file amazon-braket-strawberryfields-plugin-1.1.0.post0.tar.gz
.
File metadata
- Download URL: amazon-braket-strawberryfields-plugin-1.1.0.post0.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2470f965322278f92ed9b3e6f21555bff1f1edd2606d63452d6117c536c06646 |
|
MD5 | 897237cfe6ca270e9099f17f168659c7 |
|
BLAKE2b-256 | fd490e8509271d9279cc1e5f3f2b98d8e175be6d3faabce9677c9b6f39409963 |
File details
Details for the file amazon_braket_strawberryfields_plugin-1.1.0.post0-py3-none-any.whl
.
File metadata
- Download URL: amazon_braket_strawberryfields_plugin-1.1.0.post0-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 094b1f818ceb030ab075f868a99800b2cc646029136df75e65fa2a801fa91825 |
|
MD5 | 93ac98a02acee33b05ccb04a3219f427 |
|
BLAKE2b-256 | 3a10d62cc512c8987a053d85c7eeb55261dce0c5fd9a0e2a8ec1d20e05759d7c |