ProjectQ: An Open Source Software Framework for Quantum Computing

  title={ProjectQ: An Open Source Software Framework for Quantum Computing},
  author={Damian S. Steiger and Thomas H{\"a}ner and Matthias Troyer},
We introduce ProjectQ, an open source software effort for quantum computing. The first release features a compiler framework capable of targeting various types of hardware, a high-performance simulator with emulation capabilities, and compiler plug-ins for circuit drawing and resource estimation. We introduce our Python-embedded domain-specific language, present the features, and provide example implementations for quantum algorithms. The framework allows testing of quantum algorithms through… 

Figures from this paper

Overview and Comparison of Gate Level Quantum Software Platforms

A current picture of the rapidly evolving quantum computing landscape is provided by comparing four software platforms - Forest, Qiskit, ProjectQ, and the Quantum Developer Kit (Q#) - that enable researchers to use real and simulated quantum devices.

Qibo: a framework for quantum simulation with hardware acceleration

This work introduces a new quantum simulation framework that enables developers to delegate all complicated aspects of hardware or platform implementation to the library so they can focus on the problem and quantum algorithms at hand.

Open source software in quantum computing

A wide range of open source software for quantum computing is reviewed, covering all stages of the quantum toolchain from quantum hardware interfaces through quantum compilers to implementations of quantum algorithms, as well as all quantum computing paradigms, including quantum annealing, and discrete and continuous-variable gate-model quantum computing.

OpenQL : A Portable Quantum Programming Framework for Quantum Accelerators

This article presents the programming interface of OpenQL, the different layers of the compiler and how it can provide portability over different qubit technologies, and shows that OpenQL allows the execution of the same high-level algorithm on two different qu Bit technologies, namely superconducting qubits and Si-Spin qubits.

Extending Python for Quantum-classical Computing via Quantum Just-in-time Compilation

This work builds off the QCOR C++ language extension and compiler infrastructure to enable a single-source, quantum hardware-agnostic approach to quantum-classical computing that retains the performance required for tightly coupled CPU-QPU compute models.

Extending C++ for Heterogeneous Quantum-Classical Computing

This work provides a first-of-its-kind C++ compiler enabling high-level quantum kernel (function) expression in a quantum-language agnostic manner, as well as a hardware-agnostic, retargetable compiler workflow targeting a number of physical and virtual quantum computing backends.

Classical and Quantum Data Interaction in Programming Languages: A Runtime Architecture

The proposed runtime architecture enables dynamic interaction between classical and quantum data following the restriction that a quantum computer is available in the cloud as a batch computer, with no interaction with the classical computer during its execution.

Quantum simulation with just-in-time compilation

Quantum technologies are moving towards the development of novel hardware devices based on quantum bits (qubits). In parallel to the development of quantum devices, efficient simulation tools are

Quantum Netlist Compiler (QNC)

This work introduces the Quantum Netlist Compiler (QNC) that converts arbitrary unitary operators or desired initial states of quantum algorithms to OpenQASM-2.0 circuits enabling them to run on actual quantum hardware.

: A Cross-Platform Programming Framework for Quantum-Accelerated Scientific Computing

This paper introduces a new cross-platform programming framework for developing quantum-accelerated scientific computing applications and executing them on most of today’s cloud-based quantum



A software methodology for compiling quantum programs

This work presents a software architecture for compiling quantum programs from a high-level language program to hardware-specific instructions, and describes the necessary layers of abstraction and their differences and similarities to classical layers of a computer-aided design flow.

LIQUi|>: A Software Design Architecture and Domain-Specific Language for Quantum Computing

Languages, compilers, and computer-aided design tools will be essential for scalable quantum computing, which promises an exponential leap in our ability to execute complex tasks. LIQUi|> is a

High Performance Emulation of Quantum Circuits

The concept of a quantum computer emulator is introduced as a component of a software framework for quantum computing, enabling a significant performance advantage over simulators by emulating quantum algorithms at a high level rather than simulating individual gate operations.

Quipper: a scalable quantum programming language

Quipper, a scalable, expressive, functional, higher-order quantum programming language, which is geared towards a model of computation that uses a classical computer to control a quantum device, but is not dependent on any particular model of quantum hardware.

0.5 Petabyte Simulation of a 45-Qubit Quantum Circuit

This work applies a scheduling algorithm to quantum supremacy circuits in order to reduce the required communication and simulate a 45-qubit circuit on the Cori II supercomputer using 8, 192 nodes and 0.5 petabytes of memory, which constitutes the largest quantum circuit simulation to this date.

Exponentially more precise quantum simulation of fermions in second quantization

We introduce novel algorithms for the quantum simulation of fermionic systems which are dramatically more efficient than those based on the Lie–Trotter–Suzuki decomposition. We present the first

Factoring using $2n+2$ qubits with Toffoli based modular multiplication

An implementation of Shor's quantum algorithm to factor n-bit integers using only 2n+2 qubits using a purely Toffoli based modular multiplication circuit that evades most of the cost overheads originating from rotation synthesis and enables testing and localization of some faults in both, the logical level circuit and an actual quantum hardware implementation.

Elementary gates for quantum computation.

U(2) gates are derived, which derive upper and lower bounds on the exact number of elementary gates required to build up a variety of two- and three-bit quantum gates, the asymptotic number required for n-bit Deutsch-Toffoli gates, and make some observations about the number of unitary operations on arbitrarily many bits.

A fast quantum mechanical algorithm for database search

In early 1994, it was demonstrated that a quantum mechanical computer could efficiently solve a well-known problem for which there was no known efficient algorithm using classical computers, i.e. testing whether or not a given integer, N, is prime, in a time which is a finite power of o (logN) .

Algorithms for quantum computation: discrete logarithms and factoring

  • P. Shor
  • Computer Science
    Proceedings 35th Annual Symposium on Foundations of Computer Science
  • 1994
Las Vegas algorithms for finding discrete logarithms and factoring integers on a quantum computer that take a number of steps which is polynomial in the input size, e.g., the number of digits of the integer to be factored are given.