High-Performance Simulation of Quantum Computation using QuIDDs George F. Viamontes, Manoj Rajagopalan, Igor L. Markov, and John P. Hayes Advanced Computer.
Published byModified over 4 years ago
Presentation on theme: "High-Performance Simulation of Quantum Computation using QuIDDs George F. Viamontes, Manoj Rajagopalan, Igor L. Markov, and John P. Hayes Advanced Computer."— Presentation transcript:
High-Performance Simulation of Quantum Computation using QuIDDs George F. Viamontes, Manoj Rajagopalan, Igor L. Markov, and John P. Hayes Advanced Computer Architecture Laboratory University of Michigan
Problem Simulation of quantum computing on a classical computer Requires exponentially growing time and memory resources using standard linear algebra Goal: Improve classical simulation Solution: Compress redundancy in the matrices and vectors used in quantum computing
Redundancy in Quantum Computing Matrix representation of quantum gates contain block patterns The Tensor (Kronecker) Product Create state vectors and operators involving multiple qubits Propagates block patterns in vectors and matrices
Example of Propagated Block Patterns Only TWO distinct blocks!
No Need to Repeat Identical Items Analogy: ISP automated tech support system “We’re sorry, you are not supported under the terms and conditions of service” “Is it between 8AM and 4:30PM?” YES NO “Call back later”“Are you running Windows?” “Can you reboot the system?” Tech Support Dept. YES NO YES NO No Need to have separate copies of this message for each path that leads to it.
Data Structure that Exploits Redundancy Binary Decision Diagrams (BDDs) exploit repeated sub-structure BDDs have been used to simulate classical logic circuits efficiently [1,2] Example: f = a AND b a f b 10 Assign value of 1 to variable x Assign value of 0 to variable x
Some Basic BDD Properties  Number of nodes in BDD A is denoted as |A| Most BDD operations are based on a recursive procedure called Apply Generally takes two BDDs, A and B, as arguments Apply(A,B) has space and time complexity: Apply is an algorithmic form of Boole’s Expansion
BDDs in Linear Algebra Variants of BDDs have been used in other problem domains Algebraic Decision Diagrams (ADDs) treat variable nodes as matrix indices  ADDs compress repeated block patterns in matrices and vectors Linear Algebraic operations exist which manipulate ADDs in their compressed state
Quantum Information Decision Diagrams Quantum Information Decision Diagrams (QuIDDs) An application of ADDs to the quantum computing domain Similar structure to ADDs Three types of nodes Row Column Terminal Use modified form of ADD operations
QuIDD Structure BDD variable ordering Defines the order in which different node types appear QuIDD variable ordering interleaves row and column variables Terminal nodes are always last
Quantum Circuit Simulation Issues Specific to QuIDDs Use state vector representation Though QuIDDs can also model the density matrix representation in principle Avoid multiplying operators together for efficiency Tensor products and matrix-vector multiplications are done however
QuIDD Vectors Use column and terminal variables Represent qubit state vectors Some examples: f f 00 01 10 11 00 01 10 11 T T
QuIDD Matrices Use row, column, and terminal variables Represent gates or operators
QuIDD Operations Based on the Apply algorithm [2,4] Construct new QuIDDs by traversing two QuIDD operands Perform “op” when terminals are reached (op can be *, +, etc.) The variable ordering directs the traversal General Form: f op g where f and g are QuIDDs, and x and y are variables in f and g, respectively
Tensor Product Given A B Every element of a matrix A is multiplied by the entire matrix B QuIDD Implementation: Use Apply Operands are A and B Variables of operand B are shifted “op” is defined to be multiplication
Matrix Multiplication A modified form of the Apply function Dot-product can be done on QuIDDs without decompression “Skipped” nodes are counted A factor of is multiplied by dot- products QuIDD Implementation Modified ADD matrix multiply algorithm  Support complex number terminals Account for row/column variable ordering
Other Operations Matrix addition Call to Apply with “op” set to addition Scalar operations A special one-operand version of Apply Qubit measurement A combination of matrix multiplications, tensor products, and scalar operations
Simulation of Grover’s Algorithm QuIDDPro was tested by running instances of Grover’s Algorithm Results indicate linear memory usage in many cases Any circuit with an oracle whose QuIDD form is polynomial in # of qubits
Sample Circuit Representation H H H Oracle H H Conditional Phase Shift H H H |0> |1>..................
Simulation of Grover’s Algorithm We used Boyer et al.’s formulation to compute the number of iterations  # iterations = Where M=# of solutions, N=# of elements in data set Exponential runtime even on a real quantum computer When M=1, the number of iterations is exponential in the number of qubits
Projected Grover Iterations SANITY CHECK: Make sure that the number of iterations predicted by Boyer et al. results in the highest probability of measuring the item(s) to be searched
Experimental Results Consistent with Predictions
Simulation Results for Grover’s Algorithm Growth of QuIDDs in Grover’s algorithm is linear Values expressed in number of nodes
Grover’s Algorithm: Results using Oracle 1 Oracle 1 searches for one element in the data set Worst-case polynomial oracle Linear memory asymptotics Run-times are extremely low comparatively
Grover’s Algorithm: Results using Oracle 1 Linear Growth using QuIDDPro
Grover’s Algorithm: Results using Mod 1024 Oracle Finds elements in the data set whose 10 least significant bits are 1 Useful in demonstrating asymptotics Memory and runtime are governed purely by the size of the system
Grover’s Algorithm: Results using Mod 1024 Oracle For data up to 25 qubits, linear least- squares regression shows that memory (MB) varies as 7.5922 + 0.0410n Linear Growth using QuIDDPro
Conclusions and Future Work Asymptotic performance close to ideal quantum computers in certain cases E.g. when QuIDD form of oracle is poly-sized QuIDDPro: Ideal Quantum Computer: Far more efficient than other classical simulation techniques in every other case MATLAB: Blitz++: We plan to simulate other algorithms like Shor’s using QuIDDPro Details in quant-ph/0208003
References  C.Y. Lee, “Representation of Switching Circuits by Binary Decision Diagrams”, Bell System Technical Jour., 38:985-999, 1959.  R. Bryant, “Graph-Based Algorithms for Boolean Function Manipulation”, IEEE Trans. On Computers, vol. C-35, pp. 677-691, Aug 1986.  R. I. Bahar et al., Algebraic Decision Diagrams and their Applications”, In Proc. IEEE/ACM ICCAD, pp. 188- 191, 1993.  E. Clarke et al., “Multi-Terminal Binary Decision Diagrams and Hybrid Decision Diagrams”, In T. Sasao and M. Fujita, eds, Representations of Discrete Functions, pp. 93-108, Kluwer, 1996.  M. Boyer et al., “Tight Bounds on Quantum Searching”, Fourth Workshop on Physics and Computation, Boston, Nov 1996.