Skip to main content

An easy-to-use but flexible distributed quantum computing simulator.

Project description

dqc_simulator

An easy-to-use distributed quantum computing simulator

With many simulators, specifying a quantum algorithm is as easy as specifying a quantum circuit. Why can't things be as simple for distributed quantum computers (DQCs)? With dqc_simulator they can! A python package built on top of the more general quantum network simulation library NetSquid, dqc_simulator allows users to simply simulate quantum circuits on near-arbitrary, user-specifiable DQC hardware. The package aims to retain the flexibility and power of NetSquid while automatically handling some of the messier details of applying NetSquid to the DQC setting.

Key features:

  1. Easy-to-use interface for specifying distributed quantum circuits.
  2. Automatic partitioning of monolithic (single-processor) quantum circuits between quantum processing units (QPUs). Arbitrary algorithms for doing this can be specified by the user if desired, using the DQC circuit interface. Circuits can be specified as a list of tuples or as a .qasm file.
  3. Automatic management of remote gates and communication qubits.
  4. Automatic compilation using pre-made compilers. The user can also easily specify their own.

Requirements

  • python 3.9
  • NetSquid 1.1.7. See NetSquid.
  • NetSquid-PhysLayer 4.3.0. See link.
  • pydynaa>=1.0.2

Installation instructions for users

First, create a NetSquid account using the instructions on NetSquid. Much of the package's functionality relies on NetSquid and so this is important to make full use of the package.

To make your NetSquid account credentials available during package installation, use the commands

export UV_INDEX_NETSQUID_USERNAME=<USERNAME>
export UV_INDEX_NETSQUID_PASSWORD=<PASSWORD>

where <USERNAME> and <PASSWORD> are the username and password for your NetSquid account. You can also store your NetSquid authentication details using any other method of choice compatible with the uv package manager.

Once your NetSquid authentication credentials are made available, install dqc_simulator using the command

pip install dqc_simulator

Installation instructions for developers

To install the package from source use the command

git clone https://github.com/km-campbell/dqc_simulator.git

Documentation

The documentation is available via readthedocs here.

Alternatively, the project documentation can be built locally by cloning the repository, as detailed above, and then using the commands

cd docs
make html

A version of the documentation will then be available in the docs/build directory. Within that directory open index.html to access the documentation.

Acknowledgements

I acknowledge the use of modified code from nuqasm2 in the qasm2ast module subject to the Apache 2.0 license included above under the name LICENSE4qasm2ast_base_code. It is explicitly stated in any modules where modified nuqasm2 code is used.

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

dqc_simulator-0.2.1.tar.gz (86.7 kB view details)

Uploaded Source

Built Distribution

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

dqc_simulator-0.2.1-py3-none-any.whl (98.3 kB view details)

Uploaded Python 3

File details

Details for the file dqc_simulator-0.2.1.tar.gz.

File metadata

  • Download URL: dqc_simulator-0.2.1.tar.gz
  • Upload date:
  • Size: 86.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"20.04","id":"focal","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dqc_simulator-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f95ff68364db35b67b4d93b25bc2fc1a0862b47ae86e435691b172c179d1fbb0
MD5 1695ae9a1081fb1fb860721bc0480649
BLAKE2b-256 cd9a1a55d7b952d2526e42855d4ad58ea29c68ffb9bcfa02018d15f91560aed5

See more details on using hashes here.

File details

Details for the file dqc_simulator-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: dqc_simulator-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 98.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"20.04","id":"focal","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for dqc_simulator-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dbe161c269c4dc885cef5d7aa2f591106f7b9bca809828c05d65179376c6691c
MD5 5d0bd7b59f9d1a2c42dbf4b5d8c86c3b
BLAKE2b-256 a512d4272d2f08241b2dd0fe32c1e756b68576db4f7ef0f1e77f6d07dfcf0ace

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