{"id":18355805,"url":"https://github.com/sfc-aqua/quisp","last_synced_at":"2025-04-06T12:32:11.206Z","repository":{"id":37863737,"uuid":"246997413","full_name":"sfc-aqua/quisp","owner":"sfc-aqua","description":"Open source implementation of quantum internet simulation package","archived":false,"fork":false,"pushed_at":"2024-04-22T07:26:33.000Z","size":2004167,"stargazers_count":78,"open_issues_count":133,"forks_count":35,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-04-22T08:38:32.087Z","etag":null,"topics":["quantum","quantum-computing","quantum-internet","quantum-network-simulator","simulation"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sfc-aqua.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"Authors.md","dei":null}},"created_at":"2020-03-13T05:48:04.000Z","updated_at":"2024-04-23T12:59:47.763Z","dependencies_parsed_at":"2023-10-17T04:54:47.795Z","dependency_job_id":"453be21b-3cff-4baf-8ba9-cab4d3a92083","html_url":"https://github.com/sfc-aqua/quisp","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sfc-aqua%2Fquisp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sfc-aqua%2Fquisp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sfc-aqua%2Fquisp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sfc-aqua%2Fquisp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sfc-aqua","download_url":"https://codeload.github.com/sfc-aqua/quisp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247484414,"owners_count":20946385,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["quantum","quantum-computing","quantum-internet","quantum-network-simulator","simulation"],"created_at":"2024-11-05T22:08:01.515Z","updated_at":"2025-04-06T12:32:06.184Z","avatar_url":"https://github.com/sfc-aqua.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QUISP\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/83c96c45f2684211a8cef800b1d07f81)](https://www.codacy.com/gh/sfc-aqua/quisp/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=sfc-aqua/quisp\u0026amp;utm_campaign=Badge_Grade)\n[![Coverage Status](https://coveralls.io/repos/github/sfc-aqua/quisp/badge.svg?branch=master)](https://coveralls.io/github/sfc-aqua/quisp?branch=master)\n![github workflow](https://github.com/sfc-aqua/quisp/actions/workflows/main.yml/badge.svg)\n\u003ca href=\"https://aqua-quisp.slack.com/\" rel=\"nofollow\"\u003e\u003cimg src=\"https://img.shields.io/badge/join-us%20on%20slack-gray.svg?colorB=red\u0026amp;logo=slack\u0026amp;longCache=true\" alt=\"Slack Widget\"\u003e\u003c/a\u003e\nThe Quantum Internet Simulation Package (QuISP) is an event-driven\nsimulation of quantum repeater networks, which will be the foundation\nof the coming Quantum Internet.  QuISP's goal is to simulate a full\nQuantum Internet consisting of up to 100 networks of up to 100 nodes\neach.  Its focus is on protocol design and emergent behavior of\ncomplex, heterogeneous networks at large scale, while keeping the\nphysical layer as realistic as possible.\n\nQuISP is a product of the Advancing Quantum Architecture (AQUA)\nresearch group headed by Prof. Rodney Van Meter, at Keio University's\nShonan Fujisawa Campus, Fujisawa, Japan.  See\n[http://aqua.sfc.wide.ad.jp](http://aqua.sfc.wide.ad.jp) and the list\nof [Authors](Authors.md).\n\n## Research questions\n\nA simulator is one or more of three things: a time machine, an X-ray\nmachine, or a telescope.  It can be used to look into the future or\nthe past, look at the internals of an object that are otherwise\ninaccessible, or look at objects of a far vaster scale than can be\nbuilt in a laboratory.  QuISP is, perhaps, most importantly a\ntelescope: we are looking at large-scale quantum networks and\nultimately the Quantum Internet, but we do also pause to look at the\nmicro (local) behavior of protocols, as well.\n\nResearch questions we hope to answer:\n\n* Emergent behavior\n    - Classical networks exhibit _congestion collapse_;\n      are quantum networks subject to the same thing?\n    - Will the dynamics of large networks prevent us from making\n      end-to-end connections under realistic scenarios, even when a\n      naive model suggests it should be possible?\n    - Are there other unexpected behaviors in large-scale networks?\n* Protocol design\n    - Testing of detailed protocol designs to validate correct\n      operation.\n    - Are there interactions between the classical and quantum\n      portions of the network?\n* Connection architecture and performance prediction\n    - All three proposed network generations exhibit complex behavior\n      that makes analytic prediction of performance difficult with\n      realistic parameters; simulation, of course, will require the\n      best effort we can make at validation, as well.\n* Dynamic behavior\n    - Are networks stable as conditions change?\n    - When a topology change occurs, how do the protocols respond?\n    - Network traffic will be dynamic; can our multiplexing and\n      resource management protocols adapt so that new connections\n      are given service in a reasonable time, and ongoing connections\n      continue to receive expected levels?\n\n## Simulation goals\n\nWe have a number of long-term goals for development of the simulator:\n\n* Complex network topologies, including the notion of network\n  boundaries and heterogeneity at the physical and logical levels\n* support 1G, 2G and 3G quantum networks, utilizing either purify-and-swap (1G)\n  or quantum error corrected (QEC) (2G and 3G) protocols for managing\n  errors\n* Distinct link architectures: memory-to-memory (MM), midpoint\n  interference (MIM), and midpoint source (MSM), sneakernet, satellite\n* Internetworking protocols for connecting different types of networks\n* Various applications running in complex traffic patterns\n\nBecause these protocols can result in hundreds of qubits in a single\nentangled state, and the entire system may consist of up to a million\nqubits, simulation at the physical Hamiltonian level or even just\nabove that at the unitary (gate, e.g. CNOT) level is infeasible.  We\ncannot calculate and store full density matrices for such states.\nInstead, like simulators for large-scale error correction, QuISP\noperates primarily in the _error basis_, in which we maintain a\ndescription of errors the states have incurred rather than the full\nstate.  However, unlike most QEC simulators, QuISP supports non-Pauli\nerrors, in a limited fashion.\n\nQuISP is almost endlessly configurable; for example, it is possible to\nset not only different lengths for different links in the network, but\nalso different gate error rates and memory lifetimes on individual\nqubits.  Non-Pauli errors that are at least partially supported in the\ncurrent release include qubit loss, relaxation to ground state,\nexcitation to excited state, and complete mixing.\n\nIf you are unfamiliar with the research literature or the terminology\nabove, see \"[Learning more](#learning-more)\", below.\n\nIn addition, we aim to make simulations run on QuISP _completely\nreproducible_, to the extent humanly possible.  It will be possible\nfor others to verify work done using QuISP if they have the name of\nthe QuISP release, version numbers for supporting software, the `.ini`\nfile, any changed `.ned` files, and the seed for the pseudo-random\nnumber generator.\n\n## Current status\n\nMost of the _infrastructure_ is up and running, though the sets\nof actual experiments (interesting simulations) you can do are fairly\nlimited still.\n\nWorking infrastructure:\n\n* All of the basic OMNeT++ functionality, such as events,\n  visualization, logging, analysis, etc.\n* Complex network topologies, defining per link parameters including\n  length, channel error rates, numbers of qubit memories, gate error\n  rates, etc.  (You will see the included demonstration networks in\n  the documentation linked below.)\n* A complete internal model of the software architecture for a\n  repeater, including a connection manager, the RuleSet execution\n  engine, real-time tracking of quantum states, etc.\n\nBesides the obvious joys of the endless network configurability, here\nare the key quantum protocols that are implemented:\n\n* basics of RuleSet creation \u0026 distribution\n* various *purification protocols*:  Single round\n  of X purification, alternating X/Z purification, etc.  Default to one round of purification per entanglement swapping round.  Extending\n  these to test your own custom purification protocol is pretty\n  straightforward.\n* *tomography*: when the simulation boots, it assumes that the software\n  at each end of each link knows _nothing_ about the link, so it\n  begins by performing tomography on the links.  (This is actually\n  problematic, because it turns out to take a long time for tomography\n  to converge, which means a lot of boot-up time in the simulation\n  before other interesting things start to happen.  We are\n  working on a way to pre-calculate this, so that you can choose to\n  either include tomography or not.)\n* *entanglement swapping*.\n\nCurrent generic networking-level status:\n\n* fully blocking circuit switching\n* random pairwise traffic pattern (flat distribution)\n\nIn-progress work:\n\n* entanglement swapping is a relatively new feature, and taking data\n  using it is still not fully implemented\n* although the connection setup protocol works, the teardown on\n  completion of a connection still needs a little love\n* the set of demo networks is still being polished\n\nUpcoming features in near-term releases:\n\n* more general resource allocation \u0026 multiplexing\n* more general mechanism for establishing traffic patterns\n* MSM links\n* graph states at the link level\n* multi-party states at the application level\n\nMid-term to long-term release features:\n\n* 2G networks, esp. Jiang style\n* full quantum internetworking\n\n## Installation requirements\n\nThe full installation process is described in\n[Wiki](https://github.com/sfc-aqua/quisp/wiki).  The main software tools you will\nneed are:\n\n* QUISP requires [OMNeT++](https://omnetpp.org/) and\n* an external C++ library, [Eigen](http://eigen.tuxfamily.org/), to\n  work.\n* To contribute to QuISP development, you will also need to be\n  familiar with at least the basics of [git](https://git-scm.com/).\n* We recommend the use of [Doxygen](http://www.doxygen.nl/) for source\n  code comments, but the Doxygen tools are not required unless you\n  want to build the source code documentation.\n\nDepending on your local setup and how you intend to use QuISP, you may\nalso need various tools (a C++ compiler, make, an X Windows server,\nDocker, ffmpeg for making videos, etc.), documented in the installation notes.\n\n## Trying it out on the web\n\nIf you just want to take a peek at the basic sample simulation set, we encourage you to try them out on the web ([here](https://aqua.sfc.wide.ad.jp/quisp-online/master/)) which is built using the [WebAssembly](https://webassembly.org). Currently the Wasm version only supports running the pre-configured simulations and users cannot upload custom topology, we are still working on that. Also due to the heavy load of the OMNeT++ and the QuISP itself the performance on the web version is a lot slower than running it locally.\n\n## Building and running locally\n\nFirst see [Wiki](https://github.com/sfc-aqua/quisp/wiki), then follow the instructions below.\n\nThere are two main ways of working with QUISP. You can either use the\nEclipse-like graphical interface of OmNET++, for which you will find\ninstructions in [Building QuISP with OMNeT IDE\n](https://github.com/sfc-aqua/quisp/wiki/Building-QuISP-with-OMNeT-IDE),\nor you can use the `Makefile` and GNU make, by looking at instructions\nin [Building QuISP with GNU Make\n(wiki)](https://github.com/sfc-aqua/quisp/wiki/Building-QuISP-with-GNU-Make). Some operations are\nimplemented in the Makefile and not explained for the graphical user\ninterface.\n\n## Moving into useful work\n\nOnce you have gotten this far, you should be able to [run some of the\nmost basic demos](https://github.com/sfc-aqua/quisp/wiki/Running-Basic-QuISP-Demos).  Next, you'll want to learn\nhow to create your own test networks, and how to extend the source\ncode for your own uses.\n\nWhen you are ready to start contributing, you can start reading the\ncode, as [we have done](https://github.com/sfc-aqua/quisp/wiki/Code-Spelunking).\n\nYou will also want to look at some of the [software design documents](doc/software-design.md).\n\n## Development tools\n\nA few tools (mainly scripts) can be used to make development a bit easier.\nLook around in the `bin` folder of this project.\n\n## Is QuISP right for me?\n\nFundamentally, the point of QuISP is that *networks are much more than\npoint-to-point connections*.\n\nIf you want to know about the behavior of systems and networks, to\nstudy behavior of links that are too complex for simple analytic\nequations (esp. those with multiple qubits per link) or to contribute\nto the design of network protocols, QuISP is the simulator for you.\nIf you're trying to adjust detector window timing v. entanglement\nfidelity, or figure out what Q factor your cavity needs to be, or\nunderstand dispersion in a fiber, it might not be.\n\n## Learning more\n\nSee the [references](doc/References.md).\n\n## Contributing\n\nFirst, join the [QuISP Slack team](https://join.slack.com/t/aqua-quisp/shared_invite/zt-rwyggp6t-_4TaXE0g7PlUnRNSPU~g2w).\n\nPlease also refer to the [code of conduct](CODE_OF_CONDUCT.md) and [Contributing guide](.github/CONTRIBUTING.md).\n\n## License\n\nQuISP was initially released on April 5, 2020, and is\n[licensed](LICENSE) under the [3-Clause BSD License](https://opensource.org/licenses/BSD-3-Clause).\n\nQuISP builds on OMNeT++.  OMNeT++ itself is a [custom\nlicense](https://omnetpp.org/intro/license), open source and free for\nacademic use, but a license fee required for commercial organizations.\nQuISP also requires the linear algebra library Eigen, where license is\nMPL2, and so [probably not an\nissue](http://eigen.tuxfamily.org/index.php?title=Main_Page#License).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsfc-aqua%2Fquisp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsfc-aqua%2Fquisp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsfc-aqua%2Fquisp/lists"}