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.
Quantum Networking in SeQUeNCe: Customizable, Scalable, Easy Debugging
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.
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.
We found that sequence demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.
GitHub removed 27 malicious pull requests attempting to inject harmful code across multiple open source repositories, in another round of low-effort attacks.