Review Article | Published:

Programming languages and compiler design for realistic quantum hardware

Nature volume 549, pages 180187 (14 September 2017) | Download Citation

Abstract

Quantum computing sits at an important inflection point. For years, high-level algorithms for quantum computers have shown considerable promise, and recent advances in quantum device fabrication offer hope of utility. A gap still exists, however, between the hardware size and reliability requirements of quantum computing algorithms and the physical machines foreseen within the next ten years. To bridge this gap, quantum computers require appropriate software to translate and optimize applications (toolflows) and abstraction layers. Given the stringent resource constraints in quantum computing, information passed between layers of software and implementations will differ markedly from in classical computing. Quantum toolflows must expose more physical details between layers, so the challenge is to find abstractions that expose key details while hiding enough complexity.

Access optionsAccess options

Rent or Buy article

Get time limited or full article access on ReadCube.

from$8.99

All prices are NET prices.

References

  1. 1.

    Progress in digital integrated electronics. IEEE Solid-State Circ. Soc. News. 20(3), 11–13 (1975; reprinted 2006); available at

  2. 2.

    Hardware synthesis from C/C++ models. In Proc. Conf. on Design Automation and Test in Europe (DATE ’99) 80 (ACM, 1999)

  3. 3.

    ., & Design Methods 171–177 (Springer, 2017)

  4. 4.

    Algorithms for quantum computation: discrete logarithms and factoring. In Proc. 35th Ann. Symp. on Foundations of Computer Science (FOCS ’94) 124–134 (IEEE, 1994)

  5. 5.

    in Encyclopedia of Complexity and Systems Science (ed. ) 7088–7118 (Springer, 2009)

  6. 6.

    , , , & Any AND-OR formula of size N can be evaluated in time N1/2+0(1) on a quantum computer. SIAM J. Comput. 39(6), 2513–2530 (2010)

  7. 7.

    . et al. Exponential algorithmic speedup by a quantum walk. In Proc. 35th Ann. Symp. on Theory of Computing (STOC ’03) 59–68 (ACM, 2003)

  8. 8.

    Fast quantum algorithms for computing the unit group and class group of a number field. In Proc. 37th Ann. Symp. on Theory of Computing (STOC ’05) 468–474 (ACM, 2005)

  9. 9.

    A fast quantum mechanical algorithm for database search. In Proc. 28th Ann. Symp. on Theory of Computing (STOC ’96) 212–219 (ACM, 1996)

  10. 10.

    et al. Simulation of electronic structure Hamiltonians using quantum computers. Mol. Phys. 109, 735–750 (2010)

  11. 11.

    National Institute of Standards and Technology FIPS PUB 180–4: Secure Hash Standard (SHS) (US Department of Commerce, 2012)

  12. 12.

    ., . & Quantum algorithms for the triangle problem. In Proc. 16th Ann. Symp. on Discrete Algorithms (SODA ’05) 1109–1117 (ACM-SIAM, 2005)

  13. 13.

    , , & Simulated quantum computation of molecular energies. Science 309, 1704–1707 (2005)

  14. 14.

    , & Quantum algorithms for quantum field theories. Science 336, 1130–1133 (2012)

  15. 15.

    , , & Exploiting locality in quantum computation for quantum chemistry. J. Phys. Chem. Lett. 5, 4368–4380 (2014)

  16. 16.

    , , , & Elucidating reaction mechanisms on quantum computers. Preprint at (2016)

  17. 17.

    et al. A variational eigenvalue solver on a photonic quantum processor. Nat. Commun. 5, 4213 (2014)

  18. 18.

    . et al. Scalable quantum simulation of molecular energies. Phys. Rev. X 6, 031007 (2016). This paper is a good example of the emerging importance of classical-quantum co-processing.

  19. 19.

    et al. Programming the quantum future. Commun. ACM 58, 52–61 (2015). This paper offers another perspective on quantum programming language design issues.

  20. 20.

    ., ., ., . & A quantum logic array microarchitecture:scalable quantum data movement and computation. In Proc. 38th Ann. Int. Symp. on Microarchitecture (MICRO) 305–318 (ACM/IEEE Computer Society, 2005)

  21. 21.

    ., ., ., . & Quantum memory hierarchies: efficient designs to match available parallelism in quantum computing. In Proc. 33rd Ann. Int. Symp. on Computer Architecture (ISCA) 378–390 (ACM/IEEE Computer Society, 2006)

  22. 22.

    , & An evaluation framework and instruction set architecture for ion-trap based quantum micro-architectures. SIGARCH Comput. Archit. News 33, 186–196 (2005)

  23. 23.

    & A program transformation and architecture support for quantum uncomputation. SIGARCH Comput. Archit. News 34, 252–263 (2006)

  24. 24.

    ., ., . & Running a quantum circuit at the speed of data. In Proc. 35th Ann. Int. Symp. on Computer Architecture (ISCA). 177–188 (2008)

  25. 25.

    ., ., . & A fault tolerant, area efficient architecture for Shor’s factoring algorithm. In Proc. 36th Ann. Int. Symp. on Computer Architecture (ISCA) 383–394 (2009)

  26. 26.

    & A blueprint for building a quantum computer. Commun. ACM 56, 84–93 (2013)

  27. 27.

    ., . & Quantum Computing for Computer Architects 2nd edn Synthesis Lectures on Computer Architecture (Morgan & Claypool, 2011)

  28. 28.

    . et al. Quantum rotations: a case study in static and dynamic machine-code generation for quantum computers. In Proc.40th Ann. Int. Symp. on Computer Architecture (ISCA) 166–176 (ACM, 2013)

  29. 29.

    . et al. Compiler management of communication and parallelism for quantum computation. In Proc. 20th Int. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS) 445–456 (ACM, 2015). This paper describes the use of a software toolchain to explore architectural designs and optimizations.

  30. 30.

    Performing quantum computing experiments in the cloud. Phys. Rev. A 94, 032329 (2016)

  31. 31.

    et al. Demonstration of a small programmable quantum computer with atomic qubits. Nature 536, 63–66 (2016)

  32. 32.

    et al. Fault-tolerant quantum error detection. Preprint at (2016)

  33. 33.

    et al. State preservation by repetitive error detection in a superconducting quantum circuit. Nature 519, 66–69 (2015)

  34. 34.

    et al. Blueprint for a microwave trapped-ion quantum computer. Preprint at (2015)

  35. 35.

    et al. Surface codes: towards practical large-scale quantum computation. Phys. Rev. A 86, 032324 (2012)

  36. 36.

    et al. Large-scale modular quantum-computer architecture with atomic memory and photonic interconnects. Phys. Rev. A 89, 022317 (2014)

  37. 37.

    , , & Improving quantum algorithms for quantum chemistry. Preprint at (2014). This paper describes a software toolchain that improves the efficiency 100,000-fold in their quantum chemistry application.

  38. 38.

    A Procedural Formalism for Quantum Computing: Qcl. Master’s thesis (Technical Physics, TU Vienna, 1998)

  39. 39.

    . et al. Quipper: A scalable quantum programming language. In Proc. 34th SIGPLAN Conf. on Programming Language Design and Implementation (PLDI ’13) 333–342 (ACM, 2013). This paper describes a quantum programming language incorporating some of the best design practices of functional languages.

  40. 40.

    . et al. Quafl: A typed dsl for quantum programming. In Proc. 1st Ann. Workshop on Functional Programming Concepts in Domain-specific Languages (FPCDSL ’13) 19–26 (ACM, 2013)

  41. 41.

    . et al. ScaffCC: A framework for compilation and analysis of quantum computing programs. In Proc. 11th ACM Conf. on Computing Frontiers 1 (ACM, 2014)

  42. 42.

    . & LLVM: A compilation framework for lifelong program analysis & transformation. In Proc. Int. Symp. on Code Generation and Optimization: Feedback-directed and Runtime Optimization 75–86 (IEEE Computer Society, 2004)

  43. 43.

    & Liquid: A Software Design Architecture And Domain-Specific Language For Quantum Computing. (2014)

  44. 44.

    , , & A software methodology for compiling quantum programs. Preprint at (2016). This is a good example of a quantum software stack.

  45. 45.

    , & ProjectQ: an open source software framework for quantum computing. Preprint at (2016)

  46. 46.

    Ion Storage Group. ARTIQ (Advanced Real-Time Infrastructure for Quantum Physics) (NIST, 2017)

  47. 47.

    , & A practical quantum instruction set architecture. Preprint at (2016)

  48. 48.

    et al. Complete 3-qubit grover search on a programmable quantum computer. Preprint at (2017)

  49. 49.

    IBM’s quantum cloud computer goes commercial. Nature 543, 159 (2017)

  50. 50.

    ., ., ., . & Flexjava: Language support for safe and modular approximate programming. In Proc. 10th Joint Meet. on Foundations of Software Engineering (ESEC/FSE 2015) 745–757 (ACM, 2015)

  51. 51.

    ., ., . & Compilers: Principles, Techniques, and Tools 2nd edn (Addison-Wesley Longman, 2006)

  52. 52.

    Interprocedural data flow analysis. In International Federation for Information Processing (IFIP) Congress 398–402 (1974)

  53. 53.

    ., ., ., . & Interprocedural Analysis for Parallelization 61–80 (Springer, 1996)

  54. 54.

    , , , & Understanding degenerate ground states of a protected quantum circuit in the presence of disorder. Phys. Rev. B 90, 094518 (2014)

  55. 55.

    , , , & Prediction and real-time compensation of qubit decoherence via machine learning. Nature Commun. 8, 14106 (2017)

  56. 56.

    et al. Hardware-efficient quantum optimizer for small molecules and quantum magnets. Preprint at (2017)

  57. 57.

    , , , & High-contrast qubit interactions using multimode cavity qed. Phys. Rev. Lett. 114, 080501 (2015)

  58. 58.

    et al. A reconfigurable cryogenic platform for the classical control of scalable quantum computers. Preprint at (2016)

  59. 59.

    & Rsfq logic/memory family: a new Josephson-junction technology for sub-terahertz-clock-frequency digital systems. IEEE Trans. Appl. Supercond. 1, 3–28 (1991)

  60. 60.

    , , , & Gate-count estimates for performing quantum chemistry on small quantum computers. Phys. Rev. A 90, 022305 (2014)

  61. 61.

    , & qHiPSTER: the quantum high performance software testing environment. Preprint at (2016)

  62. 62.

    The QX Simulator (2017)

  63. 63.

    & Improved classical simulation of quantum circuits dominated by clifford gates. Phys. Rev. Lett. 116, 250501 (2016)

  64. 64.

    ., ., ., . & Diderot: a parallel DSL for image analysis and visualization. In Proc. SIGPLAN Conf. on Programming Language Design and Implementation 111–120 (ACM, 2012)

  65. 65.

    . et al. in Dependable Software Systems Engineering. NATO Science for Peace and Security Series D: Information and Communication Security (eds ., . & ) Vol. 40, 1–25 (IOS Press, 2015)

  66. 66.

    . & in Foundations of Software Science and Computational Structures 81–96 (Springer Science & Business Media, 2008)

  67. 67.

    , & Architecture for a large-scale ion-trap quantum computer. Nature 417, 709–711 (2002)

  68. 68.

    et al. Experimental primer on the trapped ion quantum computer. Fortschr. Phys. 46, 363–390 (1998)

  69. 69.

    , & Verified Compilation of Space-Efficient Reversible Circuits. In Proc. Computer Aided Verification: 29th Int. Conf. (CAV 2017) Part II , 3–21 (Springer International, 2017)

