Code Monkey home page Code Monkey logo

poig / sequence Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sequence-toolbox/sequence

0.0 0.0 0.0 19.83 MB

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.

Home Page: https://sequence-toolbox.github.io/index.html

License: Other

C++ 53.48% Python 26.01% C 0.64% Makefile 15.06% CMake 0.77% Jupyter Notebook 4.04%

sequence's Introduction

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 an installation of Python 3.8 or later. This can be found at the Python Website. Then, simply download the package, navigate to its directory, and install with

$ pip install .

Or, using the included makefile,

$ make install

This will install the sequence library as well as the package dependencies.

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

or

$ python3 gui.py

Citations

Please cite this work as follows:

  • X. Wu, A. Kolar, J. Chung, D. Jin, T. Zhong, R. Kettimuthu and M. Suchara. "SeQUeNCe: A Customizable Discrete-Event Simulator of Quantum Networks." Quantum Science and Technology, 2021. DOI: https://doi.org/10.1088/2058-9565/ac22f6.

  • X. Wu, A. Kolar, J. Chung, D. Jin, T. Zhong, R. Kettimuthu and M. Suchara. "SeQUeNCe: Simulator of QUantum Network Communication." GitHub repository, https://github.com/sequence-toolbox/SeQUeNCe, 2021.

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:

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

sequence's People

Contributors

alex-kolar avatar alexk101 avatar allenyxzang avatar lesterkim avatar martinsuchara avatar mgg39 avatar viachesl avatar xwu64 avatar zigen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.