Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

A pragma based C++ framework for hybrid quantum/classical computation

Published: 18 July 2024 Publication History

Abstract

Quantum computers promise exponential speed ups over classical computers for various tasks. This emerging technology is expected to have its first huge impact in High Performance Computing (HPC), as it can solve problems beyond the reach of HPC. To that end, HPC will require quantum accelerators, which will enable applications to run on both classical and quantum devices, via hybrid quantum-classical nodes. Hybrid quantum-HPC applications should be scalable, executable on Quantum Error Corrected (QEC) devices, and could use quantum-classical primitives. However, the lack of scalability, poor performances, and inability to insert classical schemes within quantum applications has prevented current quantum frameworks from being adopted by the HPC community.
This paper specifies the requirements of a hybrid quantum-classical framework compatible with HPC environments, and introduces a novel hardware-agnostic framework called Q-Pragma. This framework extends the classical programming language C++ heavily used in HPC via the addition of pragma directives to manage quantum computations.

References

[1]
Ali Abhari, Arvin Faruque, Mohammad Javad Dousti, Lukas Svec, Oana Catu, Amlan Chakrabati, Chen-Fu Chiang, Seth Vanderwilt, John Black, Frederic Chong, Margaret Martonosi, Martin Suchara, Ken Brown, Massoud Pedram, Todd Brun, Scaffold: quantum programming language, 07 2012.
[2]
E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, D. Sorensen, LAPACK Users' Guide, third edition, Society for Industrial and Applied Mathematics, Philadelphia, PA, 1999.
[3]
John Backus, The history of Fortran I, II and III, Ann. Hist. Comput. 1 (1) (1979) 21–37.
[4]
K. Bertels, A. Sarkar, T. Hubregtsen, M. Serrao, A.A. Mouedenne, A. Yadav, A. Krol, I. Ashraf, Quantum computer architecture: towards full-stack quantum accelerators, in: 2020 Design, Automation & Test in Europe Conference & Exhibition (2020), IEEE, March 2020.
[5]
Benjamin Bichsel, Maximilian Baader, Timon Gehr, Martin Vechev, Silq: a high-level quantum language with safe uncomputation and intuitive semantics, in: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM, June 2020.
[6]
L. Susan Blackford, Antoine Petitet, Roldan Pozo, Karin Remington, R. Clint Whaley, James Demmel, Jack Dongarra, Iain Duff, Sven Hammarling, Greg Henry, et al., An updated set of basic linear algebra subprograms (blas), ACM Trans. Math. Softw. 28 (2) (2002) 135–151.
[7]
Hans Hon Sang Chan, Richard Meister, Tyson Jones, David P. Tew, Simon C. Benjamin, Grid-based methods for chemistry simulations on a quantum computer, Sci. Adv. 9 (9) (mar 2023).
[8]
Cirq Developers, Cirq, 2023.
[9]
Andrew Cross, Ali Javadi-Abhari, Thomas Alexander, Niel De Beaudrap, Lev S. Bishop, Steven Heidel, Colm A. Ryan, Prasahnt Sivarajah, John Smolin, Jay M. Gambetta, Blake R. Johnson, OpenQASM 3: a broader and deeper quantum assembly language, ACM Trans. Quantum Comput. 3 (3) (September 2022) 1–50.
[10]
Leonardo Dagum, Ramesh Menon, OpenMP: an industry standard API for shared-memory programming, IEEE Comput. Sci. Eng. 5 (1) (1998) 46–55.
[11]
NVIDIA CUDA Quantum development team, Cuda quantum, 2023.
[12]
David P. DiVincenzo, The physical implementation of quantum computation, Fortschr. Phys. 48 (9–11) (September 2000) 771–783.
[13]
Eviden Quantum Lab, myQLM: Quantum Computing Framework, 2020–2023.
[14]
Craig Gidney, Windowed quantum arithmetic, arXiv: Quantum Physics, May 2019.
[15]
Craig Gidney, Martin Ekerå, How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits, Quantum 5 (April 2021) 433.
[16]
András Gilyén, Yuan Su, Guang Hao Low, Nathan Wiebe, Quantum singular value transformation and beyond: exponential improvements for quantum matrix arithmetics, in: Proceedings of the 51st Annual ACM SIGACT Symposium on Theory of Computing, ACM, 2019.
[17]
Alexander S. Green, Peter LeFanu Lumsdaine, Neil J. Ross, Peter Selinger, Benoît Valiron, Quipper, ACM SIGPLAN Not. 48 (6) (jun 2013) 333–342.
[18]
Thomas Häner, Damian S. Steiger, Krysta Svore, Matthias Troyer, A software methodology for compiling quantum programs, Quantum Sci. Technol. 3 (2) (February 2018).
[19]
Qihang Huang, Zhiyi Huang, Paul Werstein, Martin Purvis, GPU as a general purpose computing resource, in: 2008 Ninth International Conference on Parallel and Distributed Computing, Applications and Technologies, 2008, pp. 151–158.
[20]
Travis S. Humble, Alexander McCaskey, Dmitry I. Lyakh, Meenambika Gowrishankar, Albert Frisch, Thomas Monz, Quantum computers for high-performance computing, IEEE MICRO 41 (5) (2021) 15–23.
[21]
Ali JavadiAbhari, Shruti Patil, Daniel Kudrow, Jeff Heckey, Alexey Lvov, Frederic T. Chong, Margaret Martonosi, ScaffCC: scalable compilation and analysis of quantum programs, Parallel Comput. 45 (jun 2015) 2–17.
[22]
Ivan Kassal, James D. Whitfield, Alejandro Perdomo-Ortiz, Man-Hong Yung, Alán Aspuru-Guzik, Simulating chemistry using quantum computers, Annu. Rev. Phys. Chem. 62 (1) (may 2011) 185–207.
[23]
Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, Pearson, 2006.
[24]
Seyong Lee, Seung-Jai Min, Rudolf Eigenmann, OpenMP to GPGPU: a compiler framework for automatic translation and optimization, SIGPLAN Not. 44 (4) (feb 2009) 101–110.
[25]
John M. Martyn, Zane M. Rossi, Andrew K. Tan, Isaac L. Chuang, Grand unification of quantum algorithms, PRX Quantum 2 (4) (dec 2021).
[26]
Alexander Mccaskey, Thien Nguyen, Anthony Santana, Daniel Claudino, Tyler Kharazi, Hal Finkel, Extending C++ for heterogeneous quantum-classical computing, ACM Trans. Quantum Comput. 2 (2) (2021) 1–36.
[27]
Mariia Mykhailova, Martin Roetteler, Microsoft Q# coding contest – summer 2018 – main contest July 6–9, 2018, 2018.
[28]
Mariia Mykhailova, Martin Roetteler, Microsoft Q# coding contest – winter 2019 – main contest March 1–4, 2019, 2018.
[29]
Michael Nielsen, Isaac Chuang, Quantum information theory, in: Quantum Computation and Quantum Information, Cambridge University Press, June 2012, pp. 528–607.
[30]
NVIDIA, Péter Vingelmann, Frank H.P. Fitzek, Cuda, release: 10.2.89, 2020.
[31]
Qiskit contributors, Qiskit: an open-source framework for quantum computing, 2023.
[32]
Peter W. Shor, Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer, SIAM J. Comput. 26 (5) (oct 1997) 1484–1509.
[33]
Damian S. Steiger, Thomas Häner, Matthias Troyer, ProjectQ: an open source software framework for quantum computing, Quantum 2 (January 2018) 49.
[34]
John E. Stone, David Gohara, Guochun Shi, OpenCL: a parallel programming standard for heterogeneous computing systems, Comput. Sci. Eng. 12 (3) (May 2010) 66–73.
[35]
Bjarne Stroustrup, The C++ Programming Language, 3rd edition, Addison-Wesley, 1997.
[36]
Krysta Svore, Alan Geller, Matthias Troyer, John Azariah, Christopher Granade, Bettina Heim, Vadym Kliuchnikov, Mariia Mykhailova, Andres Paz, Martin Roetteler, Q#, in: Proceedings of the Real World Domain Specific Languages Workshop 2018, ACM, feb 2018.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Science of Computer Programming
Science of Computer Programming  Volume 236, Issue C
Sep 2024
300 pages

Publisher

Elsevier North-Holland, Inc.

United States

Publication History

Published: 18 July 2024

Author Tags

  1. Quantum
  2. HPC
  3. Hybrid computing
  4. C++
  5. Framework

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 03 Sep 2024

Other Metrics

Citations

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media