Download references

Acknowledgements

We thank the many collaborators who have helped shape our thinking over the years: K. Brown, I. Chuang, E. Chi, A. Faruque, A. Harrow, J. Heckey, A. Javadi-Abhari, J. Kubiatowicz, D. Kudrow, T. Metodi, M. Oskin, S. Patil, J. Reppy, D. Schuster, M. Suchara and D. Thaker. This work was funded in part by Los Alamos National Laboratory and the US Department of Defense under subcontract 431682, by NSF PHY grant 1660686, and by a research gift from Intel Corporation.

Author information

Affiliations

  1. Department of Computer Science, University of Chicago, Chicago, USA

    • Frederic T. Chong
    •  & Diana Franklin
  2. Department of Computer Science, Princeton University, Princeton, USA

    • Margaret Martonosi

Authors

  1. Search for Frederic T. Chong in:

  2. Search for Diana Franklin in:

  3. Search for Margaret Martonosi in:

Contributions

All three authors contributed equally to the survey and conclusions in this article.

Competing interests

The authors declare no competing financial interests.

Corresponding author

Correspondence to Frederic T. Chong.

Reviewer Information Nature thanks B. Valiron and the other anonymous reviewer(s) for their contribution to the peer review of this work.

Publisher's note: Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

About this article

Publication history

Received

Accepted

Published

DOI

https://doi.org/10.1038/nature23459

Comments

By submitting a comment you agree to abide by our Terms and Community Guidelines. If you find something abusive or that does not comply with our terms or guidelines please flag it as inappropriate.