ProjectQ

ProjectQ Framework

ProjectQ is an open-source software framework for quantum computing implemented in Python. It allows users to implement their quantum programs in Python using a powerful and intuitive syntax. ProjectQ can then translate these programs to any type of back-end, be it a simulator run on a classical computer or an actual quantum chip including the IBM Quantum Experience platform.   Other hardware platforms will be supported in the future.

The main features of ProjectQ are

  • a high level language to write quantum programs
  • a modular and customizable compiler
  • various hardware and software back-ends
  • a library (FermiLib) to solve fermionic problems on a quantum computer

Compiler

The compilation framework consists of a main compiler engine, which executes a user-defined sequence of compilation steps by sending the circuit through a chain of so-called compiler engines. Each compiler engine manipulates the circuit to, e.g., reduce the number of gates or quantum bits required to run the quantum program. Engines further down the stack become more back-end-specific and take care of the mapping of the logical circuit to the layout of the back-end.

ProjectQ

Back-end

After the circuit has passed through all compiler engines, it gets sent to the back-end. The back-end may be actual quantum hardware, a simulator run on a classical computer, a circuit drawing engine, etc.

Having all of these possibilities in one unified framework allows users to test their implementations using a simulator before running them on actual hardware or getting resource estimates for larger instances.

The following back-ends are available in the first version of ProjectQ:

Simulator –  Simulate your quantum programs locally with ProjectQ’s high-performance simulator.

Emulator– Check the correctness of your quantum algorithm by running it on our emulator which employs classical shortcuts wherever it can

IBM Quantum Experience – Run your quantum program directly on IBM’s 5-qubit quantum computer.

Resource Counter – Determine gate counts and the maximal width of your circuit.

Drawing Engine – Draw your quantum program as a customizable LaTeX circuit for publication.

Command Printer – Check the stream of commands which gets sent to the back-end or save a low-level representation of your quantum program.

projectq

CirqProjectQ

CirqProject Q is a port between ProjectQ and Cirq that provides two main functions.  First, it is a ProjectQ backend that converts a ProjectQ algorithm to a cirq.Circuit.  And second, it can decompose ProjectQ common gates to native Xmon gates that can be used to simulate a Google quantum computer with ProjectQ.

ProjectQ performance

ProjectQ has a high-performance simulator which allows simulating up to about 30 qubits on a regular laptop.  Using the emulation features of our simulator (fast classical shortcuts), one can easily emulate Shor’s algorithm for problem sizes for which a quantum computer would require above 50 qubits, see our example codes.

The advanced features of the simulator are also particularly useful to investigate algorithms for the simulation of quantum systems. For example, the simulator can evolve a quantum system in time (without Trotter errors) and it gives direct access to expectation values of Hamiltonians leading to extremely fast simulations of VQE type algorithms.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *