Skip to main content

Simulator for Qoala programs

Project description

Qoala Simulator

A comprehensive and configurable software library for simulating quantum network applications and nodes. It allows users to mimic both the software and hardware of real quantum network nodes, execute quantum programs, and gather statistics. This flexibility enables users to test and optimize various hardware parameters, investigate their effects on application performance and overall network performance, and even prototype new quantum network node architectures.

Qoala

Qoala is an execution environment specification which describes:

  • the compiled format of programs that run on processing nodes (or end nodes) in a quantum network
  • the software/hardware architecture of processing nodes and how they execute programs

This simulator provides tools for simulating a network in which nodes have implemented the Qoala specification. Processing nodes and their internal components and behavior are presented as configurable classes, which can be connected and used to mimick both the software and hardware of real quantum network nodes. This mimicked software and hardware can then execute quantum programs and statistics can be obtained.

With these tools, simulations may be run in order to (among other things):

  • run and obtain results of quantum network applications
  • investigate the effect of changing hardware parameters on the performance of specific applications
  • investigate the effect of changing hardware parameters on the overall performance of the quantum network
  • test or create new prototypes of quantum network node architectures

Installation

Prerequisites

The Qoala Simulator uses the NetSquid Python package. To install and use NetSquid, you need to first create an account for it. The username and password for this account are also needed to install qoala-sim.

From PyPI

The Qoala Simulator is available as a package on PyPI and can be installed with

pip install qoala --extra-index-url=https://pypi.netsquid.org

This will prompt for your NetSquid account name and password.

From source

Clone this repository and make an editable install with

pip install -e . --extra-index-url=https://pypi.netsquid.org

which will prompts for your NetSquid account name and password.

Additionally, you may want to install the extra dev packages, so you can run the tests and linter:

pip install -e .[dev] --extra-index-url=https://pypi.netsquid.org

You can also use the make install and make install-dev Makefile commands. These commands require you to have the NETSQUIDPYPI_USER and NETSQUIDPYPI_PWD environment variables set to your NetSquid username and password respectively.

To verify the installation and run all tests and examples:

make verify

If this command completes without any errors, and instead ends with a message saying Everything works!, then everything is set up correctly.

Usage

The Qoala Simulator provides building blocks for many (sub)components of quantum network nodes, which may be used in any way desired. For example, one may simply create a single processing node object and only run local quantum programs on it. Or, one might create multiple processing nodes and connect them in a certain way, and also provides many quantum network applications as input for these, in order to test different scheduling techniques.

A typical way this package is used is in the form of a Python script that contains code for setting up a simulation and then running it. Such a script hence imports from the qoala package the objects and functions that are required for whatever simulation is desired.

See the examples directory for examples.

Additionally, one may look into the tests directory for code that uses only subcomponents of quantum networks. The tests/integration directory does include more comprehensive simulations, e.g. simulating execution of full quantum network applications.

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

qoala-1.0.0.tar.gz (228.0 kB view details)

Uploaded Source

Built Distribution

qoala-1.0.0-py3-none-any.whl (131.6 kB view details)

Uploaded Python 3

File details

Details for the file qoala-1.0.0.tar.gz.

File metadata

  • Download URL: qoala-1.0.0.tar.gz
  • Upload date:
  • Size: 228.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for qoala-1.0.0.tar.gz
Algorithm Hash digest
SHA256 959b721b472011d692f84e12e800e2b675f533f5e3e3496024c57d6035fd0221
MD5 cc49b3ca64bdd3981fc53b7e331ea5f8
BLAKE2b-256 a705c72a8dfa636a26d75e8b46d813001173226d12d358aa413053e93c420b0c

See more details on using hashes here.

File details

Details for the file qoala-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: qoala-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 131.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for qoala-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 841a533cc322a1be0d2a0654d2dd4eee66e00027fb618506bcaca232368021c8
MD5 f8ade7b3e019d60b4651832f2cab3a4b
BLAKE2b-256 2a043c7006732ebacb25c453d79e36657f298116235c23f1c824eb546aad5a49

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