Package: qcompute-qnet
Copyright (c) 2022 Institute for Quantum Computing, Baidu Inc. All Rights Reserved.About QNETQNET is a Quantum NETwork toolkit developed by theInstitute for Quantum ComputingatBaidu Research. It aims to accelerate the design of quantum network protocols, the testing of quantum network architectures and the deployment of quantum internet standards. QNET provides a fully-featured discrete-event simulation framework that allows for both accurate and efficient tracking of quantum network status. Its modular design provides a testbed for different quantum network architectures.FeaturesQNET is under active development and the latest version has the following key features:discrete-event simulation framework that allows for both accurate and efficient system tracking;quantum hardware interface that accelerates protocols testing and deployment;physical devices modeling that supports the simulation of realistic experiments;frequently-used templates that speed up the workflow of research and development;modular design that is compatible with different quantum network architectures.InstallationCreate Python environmentWe recommend using Anaconda as the development environment management tool for Python3. Anaconda supports multiple mainstream operating systems (Windows, macOS, and Linux). It provides Scipy, Numpy, Matplotlib, and many other scientific computing and drawing packages. Conda, a virtual environment manager, can be used to install and update the latest Python packages. Here we give simple instructions on how to use conda to create and manage virtual environments.First, open the command line (Terminal) interface: Windows users can enterAnaconda Prompt; MacOS users can use the key combinationcommand + spaceand then enterTerminal.After opening the Terminal window, entercondacreate--nameqnet_envpython=3.8to create a Python 3.8 environment named qnet_env. With the following command, we can activate the virtual environment created,condaactivateqnet_envFor more detailed instructions on conda, please refer to theOfficial Tutorial.Install QNETQNET is compatible with 64-bit Python 3.8+, on Linux, MacOS (10.14 or later) and Windows. We recommend installing it withpip. Activate the conda environment and enterpipinstallqcompute-qnetThis will install the QNET binaries as well as the QNET package. For those using an older version of QNET, keep up to date by installing with the--upgradeflag for additional features and bug fixes.Run examplesNow, you can try to write a simple program to check whether QNET has been successfully installed. For example,fromqcompute_qnet.core.desimportDESEnvfromqcompute_qnet.topologyimportNetwork,Node,Link# Create a simulation environmentenv=DESEnv("Simulation Environment",default=True)# Create a networknetwork=Network("First Network")# Create a node named Alicealice=Node("Alice")# Create another node named Bobbob=Node("Bob")# Create a link between Alice and Boblink=Link("Alice_Bob",ends=(alice,bob))# Build up the network from nodes and linksnetwork.install([alice,bob,link])# Initialize the simulation environmentenv.init()# Run the network simulationenv.run()Note that more examples are provided in theAPI documentation. You can get started from there.TutorialsWe provide severaltutorialsto help users get started with QNET. These include:Introduction to discrete-event simulationTour guide to quantum network simulationMicius quantum satellite experimentQuantum network architecture simulationQuantum network architecture with resource managementQuantum network protocols on quantum hardware devicesQuantum teleportationQuantum entanglement swappingCHSH gameMagic square gameMeasurement-based quantum computationDynamic quantum circuitMore tutorials and demonstrations will be included in the future release.API documentationFor those who are looking for explanation on the python classes and functions provided in QNET, please refer to ourAPI documentation.FeedbacksUsers are encouraged to contact us via emailquantum@baidu.comwith general questions, unfixed bugs, and potential improvements. We hope to make QNET better together with the community!Research based on QNETWe also encourage researchers and developers to use QNET to explore quantum networks. If your work uses QNET, feel free to send us a notice viaquantum@baidu.comand cite us with the following BibTeX:@misc{QNET,title={{Quantum NETwork in Baidu Quantum Platform}},year={2022},url={https://quantum-hub.baidu.com/qnet/}}Copyright and LicenseQNET usesApache-2.0 license.