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

Find this paper interesting or want to discuss? Scite or leave a comment on SciRate.


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.

[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).

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

[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).

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

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

[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.

[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.

[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).

[10] Seth Lloyd, Masoud Mohseni, Patrick Rebentrost, Quantum principal component analysis, Nature Physics volume 10, pages 631-633 (2014).

[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.

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

[13] I. M. Georgescu, S. Ashhab, Franco Nori, Quantum simulation, Rev. Mod. Phys. 86, 154 (2014), DOI: 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.

[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).

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

[17] Mark Fingerhuth, Open-Source Quantum Software Projects, accessed May 12, 2018.

[18] Quantiki: List of QC Simulators, accessed May 12, 2018.

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

[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.

[21] Damian S. Steiger, Thomas Häner, and Matthias Troyer ProjectQ: An open source software framework for quantum computing, 2016.

[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.

[23] The Quantum Development Kit by Microsoft, 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.

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

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

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

[28] Scott Aaronson, Daniel Gottesman, Improved Simulation of Stabilizer Circuits, Phys. Rev. A 70, 052328, 2004.

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

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

[31] Hao Zhang, Chun-Xiao Liu, Sasa Gazibegovic, et al. Quantized Majorana conductance, Nature 556, 74-79 (05 April 2018).

[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.

[33] Talia Gershon, Celebrating the IBM Q Experience Community and Their Research, March 8, 2018.

[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.

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

[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.

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

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

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

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

[2] Peter Selinger, Richard Eisenberg, et al., The Quipper Language, https:/​/​www.mathstat.dal.ca/​$\sim$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.

[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.

[5] Ali Javadi Abhari, Arvin Faruque, et al., Scaffold: Quantum Programming Language, Technical Report, Department of Computer Science, Princeton University, 2012.

[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.

[7] Bernard Ömer, QCL: A Programming Language for Quantum Computers, version 0.6.4.

[8] Berhnar Ömer, Quantum programming in QCL, Jan 2000.

[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).

Cited by

[1] Michael L. Wall, Matthew R. Abernathy, and Gregory Quiroz, "Generative machine learning with tensor networks: Benchmarks on near-term quantum computers", Physical Review Research 3 2, 023010 (2021).

[2] Karoline Wild, Uwe Breitenbucher, Lukas Harzenetter, Frank Leymann, Daniel Vietz, and Michael Zimmermann, 2020 IEEE 24th International Enterprise Distributed Object Computing Conference (EDOC) 125 (2020) ISBN:978-1-7281-6473-1.

[3] Iskren Vankov, Daniel Mills, Petros Wallden, and Elham Kashefi, "Methods for classically simulating noisy networked quantum architectures", Quantum Science and Technology 5 1, 014001 (2019).

[4] V. P. Gerdt, E. A. Kotkova, and V. V. Vorob’ev, "The Teleportation of the Bell States Has Been Carried Out on the Five-Qubit Quantum IBM Computer", Physics of Particles and Nuclei Letters 16 6, 975 (2019).

[5] Daniel Vietz, Johanna Barzen, Frank Leymann, and Karoline Wild, Lecture Notes in Computer Science 12747, 127 (2021) ISBN:978-3-030-77979-5.

[6] Miguel-Angel Sicilia, Salvador Sánchez-Alonso, Marçal Mora-Cantallops, and Elena García-Barriocanal, Communications in Computer and Information Science 1266, 292 (2020) ISBN:978-3-030-58792-5.

[7] Olga Ivancova, Vladimir Korenkov, Olga Tyatyushkina, Sergey Ulyanov, and Toshio Fukuda, "Quantum supremacy in end-to-end intelligent IT. PT. III. Quantum software engineering – quantum approximate optimization algorithm on small quantum processors", System Analysis in Science and Education 2 (2020), 115 (2020).

[8] Albert Frisch, Harry S. Barowski, Markus Brink, and Peter Hans Roth, The Frontiers Collection 527 (2020) ISBN:978-3-030-18337-0.

[9] José A. Cruz-Lemus, Luis A. Marcelo, and Mario Piattini, Communications in Computer and Information Science 1439, 239 (2021) ISBN:978-3-030-85346-4.

[10] Makhamisa Senekane, Motobatsi Maseli, and Molibeli Benedict Taele, Lecture Notes in Electrical Engineering 674, 205 (2020) ISBN:978-3-030-48229-9.

[11] Shaukat Ali and Tao Yue, Proceedings of the 1st ACM SIGSOFT International Workshop on Architectures and Paradigms for Engineering Quantum Software 14 (2020) ISBN:9781450381000.

[12] Klaus Mainzer, Quantencomputer 187 (2020) ISBN:978-3-662-61997-1.

[13] Ivan B. Djordjevic, Quantum Information Processing, Quantum Computing, and Quantum Error Correction 125 (2021) ISBN:9780128219829.

[14] Niklas Kiefl and Georg Hagel, Proceedings of the 4th European Conference on Software Engineering Education 27 (2020) ISBN:9781450377522.

[15] Alexander Kaufman, Daniel Sundy, and Michael McGuigan, 2019 New York Scientific Data Summit (NYSDS) 1 (2019) ISBN:978-1-7281-5235-6.

[16] Margherita Zorzi, "Quantum Calculi—From Theory to Language Design", Applied Sciences 9 24, 5472 (2019).

[17] Kentaro Tamura and Yutaka Shikano, Mathematics for Industry 33, 17 (2021) ISBN:978-981-15-5190-1.

[18] Song Cheng, Chenfeng Cao, Chao Zhang, Yongxiang Liu, Shi-Yao Hou, Pengxiang Xu, and Bei Zeng, "Simulating noisy quantum circuits with matrix product density operators", Physical Review Research 3 2, 023005 (2021).

[19] Manuela Weigold, Johanna Barzen, Frank Leymann, and Marie Salm, 2021 IEEE 18th International Conference on Software Architecture Companion (ICSA-C) 95 (2021) ISBN:978-1-6654-3910-7.

[20] Matthias Möller and Merel Schalkers, Lecture Notes in Computer Science 12142, 451 (2020) ISBN:978-3-030-50432-8.

[21] Benjamin Weder, Uwe Breitenbucher, Frank Leymann, and Karoline Wild, 2020 IEEE/ACM 13th International Conference on Utility and Cloud Computing (UCC) 279 (2020) ISBN:978-0-7381-2394-3.

[22] Benjamin Weder, Johanna Barzen, Frank Leymann, Marie Salm, and Daniel Vietz, Proceedings of the 1st ACM SIGSOFT International Workshop on Architectures and Paradigms for Engineering Quantum Software 2 (2020) ISBN:9781450381000.

[23] Marie Salm, Johanna Barzen, Frank Leymann, Benjamin Weder, and Karoline Wild, Communications in Computer and Information Science 1429, 64 (2021) ISBN:978-3-030-87567-1.

[24] Bettina Heim, Mathias Soeken, Sarah Marshall, Chris Granade, Martin Roetteler, Alan Geller, Matthias Troyer, and Krysta Svore, "Quantum programming languages", Nature Reviews Physics 2 12, 709 (2020).

[25] Marie Salm, Johanna Barzen, Uwe Breitenbücher, Frank Leymann, Benjamin Weder, and Karoline Wild, Communications in Computer and Information Science 1310, 66 (2020) ISBN:978-3-030-64845-9.

[26] Manuela Weigold, Johanna Barzen, Frank Leymann, and Daniel Vietz, Communications in Computer and Information Science 1429, 34 (2021) ISBN:978-3-030-87567-1.

[27] Johanna Barzen, Frank Leymann, Michael Falkenthal, Daniel Vietz, Benjamin Weder, and Karoline Wild, Communications in Computer and Information Science 1399, 25 (2021) ISBN:978-3-030-72368-2.

[28] Balwinder Sodhi and Ritu Kapur, 2021 IEEE 18th International Conference on Software Architecture (ICSA) 80 (2021) ISBN:978-1-7281-6260-7.

[29] Zhihao Wu, Junjie Wu, and Anqi Huang, "PhotoniQLAB: a framework for simulating photonic quantum information processing experiments", Quantum Science and Technology 6 2, 024001 (2021).

[30] Benjamin Weder, Johanna Barzen, Frank Leymann, Marie Salm, and Karoline Wild, "QProv: A provenance system for quantum computing", IET Quantum Communication qtc2.12012 (2021).

[31] Ray LaPierre, The Materials Research Society Series 285 (2021) ISBN:978-3-030-69317-6.

[32] P. Krantz, M. Kjaergaard, F. Yan, T. P. Orlando, S. Gustavsson, and W. D. Oliver, "A quantum engineer's guide to superconducting qubits", Applied Physics Reviews 6 2, 021318 (2019).

[33] Benjamin Weder, Johanna Barzen, Frank Leymann, and Marie Salm, "Automated Quantum Hardware Selection for Quantum Workflows", Electronics 10 8, 984 (2021).

[34] Michael L. Wall and Giuseppe D'Aguanno, "Tree-tensor-network classifiers for machine learning: From quantum inspired to quantum assisted", Physical Review A 104 4, 042408 (2021).

[35] Aishwarya Jhanwar and Manisha J. Nene, 2021 Second International Conference on Electronics and Sustainable Communication Systems (ICESC) 1407 (2021) ISBN:978-1-6654-2867-5.

[36] Jinglei Cheng, Haoqing Deng, and Xuehai Qia, 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA) 543 (2020) ISBN:978-1-7281-4661-4.

[37] Oumarou Oumarou, Alexandru Paler, and Robert Basmadjian, 2020 IEEE Computer Society Annual Symposium on VLSI (ISVLSI) 126 (2020) ISBN:978-1-7281-5775-7.

[38] Xiu-Zhe Luo, Jin-Guo Liu, Pan Zhang, and Lei Wang, "Yao.jl: Extensible, Efficient Framework for Quantum Algorithm Design", Quantum 4, 341 (2020).

[39] Nikita Ryabov, Olga Ivancova, Vladimir Korenkov, and Sergey Ulyanov, "Quantum programming. Pt.1: Development tools analysis", System Analysis in Science and Education 3 (2020), 53 (2020).

[40] Mirza Nur Hidayat and Muhammad Faruq Nuruddinsyah, 2020 3rd International Conference on Computer and Informatics Engineering (IC2IE) 85 (2020) ISBN:978-1-7281-8245-2.

[41] D. Michael Miller and Gerhard W. Dueck, Recent Findings in Boolean Techniques 143 (2021) ISBN:978-3-030-68070-1.

[42] Ryan LaRose and Brian Coyle, "Robust data encodings for quantum classifiers", Physical Review A 102 3, 032420 (2020).

[43] Salonik Resch and Ulya R. Karpuzcu, "Quantum Computing: An Overview Across the System Stack", arXiv:1905.07240.

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

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

[46] 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.

[47] Himanshu Chaudhary, Biplab Mahato, Lakshya Priyadarshi, Naman Roshan, Utkarsh, and Apoorva D. Patel, "A Software Simulator for Noisy Quantum Circuits", arXiv:1908.05154.

[48] Benjamin Weder, Johanna Barzen, Frank Leymann, and Daniel Vietz, "Quantum Software Development Lifecycle", arXiv:2106.09323.

[49] Bhupesh Bishnoi, "Quantum Computation", arXiv:2006.02799.

[50] Johanna Barzen, "From Digital Humanities to Quantum Humanities: Potentials and Applications", arXiv:2103.11825.

[51] 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.

[52] 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.

[53] Nathan L. Thompson, N. H. Nguyen, E. C. Behrman, and James E. Steck, "Experimental pairwise entanglement estimation for an N-qubit system", Quantum Information Processing 19 11, 394 (2020).

[54] Chuong Nguyen Quoc, Le Bin Ho, Lan Nguyen Tran, and Hung Q. Nguyen, "Qsun: an open-source platform towards practical quantum machine learning applications", arXiv:2107.10541.

[55] Niels M. P. Neumann, Jelle C. Nauta, and Frank Phillipson, "Quantum implementation of the Shor-code on multiple simulator platforms", Quantum Technologies and Quantum Information Science V 11167, 111670B (2019).

The above citations are from Crossref's cited-by service (last updated successfully 2021-10-22 13:05:45) and SAO/NASA ADS (last updated successfully 2021-10-22 13:05:47). The list may be incomplete as not all publishers provide suitable and complete citation data.