Skip to main content

Quantum Protocol Zoo Atomic Functions Library

Project description

Overview

This library provides atomic functions implementations and makes them available to several quantum simulation backends.

Status

The library is under active development but in a very ealy stage.

Design principles

There exist many different quantum computing backends. The idea with this library was to abstract them away so that code running written using the library could be run on other backends, provided that the rest of the code not composed of functions defined by the library is not backend specific.

To do this, we instantiate the library by giving it a mapping and a node. The mapping is the translation of the backend specific way of calling elementary quantum operations, while the node is the actual quantum registers that are available to perform the computation. The node usually contains also some additional functions such as sending qubits to other nodes, receiving and sending entanglement etc. The differences have been abstracted away with the mappings for simulaqron and qunetsim . Other mappings have been considered and used but not made available most notably for Netsquid.

Feel free to add functions, or code new mappings by forking and pull-requesting insertion of your additions. Please keep us updated with your work so that we inform you of changes that could be breaking things.

Usage

Look at the examples/examples.py file. The library is instantiated for each node (as if the nodes were independent computers, each loading its version of the library).

Other sources of inspirations are the tests defined in the tests directory

New atomic functions will be added following the list established by extracting atomic functions from the Quantum Protocol Zoo.

Testing

Tests can be run using python setup.py test at the root of the repository.

The repository includes a tests directory that contains the file test_qpz_atomics.py which gathers all the tests implemented. It is using the pytest package to launch the tests and gather statistics, while being based on hypothesis for generating examples.

For the tests to run, you need to have a quatum network simulator available and running. We have chosen to implement the tests using simulaqron as a backend, hence requiring a running simulaqron instance. This can be done typing the following:

simulaqron set max-qubits 100
simulaqron start

Other backends could be used provided the tests are rewritten and the required backend is available and properly mapped in the library.

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

qpz_atomics-0.1.1.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

qpz_atomics-0.1.1-py2.py3-none-any.whl (11.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file qpz_atomics-0.1.1.tar.gz.

File metadata

  • Download URL: qpz_atomics-0.1.1.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.2

File hashes

Hashes for qpz_atomics-0.1.1.tar.gz
Algorithm Hash digest
SHA256 337fa58bf1a7272a9379097306e84a4e11eda3a4bd61542bb029a78a2655b8ab
MD5 3f7fdc77a3dafb8dce32c3ce6316f405
BLAKE2b-256 658ea8353b24f2db23f5b34807b79360faee687c0c0f6ae6041204c363532d3d

See more details on using hashes here.

File details

Details for the file qpz_atomics-0.1.1-py2.py3-none-any.whl.

File metadata

  • Download URL: qpz_atomics-0.1.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.2

File hashes

Hashes for qpz_atomics-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a4294ff2eeb0e912b39dacdafb837d0511814f3491e0d7d024ebd19863b7c648
MD5 1537857a68e53b281565945f0ee883b9
BLAKE2b-256 5048b63990db3115ea6df29d4cbd2a935f17dc8c51d6ebbdb991a0e4e6154592

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