Skip to main content

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qoala-2.0.0.tar.gz (273.9 kB view details)

Uploaded Source

Built Distribution

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

qoala-2.0.0-py3-none-any.whl (153.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: qoala-2.0.0.tar.gz
  • Upload date:
  • Size: 273.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for qoala-2.0.0.tar.gz
Algorithm Hash digest
SHA256 7599873fffd9ee3358554713b91cb8d4b97985d665efd2ccc341d2a93e7d8a2c
MD5 f9c03e57fba1b8a86e8ad8706ffc2546
BLAKE2b-256 03fb99aa237233f9bca2d1d3049eb7eae77fdf07d9a37725d03604fd0c23ac5d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: qoala-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 153.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for qoala-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f346323ee0f53820ad74373227bc495989933835808d087e3da07ae4bb147dcf
MD5 7456025ba1e11c9d7901706487c53fd9
BLAKE2b-256 f707e3758a312bc145d761cef3f028cb0db22d833c25e946f7b1130435fb7225

See more details on using hashes here.

Release history Release notifications | RSS feed

2.1.0

2 files

This release

2.0.0 This release

2 files

1.0.0

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page