Overview and Comparison of Gate Level Quantum Software Platforms

Ryan LaRose

Department of Computational Mathematics, Science, and Engineering, Michigan State University.
Department of Physics and Astronomy, Michigan State University

Quantum computers are available to use over the cloud, but the recent explosion of quantum software platforms can be overwhelming for those deciding on which to use. In this paper, we provide a current picture of the rapidly evolving quantum computing landscape by comparing four software platforms - Forest (pyQuil), Qiskit, ProjectQ, and the Quantum Developer Kit (Q#) - that enable researchers to use real and simulated quantum devices. Our analysis covers requirements and installation, language syntax through example programs, library support, and quantum simulator capabilities for each platform. For platforms that have quantum computer support, we compare hardware, quantum assembly languages, and quantum compilers. We conclude by covering features of each and briefly mentioning other quantum computing software packages.

► BibTeX data

► References

[1] Bernhard Ömer, A procedural formalism for quantum computing, Master's thesis, Department of Theoretical Physics, Technical University of Vienna, 1998.
http:/​/​citeseerx.ist.psu.edu/​viewdoc/​similar?doi=10.1.1.121.5017&type=cc

[2] S. Bettelli, L. Serafini, T. Calarco, Toward an architecture for quantum programming, Eur. Phys. J. D, Vol. 25, No. 2, pp. 181-200 (2003).
https://doi.org/10.1140/epjd/e2003-00242-2

[3] Peter Selinger, Towards a quantum programming language, Mathematical Structures in Computer Science 14(4): 527-586 (2004).
https://doi.org/10.1017/S0960129504004256

[4] Peter Selinger, Benoı̂t Valiron, A lambda calculus for quantum computation with classical control, TLCA 2005, Proceedings of the 7th International Conference on Typed Lambda Calculi and Applications: 354-368 (2005).
https://doi.org/10.1007/11417170_26

[5] Margherita Zorzi, On quantum lambda calculi: a foundational perspective, Mathematical Structures in Computer Science 26(7): 1107-1195 (2016).
https://doi.org/10.1017/S0960129514000425

[6] Jennifer Paykin, Robert Rand, Steve Zdancewic, QWIRE: a core language for quantum circuits, POPL 2017, 846-858.
https://doi.org/10.1145/3009837.3009894

[7] Benjamin P. Lanyon, James D. Whitfield, Geoff G. Gillet, Michael E. Goggin, Marcelo P. Almeida, Ivan Kassal, Jacob D. Biamonte, Masoud Mohseni, Ben J. Powell, Marco Barbieri, Alán Aspuru-Guzik, Andrew G. White, Towards quantum chemistry on a quantum computer, Nature Chemistry 2, pages 106-111 (2010), doi:10.1038/​nchem.483.
https://doi.org/10.1038/nchem.483

[8] Jonathan Olson, Yudong Cao, Jonathan Romero, Peter Johnson, Pierre-Luc Dallaire-Demers, Nicolas Sawaya, Prineha Narang, Ian Kivlichan, Michael Wasielewski, Alán Aspuru-Guzik, Quantum information and computation for chemistry, NSF Workshop Report, 2017.
arXiv:1706.05413

[9] Jacob Biamonte, Peter Wittek, Nicola Pancotti, Patrick Rebentrost, Nathan Wiebe, Seth Lloyd, Quantum machine learning, Nature volume 549, pages 195-202 (14 September 2017).
https://doi.org/10.1038/nature23474

[10] Seth Lloyd, Masoud Mohseni, Patrick Rebentrost, Quantum principal component analysis, Nature Physics volume 10, pages 631-633 (2014).
https://doi.org/10.1038/nphys3029

[11] Vadim N. Smelyanskiy, Davide Venturelli, Alejandro Perdomo-Ortiz, Sergey Knysh, and Mark I. Dykman, Quantum annealing via environment-mediated quantum diffusion, Phys. Rev. Lett. 118, 066802, 2017.
https://doi.org/10.1103/PhysRevLett.118.066802

[12] Patrick Rebentrost, Brajesh Gupt, Thomas R. Bromley, Quantum computational finance: Monte Carlo pricing of financial derivatives, arXiv preprint (arXiv:1805.00109v1), 2018.
https://doi.org/10.1103/PhysRevA.98.022321
arXiv:1805.00109v1

[13] I. M. Georgescu, S. Ashhab, Franco Nori, Quantum simulation, Rev. Mod. Phys. 86, 154 (2014), DOI: 10.1103/​RevModPhys.86.153.
https://doi.org/10.1103/RevModPhys.86.153

[14] E. F. Dumitrescu, A. J. McCaskey, G. Hagen, G. R. Jansen, T. D. Morris, T. Papenbrock, R. C. Pooser, D. J. Dean, P. Lougovski, Cloud quantum computing of an atomic nucleus, Phys. Rev. Lett. 120, 210501 (2018), DOI: 10.1103/​PhysRevLett.120.210501.
https://doi.org/10.1103/PhysRevLett.120.210501

[15] Lukasz Cincio, Yigit Subasi, Andrew T. Sornborger, and Patrick J. Coles, Learning the quantum algorithm for state overlap, New J. Phys. 20, 113022 (2018).
https://doi.org/10.1088/1367-2630/aae94a

[16] Patrick J. Coles, Stephan Eidenbenz, Scott Pakin, et al., Quantum algorithm implementations for beginners, arXiv preprint (arXiv:1804.03719v1), 2018.
arXiv:1804.03719

[17] Mark Fingerhuth, Open-Source Quantum Software Projects, accessed May 12, 2018.
https:/​/​github.com/​markf94/​os_quantum_software

[18] Quantiki: List of QC Simulators, accessed May 12, 2018.
https:/​/​www.quantiki.org/​wiki/​list-qc-simulators

[19] R. Smith, M. J. Curtis and W. J. Zeng, A practical quantum instruction set architecture, 2016.
arXiv:1608.03355

[20] Qiskit, originally authored by Luciano Bello, Jim Challenger, Andrew Cross, Ismael Faro, Jay Gambetta, Juan Gomez, Ali Javadi-Abhari, Paco Martin, Diego Moreda, Jesus Perez, Erick Winston, and Chris Wood, https:/​/​github.com/​Qiskit/​qiskit-terra.
https:/​/​github.com/​Qiskit/​qiskit-terra

[21] Damian S. Steiger, Thomas Häner, and Matthias Troyer ProjectQ: An open source software framework for quantum computing, 2016.
https://doi.org/10.22331/q-2018-01-31-49

[22] Thomas Häner, Damian S. Steiger, Krysta M. Svore, and Matthias Troyer, A software methodology for compiling quantum programs, 2018 Quantum Sci. Technol. 3 020501.
https://doi.org/10.1088/2058-9565/aaa5cc

[23] The Quantum Development Kit by Microsoft, https:/​/​github.com/​Microsoft/​Quantum.
https:/​/​github.com/​Microsoft/​Quantum

[24] Michael A. Nielsen and Isaac L. Chuang, Quantum Computation and Quantum Information, 10th Anniversary Edition, Cambridge University Press, 2011.
https://doi.org/10.1017/CBO9780511976667.001

[25] Doug Finke, Quantum Computing Report, https:/​/​quantumcomputingreport.com/​resources/​education/​, accessed May 26, 2018.
https:/​/​quantumcomputingreport.com/​resources/​education/​

[26] Forest: An API for quantum computing in the cloud, https:/​/​www.rigetti.com/​forest, accessed May 14, 2018.
https:/​/​www.rigetti.com/​forest

[27] Andrew W. Cross, Lev S. Bishop, John A. Smolin, Jay M. Gambetta, Open quantum assembly language, 2017.
arXiv:1707.03429

[28] Scott Aaronson, Daniel Gottesman, Improved Simulation of Stabilizer Circuits, Phys. Rev. A 70, 052328, 2004.
https://doi.org/10.1103/PhysRevA.70.052328

[29] pyQuil License, github.com/​rigetticomputing/​pyquil/​blob/​master/​LICENSE, accessed June 7, 2018.
https:/​/​github.com/​rigetticomputing/​pyquil/​blob/​master/​LICENSE#L204

[30] Microsoft Quantum Development Kit License, marketplace.visualstudio.com/​items/​quantum.DevKit/​license, accessed June 7, 2018.
https:/​/​marketplace.visualstudio.com/​items/​quantum.DevKit/​license

[31] Hao Zhang, Chun-Xiao Liu, Sasa Gazibegovic, et al. Quantized Majorana conductance, Nature 556, 74-79 (05 April 2018).
https://doi.org/10.1038/nature26142

[32] 16-qubit backend: IBM QX team, ``ibmqx5 backend specification V1.1.0,'' (2018). Retrieved from https:/​/​ibm.biz/​qiskit-ibmqx5 and https:/​/​quantumexperience.ng.bluemix.net/​qx/​devices, accessed May 23, 2018.
https:/​/​ibm.biz/​qiskit-ibmqx5

[33] Talia Gershon, Celebrating the IBM Q Experience Community and Their Research, March 8, 2018.
https:/​/​www.ibm.com/​blogs/​research/​2018/​03/​ibmq-published-research/​

[34] M. Reck, A. Zeilinger, H.J. Bernstein, and P. Bertani, Experimental realization of any discrete unitary operator, Physical Review Letters, 73, p. 58, 1994.
https://doi.org/10.1103/PhysRevLett.73.58

[35] Ryan LaRose, Distributed memory techniques for classical simulation of quantum circuits, arXiv preprint (arXiv:1801.01037), 2018.
arXiv:1801.01037

[36] Thomas Haner, Damian S. Steiger, 0.5 petabyte simulation of a 45-qubit quantum circuit, Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. SC 2017. Article No. 33.
https://doi.org/10.1145/3126908.3126947

[37] Jianxin Chen, Fang Zhang, Cupjin Huang, Michael Newman, Yaoyun Shi, Classical simulation of intermediate-size quantum circuits, arXiv preprint (arXiv:1805.01450), 2018.
arXiv:1805.01450

[38] Alwin Zulehner, Robert Wille, Advanced simulation of quantum computations, arXiv preprint (arXiv:1707.00865) (2017).
arXiv:1707.00865

[39] Jarrod R. McClean, Ian D. Kivlichan, Kevin J. Sung, et al., OpenFermion: The electronic structure package for quantum computers, arXiv:1710.07629, 2017.
arXiv:1710.07629

[1] Cirq: A Python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits, https:/​/​github.com/​quantumlib/​Cirq.
https:/​/​github.com/​quantumlib/​Cirq

[2] Peter Selinger, Richard Eisenberg, et al., The Quipper Language, https:/​/​www.mathstat.dal.ca/​$\sim$selinger/​quipper/​.
https:/​/​www.mathstat.dal.ca/​~selinger/​quipper/​

[3] Alexander S. Green, Peter LeFanu Lumsdaine, Neil J. Ross, Peter Selinger, Benoît Valiron, Quipper: A Scalable Quantum Programming Language, ACM SIGPLAN Notices 48(6):333-342, 2013.
https://doi.org/10.1145/2499370.2462177

[4] Alexander S. Green, Peter LeFanu Lumsdaine, et al, An introduction to quantum programming in quipper, Lecture Notes in Computer Science 7948:110-124, Springer, 2013, DOI: 10.1007/​978-3-642-38986-3_10.
https://doi.org/10.1007/978-3-642-38986-3_10

[5] Ali Javadi Abhari, Arvin Faruque, et al., Scaffold: Quantum Programming Language, Technical Report, Department of Computer Science, Princeton University, 2012.
https:/​/​www.cs.princeton.edu/​research/​techreps/​TR-934-12

[6] Ali Javadi-Abhari, Shruti Patil, Daniel Kudrow, Jeff Heckey, Alexey Lvov, Frederic Chong and Margaret Martonosi, ScaffCC: A Framework for Compilation and Analysis of Quantum Computing Programs, ACM International Conference on Computing Frontiers (CF 2014), Cagliari, Italy, May 2014.
https:/​/​github.com/​epiqc/​ScaffCC

[7] Bernard Ömer, QCL: A Programming Language for Quantum Computers, version 0.6.4.
http:/​/​tph.tuwien.ac.at/​~oemer/​qcl.html

[8] Berhnar Ömer, Quantum programming in QCL, Jan 2000.
http:/​/​tph.tuwien.ac.at/​~oemer/​doc/​quprog.pdf

[9] Nathan Killoran, Josh Izaac, Nicolás Quesada, Ville Bergholm, Matthew Amy, Christian Weedbrook, Strawberry Fields: A Software Platform for Photonic Quantum Computing, Quantum 3, 129 (2019).
https://doi.org/ 10.22331/q-2019-03-11-129

Cited by

[1] Sukin Sim, Yudong Cao, Jonathan Romero, Peter D. Johnson, and Alan Aspuru-Guzik, "A framework for algorithm deployment on cloud-based quantum computers", arXiv:1810.10576 (2018).

[2] N. L. Thompson, N. H. Nguyen, E. C. Behrman, and J. E. Steck, "Experimental pairwise entanglement estimation for an N-qubit system :A machine learning approach for programming quantum hardware", arXiv:1902.07754 (2019).

[3] Yipeng Huang and Margaret Martonosi, "QDB: From Quantum Algorithms Towards Correct Quantum Programs", arXiv:1811.05447 (2018).

[4] Ciarán Ryan-Anderson, "Quantum Algorithms, Architecture, and Error Correction", arXiv:1812.04735 (2018).

[5] Hao Tang, Yan-Yan Zhu, Jun Gao, Marcus Lee, Peng-Cheng Lai, and Xian-Min Jin, "FeynmanPAQS: A Graphical Interface Program for Photonic Analog Quantum Computing", arXiv:1810.02289 (2018).

The above citations are from SAO/NASA ADS (last updated 2019-04-25 17:17:30). The list may be incomplete as not all publishers provide suitable and complete citation data.

On Crossref's cited-by service no data on citing works was found (last attempt 2019-04-25 17:17:26).