Skip to content

sequence-toolbox/SeQUeNCe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,018 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sequence icon

Quantum Networking in SeQUeNCe: Customizable, Scalable, Easy Debugging

PyPi pyversions Documentation Qutip Paper PyPI Downloads


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.

Installation

For Users

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

pip install sequence

Development Environment Setup

If you wish to modify the source code, use an editable installation with uv:

Install uv (Astral Instructions)

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Clone the repository and create the virtual environment

Here we clone the repository and let uv configure the development environment with the target python version.

git clone https://github.com/sequence-toolbox/SeQUeNCe.git
cd sequence
uv sync

Activate the virtual environment

Now that the virtual environment is created with all dependencies installed, you can activate it using the following command.

source .venv/bin/activate # macOS/Linux
source .venv\Scripts\activate # Windows

Running the test suite

SeQUeNCe includes a comprehensive test suite, this can be ran with the following command

uv run pytest tests

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, 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. The example includes jupyter notebook demos, and code used in published papers.

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, 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.

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!

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors