Simulating Quantum Computers Using OpenCL

Quantum computing is an emerging technology, promising a paradigm shift in computing, and allowing for speedups in many different problems. However, quantum devices are still in their early stages, most with only a small number qubits. This places a reliance on simulation to develop quantum algorithms and to verify these devices. While there exists many algorithms for the simulation of quantum circuits, there is (at the time of writing) no tools which use OpenCL to parallelize this simulation, thereby taking advantage of devices such as GPUs while still remaining portable. In this paper, such a tool is described, including optimizations in areas such as gate application. This leads to a new approach that outperforms other popular state vector based simulators. An implementation of the proposed simulator is available at this https URL.

[1]  Igor L. Markov,et al.  Simulating Quantum Computation by Contracting Tensor Networks , 2008, SIAM J. Comput..

[2]  Lov K. Grover A fast quantum mechanical algorithm for database search , 1996, STOC '96.

[3]  Daniel J. Bernstein,et al.  Post-quantum RSA , 2017, PQCrypto.

[4]  Firas Hamze,et al.  A Performance Comparison of CUDA and OpenCL , 2010, ArXiv.

[5]  Paul Adrien Maurice Dirac,et al.  A new notation for quantum mechanics , 1939, Mathematical Proceedings of the Cambridge Philosophical Society.

[6]  Andrew W. Cross,et al.  Quantum optimization using variational algorithms on near-term quantum devices , 2017, Quantum Science and Technology.

[7]  Christof Zalka GROVER'S QUANTUM SEARCHING ALGORITHM IS OPTIMAL , 1997, quant-ph/9711070.

[8]  Matthias Troyer,et al.  ProjectQ: An Open Source Software Framework for Quantum Computing , 2016, ArXiv.

[9]  Emilio L. Zapata,et al.  Quantum computer simulation using the CUDA programming model , 2010, Comput. Phys. Commun..

[10]  Jiangfeng Du,et al.  Implementation of a quantum algorithm to solve the Bernstein-Vazirani parity problem without entanglement on an ensemble quantum computer , 2001 .

[11]  Simon J. Devitt,et al.  Performing Quantum Computing Experiments in the Cloud , 2016, 1605.05709.

[12]  S. Lloyd,et al.  Quantum Algorithm Providing Exponential Speed Increase for Finding Eigenvalues and Eigenvectors , 1998, quant-ph/9807070.

[13]  Peter W. Shor,et al.  Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer , 1995, SIAM Rev..

[14]  J. Gambetta,et al.  Hardware-efficient variational quantum eigensolver for small molecules and quantum magnets , 2017, Nature.

[15]  Ryan LaRose,et al.  Distributed Memory Techniques for Classical Simulation of Quantum Circuits , 2018, ArXiv.

[16]  Franco Nori,et al.  QuTiP: An open-source Python framework for the dynamics of open quantum systems , 2011, Comput. Phys. Commun..

[17]  Thomas Häner,et al.  0.5 Petabyte Simulation of a 45-Qubit Quantum Circuit , 2017, SC17: International Conference for High Performance Computing, Networking, Storage and Analysis.

[18]  Andrew W. Cross,et al.  Demonstration of quantum advantage in machine learning , 2015, npj Quantum Information.

[19]  Fuguo Deng,et al.  Quantum secure direct communication with high-dimension quantum superdense coding , 2005 .

[20]  H. Neven,et al.  Simulation of low-depth quantum circuits as complex undirected graphical models , 2017, 1712.05384.

[21]  Xia Yang,et al.  64-qubit quantum circuit simulation. , 2018, Science bulletin.

[22]  Simona Caraiman,et al.  Parallel quantum computer simulation on the GPU , 2011, 15th International Conference on System Theory, Control and Computing.

[23]  E. Farhi,et al.  A Quantum Approximate Optimization Algorithm , 2014, 1411.4028.

[24]  D. Deutsch Quantum theory, the Church–Turing principle and the universal quantum computer , 1985, Proceedings of the Royal Society of London. A. Mathematical and Physical Sciences.

[25]  Stéphane Beauregard Circuit for Shor's algorithm using 2n+3 qubits , 2003, Quantum Inf. Comput..

[26]  William J. Zeng,et al.  A Practical Quantum Instruction Set Architecture , 2016, ArXiv.

[27]  Quipper: a scalable quantum programming language , 2013, PLDI.

[28]  Yaoyun Shi,et al.  Classical Simulation of Intermediate-Size Quantum Circuits , 2018, 1805.01450.

[29]  Mark Howard,et al.  Simulation of quantum circuits by low-rank stabilizer decompositions , 2018, Quantum.

[30]  Kristofer Schlachter,et al.  An Introduction to the OpenCL Programming Model , 2012 .

[31]  Alán Aspuru-Guzik,et al.  qHiPSTER: The Quantum High Performance Software Testing Environment , 2016, ArXiv.