Skip to main content

Simulator of QUantum Network Communication (SeQUeNCe) is an open-source tool that allows modeling of quantum networks including photonic network components, control protocols, and applications.

Project description

sequence icon

Quantum Networking in SeQUeNCe: Customizable, Scalable, Easy Debugging

Documentation PyPi Qutip Paper


SeQUeNCe: Simulator of QUantum Network Communication

SeQUeNCe is an open source, discrete-event simulator for quantum networks. As described in our paper, the simulator includes 5 modules on top of a simulation kernel:

  • Hardware
  • Entanglement Management
  • Resource Management
  • Network Management
  • Application

These modules can be edited by users to define additional functionality and test protocol schemes, or may be used as-is to test network parameters and topologies.

Installing

SeQUeNCe requires Python 3.9 or later. You can simply install SeQUeNCe using pip:

pip install sequence

If you wish to make your own edits to the codebase, SeQUeNCe should be installed in development mode (a.k.a. editable install). To do so, clone and install the simulator as follows:

git clone https://github.com/sequence-toolbox/SeQUeNCe.git
cd SeQUeNCe
make install_editable

If you do not have make command (i.e., Windows user), replace make install_editable with pip install --editable . --config-settings editable_mode=strict.

Citation

Please cite us, thank you!

@article{sequence,
author = {Xiaoliang Wu and Alexander Kolar and Joaquin Chung and Dong Jin and Tian Zhong and Rajkumar Kettimuthu and Martin Suchara},
title = {SeQUeNCe: a customizable discrete-event simulator of quantum networks},
journal = {Quantum Science and Technology},
volume = {6},
year = {2021},
month = {sep},
doi = {10.1088/2058-9565/ac22f6},
url = {https://dx.doi.org/10.1088/2058-9565/ac22f6},
publisher = {IOP Publishing},
}

Running the GUI

Once SeQUeNCe has been installed as described above, simply run the gui.py script found in the root of the project directory

python gui.py

Usage Examples

Many examples of SeQUeNCe in action can be found in the example folder. These include both quantum key distribution and entanglement distribution examples.

Starlight Experiments

Code for the experiments performed in our paper can be found in the file starlight_experiments.py. This script uses the starlight.json file (also within the example folder) to specify the network topology.

Jupyter Notebook Examples

The example folder contains several scripts that can be run with jupyter notebook for easy editing and visualization. These files require that the notebook package be installed (Anaconda recommended):

pip install notebook
pip install ipywidgets

To run each file, simply run

jupyter notebook <filename>

These examples include:

  • BB84_eg.ipynb, which uses the BB84 protocol to distribute secure keys between two quantum nodes
  • two_node_eg.ipynb, which performs entanglement generation between two adjacent quantum routers
  • three_node_eg_ep_es.ipynb, which performs entanglement generation, purification, and swapping for a linear network of three quantum routers

Additional Tools

Network Visualization

The example directory contains an example json file starlight.json to specify a network topology, and the utils directory contains the script draw_topo.py to visualize json files. To use this script, the Graphviz library must be installed. Installation information can be found on the Graphviz website.

To view a network, simply run the script and specify the relative location of your json file:

python utils/draw_topo.py example/starlight.json

This script also supports a flag -m to visualize BSM nodes created by default on quantum links between routers.

Libraries Used

This project includes a modified fork of the Quantum++ library version 2.6. Please see the Quantum++ LICENSE file for more information.

Contact

If you have questions, please contact Caitao Zhan at czhan@anl.gov.

Papers that Used and/or Extended SeQUeNCe

Please do a Pull Request to add your paper 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

sequence-0.6.5.tar.gz (126.0 kB view details)

Uploaded Source

Built Distribution

sequence-0.6.5-py3-none-any.whl (153.1 kB view details)

Uploaded Python 3

File details

Details for the file sequence-0.6.5.tar.gz.

File metadata

  • Download URL: sequence-0.6.5.tar.gz
  • Upload date:
  • Size: 126.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.5

File hashes

Hashes for sequence-0.6.5.tar.gz
Algorithm Hash digest
SHA256 9fc412d55ed9e8ef8c838e7368bc9532c9a32dbefb0a8c49eb56c55b92f31100
MD5 1680cf9db85d413184e76d8effeb8b67
BLAKE2b-256 a46e8cbcb2c439111ba856583e55b5442d0a71ffcbd72488ab9984be4609f1e9

See more details on using hashes here.

File details

Details for the file sequence-0.6.5-py3-none-any.whl.

File metadata

  • Download URL: sequence-0.6.5-py3-none-any.whl
  • Upload date:
  • Size: 153.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.5

File hashes

Hashes for sequence-0.6.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6d765e9651f2ddb85e7262d9b3aa3738ee88c9d23a8edd54a902f20d04e3a758
MD5 54a14124d069e05561ea8c7094a14cbc
BLAKE2b-256 90d69588013070516f99326a0a4261f8096c709359ab050de90f3b9cc4287b0e

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