Skip to main content

Pennylane plugin enabling seamless job execution on MonarQ, Calcul Québec’s nonprofit-hosted quantum computer

Project description

pennylane-calculquebec

Table of content

Definitions

Pennylane-CalculQuebec is a PennyLane plugin enabling seamless job execution on MonarQ, Calcul Québec’s nonprofit-hosted quantum computer.

It also offers simulation and pre-processing / post-processing capabilities relative to MonarQ quantum computer.

Pennylane is a cross-platform Python library for quantum machine learning, automatic differentiation, and optimization of hybrid quantum-classical computations.

Calcul Quebec is a non-profit organization that regroups universities from the Province of Quebec and provides computing power to research and academia.

Snowflurry is a quantum computing framework developed in Julia by Anyon Systems and aims to provide access to quantum hardware and simulators.

Project structure

As shown in the diagram below, this plugin contains a Pennylane device named monarq.default. This devices is defined by the class MonarqDevice. It first applies a series of pre-processing steps to the circuit in order to simplify it, and make it executable on MonarQ. It then creates and submits a job using API calls, and gets the results back once they're ready. A series of post-processing steps are then applied, and the processed results are returned to the end user.

An other device named snowflurry.qubit also lives in the package. It works by converting a PennyLane circuit into a Snowflurry circuit, thanks to packages like JuliaCall that allow the communication between Python and Julia environments. The The Snowflurry circuit can then be used with the available backends, either a simulator or real quantum hardware. The results are then converted back into PennyLane's format and returned to the user.

project_structure

Local installation

Pennylane-calculquebec can be installed using pip:

pip install pennylane-calculquebec

Alternatively, you can clone this repo and install the plugin with the following command from the root of the repo:

pip install -e .

Pennylane and other Python dependencies will be installed automatically during the installation process.

The plugin will also take care of installing Julia and the required Julia packages, such as Snowflurry and PythonCall during the first run of the Snowflurry.Qubit device.

Usage

If you need more information about how to use the plugin, you may read the getting-started jupyter notebook.

Running files

The plugin can be used both in python scripts and Jupyter notebooks. To run a script, you can use the following command:

python base_circuit.py

Dependencies

Julia

As of version 0.3.0, there is no need to install Julia manually, since the plugin will download and install the required version automatically upon first use. This Julia environment is bound to the plugin.

However, if you wish to manage your Julia environment, you can download it from the official website. It is highly recommended to install using the installer file, as it will ask to add Julia to the system's environment variables.

To ensure this correct configuration, during the installation process, the checkbox Add Julia to PATH must be checked.

As of version 0.5.0, Julia will only be installed if you use Snowflurry.Qubit. You can use Monarq.Default without depending on Julia.

Python modules

Those packages are installed automatically during the plugin installation process and are necessary for the plugin to work. Here are the links to their respective documentation:

State of the project and known issues

The plugin is currently in its beta phase and provides access to MonarQ directly through API calls. It also contains capabilities for obtaining benchmarks and machine informations. There are also features that let experimented users change the pre-processing / post-processing behaviour of the device, and create custom pre-processing / post processing steps. There is a simulator device which is currently being developed, but the noise model still needs to be tweaked. The placement and routing phases of the transpiler currently chose wires and couplers by prioritizing best fidelities first, but this does not yield optimal results in terms of errors. The unit-test coverage is still not complete.

Future plans

  • Have 80 % unit test line coverage for each file in the project
  • Integrate circuit paralellization capabilities to run multiple circuits at the same time
  • Add new transpiling steps to the device to improve placement, routing, error mitigation and optimization.
  • Make the MonarQ simulation device available through qml.device

References

Calcul Québec's Wiki provides a lot of information on the plugin, its components and how to use them. You can access it here.

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

pennylane_calculquebec-0.5.1.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

pennylane_calculquebec-0.5.1-py3-none-any.whl (72.5 kB view details)

Uploaded Python 3

File details

Details for the file pennylane_calculquebec-0.5.1.tar.gz.

File metadata

  • Download URL: pennylane_calculquebec-0.5.1.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pennylane_calculquebec-0.5.1.tar.gz
Algorithm Hash digest
SHA256 1ac22996deb89f58feb367ff37d11951af6cb845de8a65cf15dfdfcd26b9bc3e
MD5 b7dc65904b5d0169159f00ddd46bcddd
BLAKE2b-256 2d7c4cfeeded41a6e3632f1300e0115d7465376e080a71304e1aea37fa112281

See more details on using hashes here.

Provenance

The following attestation bundles were made for pennylane_calculquebec-0.5.1.tar.gz:

Publisher: python-publish.yml on calculquebec/pennylane-calculquebec

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

File details

Details for the file pennylane_calculquebec-0.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pennylane_calculquebec-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 93697684bfd44b24f7e6f402573f35e63a38f1a379ff8990a3d6b62f7013be32
MD5 0710bce8063c371e9ddaf1e12b6030e5
BLAKE2b-256 3ba6aceda7b9933779b881ca53b37541aef7a522b550ca52e1082c6d411b4648

See more details on using hashes here.

Provenance

The following attestation bundles were made for pennylane_calculquebec-0.5.1-py3-none-any.whl:

Publisher: python-publish.yml on calculquebec/pennylane-calculquebec

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