Under the hood

How SimulaQron works

 

SimulaQron simulated quantum internet hardware to allow you to program your own quantum internet applications. Programming quantum internet applications asks you to combine several skills: First, you would like to be able to program a local quantum computer. Second, however you must realize classical communication between network nodes which preferrably integrates seamlessly with the quantum instructions on distant quantum computers. This bring many software engineering challenges that go beyond “simply” programming a local quantum computer, and good frameworks to realize such software, nice libraries etc are presently not known. We built SimulaQron to enable you to explore and develop such concepts!

Details of SimulaQron’s inner workings can be found in this paper , see Getting Started for links to the documentation.

SimulaQron provides a distributed simulation that can be based on any existing quantum simulator capable of being integrated into Python. SimulaQrons backend consist of a server program – one for each node in the simulated quantum internet – that may run on one of different classical computers. These servers establish connections between them to realize a distributed simulation of quantum entanglement.

Applications can be programmed using SimulaQron in several ways:

  • Programming via the Python library (Pythonlib). This is the easiest way of programming using SimulaQron. The library will automatically translate commands like the creation of qubits, executing quantum gates, measuring them, and also requests to generate entanglement with other nodes in the network to the SimulaQron backend via the CQC (Classical Quantum Combiner) interface in a transparant fashion. A rudimentary library for C is also provided.
  • Programming via the CQC interface. CQC is an instruction format to talk to the simulated quantum hardware. We aim to make a (further developed) version of CQC available on QuTech’s quantum internet demonstrator in 2020 connecting 4 quantum processors located in different Dutch cities. This way of programming is not recommended unless you would like to develop your own programming library in a language other than Python that makes use of SimulaQron.
  • Programming via Python’s Twisted framework (aka Native Mode). SimulaQron internally uses Twisted Perspective Broker. This way of programming is not recommend, unless you would like to develop interfaces other than CQC.

 

Get the code. Report bugs. Contribute!

The full code can be freely accessed on GitHub. Here you can also report bugs, make feature requests or even contribute with your own code.