Open source software in quantum computing

Mark Fingerhuth, Tomáš Babej, Peter Wittek
12/21/2018
quant-phcs.MScs.PL

Official code: ProjectQ-Framework/ProjectQ (977 stars, Apache-2.0, last commit 2026-10-19).

Abstract

Open source software is becoming crucial in the design and testing of quantum algorithms. Many of the tools are backed by major commercial vendors with the goal to make it easier to develop quantum software: this mirrors how well-funded open machine learning frameworks enabled the development of complex models and their execution on equally complex hardware. We review a wide range of open source software for quantum computing, 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. The evaluation of each project covers characteristics such as documentation, licence, the choice of programming language, compliance with norms of software engineering, and the culture of the project. We find that while the diversity of projects is mesmerizing, only a few attract external developers and even many commercially backed frameworks have shortcomings in software engineering. Based on these observations, we highlight the best practices that could foster a more active community around quantum computing software that welcomes newcomers to the field, but also ensures high-quality, well-documented code.

View on arXivView PDF

Code Implementations(1)

Apache-2.0

ProjectQ: An open source software framework for quantum computing

977296C++, PythonDec 28, 20162 days agoApache-2.0
quantum-computingquantum-programming-language

Similar Papers

Cite this paper

@article{fingerhuth2018open,
  title  = {Open source software in quantum computing},
  author = {Mark Fingerhuth and Tomáš Babej and Peter Wittek},
  year   = {2018},
  eprint = {1812.09167},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1812.09167}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1812.09167.svg)](https://codeofpaper.com/paper/1812.09167)

Discussion