ABSTRACT Title of Dissertation: ENGINEERING A CONTROL SYSTEM FOR A LOGICAL QUBIT-SCALE TRAPPED ION QUANTUM COMPUTER Andrew Russ Risinger Doctor of Philosophy, 2022 Dissertation Directed by: Professor Christopher Monroe Department of Physics Joint Quantum Institute Quantum computing is a promising field for continuing to develop new computing capabilities, both in its own right and for continued gains as Moore’s Law growth ends. Trapped ion quantum computing is a leading technology in the field of quantum com- puting, as it combines the important characteristics of high fidelity operations, individual addressing, and long coherence times. However, quantum computers are still in their in- fancy; the first quantum computers to have more than a handful of quantum bits (qubits) are less than a decade old. As research groups push the boundaries of the number of qubits in a system, they are consistently running into engineering obstacles preventing them from achieving their goals. There is effectively a knowledge gap between the physicists who have the capability to push the field of quantum computing forward, and the engineers who can design the large-scale & reliable systems that enable pushing those envelopes. This thesis is an attempt to bridge that gap by framing trapped ion quantum computing in a manner accessible to engineers, as well as improving on the state-of-the-art in quantum computer digital and RF control systems. We also consider some of the practical and theoretical engineering challenges that arise when developing a leading-edge trapped ion quantum computer capable of demon- strating error-corrected logical qubits, using trapped 171Yb+ qubits. There are many fun- damental quantum operations that quantum information theory assumes, yet which are quite complicated to implement in reality. First, we address the time cost of rearranging a chain of ions after a scrambling collision with background gases. Then we consider a gate waveform generator that reduces programming time while supporting conditional quan- tum gates. Next, we discuss the development of a digital control system custom-designed for quantum computing and quantum networking applications. Finally, we demonstrate experimental results of the waveform generator executing novel gate schemes on a chain of trapped ions. These building blocks together will unlock new capabilities in the field of trapped ion quantum computers. ENGINEERING A CONTROL SYSTEM FOR A LOGICAL QUBIT-SCALE TRAPPED ION QUANTUM COMPUTER by Andrew Russ Risinger Dissertation submitted to the Faculty of the Graduate School of the University of Maryland, College Park in partial fulfillment of the requirements for the degree of Doctor of Philosophy 2023 Advisory Committee: Professor Christopher Monroe, Chair/Advisor Professor Ronald Walsworth Professor Donald Yeung Professor Norbert M. Linke Professor Christopher Jarzynski © Copyright by Andrew Russ Risinger 2023 Dedication To my grandmother, Darlene Floss. ii Acknowledgements All of the work that is presented here is the culmination of many people’s designs, efforts, and discussions. To everyone who made this work possible, a great many thanks. First, I would like to thank my family who encouraged my interest in engineering, and made it a viable career path. Mom, Dad, Zach, and Josh, I am ever grateful for my formative years growing up with you. My wife, Kate, is simply the most supportive person. She encouraged me as I chose a career path that caused us to be apart during the beginning of graduate school, and then sacrificed to move to Maryland as I finished graduate school. She was continuously uplifting as I struggled with long days, long nights, and doubts about my career path. Words cannot express how thankful I am. There are too many people to name who exposed me to the potential of a graduate degree in quantum computing, but a few deserve special mention. First, I am thankful for Jeff Leavitt and Charley Adams who allowed a college intern to transition from test engi- neering to learning about superconducting circuits. There were many Northrop Grumman employees who taught me about superconducting circuits and encouraged me to pursue a graduate degree, especially Sergey Novikov, Zach Keene, Moe Khalil, and John Fusco. Finally, Ken Zick gave me a chance to work on the exciting IARPA QEO program, and my first taste of graduate research into computer architectures for quantum computers. iii On top of individuals, I am also thankful for Northrop Grumman Corporation and its employees as a whole, who provided scholarships, internships when circumstances were difficult, and opened career paths that I did not foresee out of high school. Next, I would like to thank my advisor Christopher Monroe for accepting a com- puter engineer with little physics background into his research group. I grew so much through exposure to many different topics that I had no experience in. I am also thankful for the many students comprising the diverse group of ion trappers at UMD, who were unendingly friendly and open to sharing knowledge both work-related and fun-related. I would like to acknowledge all the EURIQA labmates, both current and former, whose tireless work brought our lab from an idea to a (usually) functioning ion trap quan- tum computer. In rough chronological order: Jason Amini, Jonathan Mizrahi, Kai Hudek, Marko Cetina, Kristin Beck, Michael Goldman, Kevin Landsman, Laird Egan, Daiwei Zhu, Bahaa Harraz, Crystal Noel, Debopriyo Biswas, Or Katz, Lei Feng, and Yichao Yu. While I did not work directly with all of you, your efforts and dedication made the work of EURIQA Breadboard possible. You are all also responsible for teaching me everything that I know about trapping ions. Kristi Beck, Wen Lin Tan, Mika Chmielewski, and Crystal Noel were all especially kind and welcoming. We had many great lunches and random events, discussing a wide variety of shared interests such as board games, mac and cheese, Ultimate Frisbee, climb- ing, art, and many others. I am also thankful for my Electrical and Computer Engineering graduate student friend group: Rajdeep, Devesh, Omid, Abhishek, Ankit, Ananth, Jooik, Sheung, & Austin. Thank you for the friendship during the many classes, hangout sessions, and iv study breaks. You helped UMCP feel like home. Thank you also to David and Tristan for the friendship and great experiences playing IM volleyball together, at a time when I was feeling very stressed. Thank you to the UMD ECE staff, who were essential in fostering a welcoming and healthy atmosphere, and for a lot of guidance: Melanie Prange, Emily Irwin, and Bill Churma. To the many friends that I have made over the years who supported me, you know who you are and you are ever in my heart. Friends from Mt. Hebron High School, 1MC, Alpha Sigma AΣ, Grove City College, Aletheia College Park, and many others. Finally, I must again acknowledge the support and love of my wife Kate. A PhD is a long never-ending journey, and you were there every step of the way. v Table of Contents Dedication ii Acknowledgements iii Table of Contents vi List of Tables x List of Figures xi List of Program Listings xiii List of Abbreviations and Definitions xiv Chapter 1: Introduction 1 1.1 Classical Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Quantum Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2.1 Applications of Quantum Computing . . . . . . . . . . . . . . . 4 1.2.2 Current State of Quantum Computing . . . . . . . . . . . . . . . 4 1.3 Chapter Summaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.1 Chapter 1: Introduction . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.2 Chapter 2: Quantum Computing Basics . . . . . . . . . . . . . . 5 1.3.3 Chapter 3: Ion Trap Quantum Computing . . . . . . . . . . . . . 5 1.3.4 Chapter 4: Control System Design . . . . . . . . . . . . . . . . . 6 1.3.5 Chapter 5: RFSoC-based Coherent Control System . . . . . . . . 6 1.3.6 Chapter 6: PulseCompiler Waveform Synthesis & Specification . 7 1.3.7 Chapter 7: Experiments with Ion Trap Control System . . . . . . 7 1.3.8 Chapter 8: Advanced Ion Trap Operations . . . . . . . . . . . . . 7 1.3.9 Appendices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Chapter 2: Quantum Computing Basics 10 2.1 Quantum Computing Overview . . . . . . . . . . . . . . . . . . . . . . . 10 2.1.1 Motivation for Quantum Computing . . . . . . . . . . . . . . . . 10 2.2 Quantum vs Classical Computing . . . . . . . . . . . . . . . . . . . . . 11 2.2.1 Criteria for a Quantum Computer . . . . . . . . . . . . . . . . . 12 2.3 Quantum States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.1 Digital States . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 vi 2.3.2 Qubit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.3 Multi-Qubit States . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3.4 Key Quantum Physics Principles . . . . . . . . . . . . . . . . . . 23 2.4 Quantum Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.4.1 State Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.4.2 Single-Qubit Operations . . . . . . . . . . . . . . . . . . . . . . 30 2.4.3 Multi-Qubit Operations . . . . . . . . . . . . . . . . . . . . . . . 31 2.4.4 Quantum State Readout . . . . . . . . . . . . . . . . . . . . . . 32 2.5 Quantum Algorithm Abstractions . . . . . . . . . . . . . . . . . . . . . . 33 2.5.1 Quantum Circuit Model . . . . . . . . . . . . . . . . . . . . . . 35 2.6 Breaking Abstractions: Hardware Details . . . . . . . . . . . . . . . . . 40 2.6.1 Qubit labels: Physical vs Virtual . . . . . . . . . . . . . . . . . . 40 2.6.2 Qubit Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.6.3 Native Gate Set . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.7 Alternative Quantum Computing Paradigms . . . . . . . . . . . . . . . . 45 2.7.1 Quantum Simulation vs Gate-Model . . . . . . . . . . . . . . . . 46 2.7.2 Adiabatic Quantum Computing vs Gate-Model . . . . . . . . . . 47 Chapter 3: Ion Trap Quantum Computing 50 3.1 What is a Trapped Ion Quantum Computer? . . . . . . . . . . . . . . . . 50 3.2 Ytterbium Ions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3 Ion Trap Physical Hardware . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.1 Ion Trap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3.2 Out-of-Vacuum Components . . . . . . . . . . . . . . . . . . . . 58 3.4 171Yb+ Atomic Physics . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.4.1 What are atomic levels? . . . . . . . . . . . . . . . . . . . . . . 60 3.4.2 171Yb+ Atomic Levels . . . . . . . . . . . . . . . . . . . . . . . 62 3.5 Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.6 Ion (Non-Qubit) Operations . . . . . . . . . . . . . . . . . . . . . . . . 64 3.6.1 Ion Loading Operations . . . . . . . . . . . . . . . . . . . . . . 65 3.6.2 State Preparation Operations . . . . . . . . . . . . . . . . . . . . 67 3.6.3 State Measurement Operations . . . . . . . . . . . . . . . . . . . 72 3.6.4 Ion Chain Operations . . . . . . . . . . . . . . . . . . . . . . . . 76 3.7 Qubit Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.7.1 Raman Operations . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.7.2 Single-Qubit Operations . . . . . . . . . . . . . . . . . . . . . . 88 3.7.3 Multi-Qubit Operations . . . . . . . . . . . . . . . . . . . . . . . 92 3.8 Experiment Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 3.8.1 Pre-Experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 3.8.2 State Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . 98 3.8.3 Experiment Execution . . . . . . . . . . . . . . . . . . . . . . . 98 3.8.4 State Measurement/Readout . . . . . . . . . . . . . . . . . . . . 100 Chapter 4: Control System Design 102 4.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 vii 4.2 Quantum Computers as Embedded Systems . . . . . . . . . . . . . . . . 103 4.2.1 Challenges of Quantum Embedded Systems . . . . . . . . . . . . 103 4.3 Comparing Existing Qubit Support System Requirements . . . . . . . . . 106 4.4 Control System Realms . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.5 Ion Trap DAC Control . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 4.6 Digital Control System . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.7 ARTIQ Experiment Design . . . . . . . . . . . . . . . . . . . . . . . . . 112 Chapter 5: RFSoC-based Coherent Control System 116 5.1 Need for Flexible Waveform Control . . . . . . . . . . . . . . . . . . . . 116 5.2 Waveform Generation Trade-offs . . . . . . . . . . . . . . . . . . . . . . 117 5.2.1 Waveform Generation Requirements . . . . . . . . . . . . . . . . 117 5.3 RFSoC System Description . . . . . . . . . . . . . . . . . . . . . . . . . 120 5.4 RFSoC Physical Hardware . . . . . . . . . . . . . . . . . . . . . . . . . 121 5.5 RFSoC Feature Breakdown . . . . . . . . . . . . . . . . . . . . . . . . . 124 5.5.1 RFSoC Frequency Feedforward . . . . . . . . . . . . . . . . . . 127 5.5.2 RFSoC Pulse Control . . . . . . . . . . . . . . . . . . . . . . . . 128 5.5.3 RFSoC Crosstalk . . . . . . . . . . . . . . . . . . . . . . . . . . 137 5.5.4 RFSoC Single-channel Frequency Synchronization . . . . . . . . 139 5.5.5 RFSoC Real-Time Pulse Feedback . . . . . . . . . . . . . . . . . 140 5.6 RFSoC Inputs & Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . 142 5.6.1 RFSoC Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 5.6.2 RFSoC Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 5.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Chapter 6: PulseCompiler Waveform Synthesis & Specification 144 6.1 PulseCompiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 6.1.1 PulseCompiler Overview . . . . . . . . . . . . . . . . . . . . . . 146 6.1.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.1.3 Uploading to A RFSoC . . . . . . . . . . . . . . . . . . . . . . . 150 6.2 RFSoC Output Modulation . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.3 OpenPulse Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 6.3.1 Why OpenPulse? . . . . . . . . . . . . . . . . . . . . . . . . . . 152 6.3.2 PulseCompiler vs OpenPulse Assumptions . . . . . . . . . . . . 153 6.3.3 PulseCompiler & OpenPulse Schedules . . . . . . . . . . . . . . 153 6.4 Converting Circuits to RFSoC Output . . . . . . . . . . . . . . . . . . . 155 6.4.1 What is a Qiskit Backend? . . . . . . . . . . . . . . . . . . . . . 158 6.4.2 Schedule to Channel Sequence Conversion . . . . . . . . . . . . 159 Chapter 7: Experiments with Ion Trap Control System 161 7.1 Experiments Enabled by RFSoC Control System . . . . . . . . . . . . . 161 7.2 N-Body Gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 7.2.1 N-body Gate Scheme . . . . . . . . . . . . . . . . . . . . . . . . 163 7.2.2 Executing N-Body Gate . . . . . . . . . . . . . . . . . . . . . . 168 7.2.3 N-Body Gate Results . . . . . . . . . . . . . . . . . . . . . . . . 176 viii Chapter 8: Advanced Ion Trap Operations 179 8.1 Ion Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 8.1.1 Center-Ion Indexing . . . . . . . . . . . . . . . . . . . . . . . . 182 8.2 Ion Split-Merge Overview . . . . . . . . . . . . . . . . . . . . . . . . . 184 8.3 Ion Chain Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 8.3.1 Chain Sorting Operation . . . . . . . . . . . . . . . . . . . . . . 188 8.3.2 Chain Sorting Algorithm . . . . . . . . . . . . . . . . . . . . . . 191 8.3.3 Comparison of Recalibration vs Sorting Time Cost . . . . . . . . 194 8.4 Ion-Photon Entanglement Generator . . . . . . . . . . . . . . . . . . . . 200 Chapter 9: Outlook 203 Appendix A: Python: Distribution and Best Practices 205 A.1 Python Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 A.2 Python Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 A.2.1 Python Libraries Overview . . . . . . . . . . . . . . . . . . . . . 207 A.2.2 Python Package Managers . . . . . . . . . . . . . . . . . . . . . 208 A.2.3 Python Environments . . . . . . . . . . . . . . . . . . . . . . . . 208 A.3 Python Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 A.3.1 Recommended Development Tools . . . . . . . . . . . . . . . . 210 A.3.2 Profiling & Optimization . . . . . . . . . . . . . . . . . . . . . . 211 A.3.3 Cython: Compilation from Python to Native Code . . . . . . . . 213 Appendix B: Git and its Usage in Physics Experiments 216 B.1 Git Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 B.1.1 How does Git work? . . . . . . . . . . . . . . . . . . . . . . . . 216 B.1.2 Git for Beginners . . . . . . . . . . . . . . . . . . . . . . . . . . 217 B.2 Git in Physics Experiment . . . . . . . . . . . . . . . . . . . . . . . . . 220 B.2.1 Requirements for a Physics Experiment . . . . . . . . . . . . . . 221 B.2.2 Suggested Git Workflow . . . . . . . . . . . . . . . . . . . . . . 222 Appendix C: Nix: Deterministic, Reproducible Software 226 C.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 C.2 What is Nix? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 C.2.1 Cryptographic Hashes & Nix Store . . . . . . . . . . . . . . . . 228 C.3 Nix Package Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 C.4 Using Nix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 C.4.1 Example Nix Environment . . . . . . . . . . . . . . . . . . . . . 231 C.4.2 Full Reproducibility . . . . . . . . . . . . . . . . . . . . . . . . 236 C.4.3 Other Recommended Nix Tools . . . . . . . . . . . . . . . . . . 239 C.5 Nix usage in EURIQA . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Bibliography 242 Index 260 ix List of Tables 2.1 Comparison of fundamental concepts of Classical Digital Logic vs Quan- tum Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 Common Quantum Operators and their different representations. . . . . . 21 3.1 Key Hardware Components of the EURIQA Breadboard Ion Trap System. 53 3.2 Main transition wavelengths in an 171Yb+ qubit. . . . . . . . . . . . . . . 65 3.3 Example of Ion Chain Operations. . . . . . . . . . . . . . . . . . . . . . 76 4.1 Comparison of Required Control Hardware for Trapped Ion & Supercon- ducting Quantum Computers. . . . . . . . . . . . . . . . . . . . . . . . . 106 5.1 Comparison of different waveform generation hardware implementations. 120 5.2 Comparison of selected Xilinx RFSoC Platforms. . . . . . . . . . . . . . 122 5.3 Summary of BOM for Custom ZCU111 Enclosure for use with Octet. . . 123 5.4 RFSoC Pulse Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . 125 A.1 Comparison of Python Package Managers . . . . . . . . . . . . . . . . . 208 A.2 Suggested Python Development Tools. . . . . . . . . . . . . . . . . . . . 211 B.1 Common Git Command Reference. . . . . . . . . . . . . . . . . . . . . 220 C.1 Breakdown of Nix environment description sections (from Listing C.1). . 234 x List of Figures 2.1 Bloch sphere representation of |0⟩ . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Trivial measurement of a qubit. . . . . . . . . . . . . . . . . . . . . . . . 33 2.3 Quantum circuit diagram of a Bell circuit. . . . . . . . . . . . . . . . . . 35 2.4 Quantum circuit diagram with parallel operations. . . . . . . . . . . . . . 35 2.5 Example Qubit Connectivity Graphs for Nqubits = 4. . . . . . . . . . . . 43 2.6 Example Landscape of an Optimization Problem. . . . . . . . . . . . . . 48 3.1 Diagram of common ion trap types. . . . . . . . . . . . . . . . . . . . . 55 3.2 Sandia HOA 2 surface electrode ion trap. . . . . . . . . . . . . . . . . . 56 3.3 Diagram of the atomic energy levels of 171Yb+ ions. . . . . . . . . . . . . 63 3.4 171Yb+ Optical Pumping State Diagram. . . . . . . . . . . . . . . . . . . 71 3.5 171Yb+ Readout State Diagram. . . . . . . . . . . . . . . . . . . . . . . . 73 3.6 Example of light collection aligning then anti-aligning with ion(s). . . . . 79 3.7 Diagram of forces on 4 ions in a chain. . . . . . . . . . . . . . . . . . . . 83 3.8 Axes of an ion in a harmonic trap. . . . . . . . . . . . . . . . . . . . . . 93 3.9 Five ions trapped in a quartic potential. . . . . . . . . . . . . . . . . . . . 94 3.10 Diagram of a standard experiment cycle using trapped ion qubits. . . . . . 97 3.11 Sequence of Qubit State Initialization. . . . . . . . . . . . . . . . . . . . 99 3.12 Sequence of Qubit State Readout. . . . . . . . . . . . . . . . . . . . . . 101 4.1 Diagram of the various experimental timescales and their corresponding control realm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 4.2 Simulated Frequency Response of EURIQA ≈ 1 kHz Filter. . . . . . . . 110 4.3 Example ARTIQ Laboratory network. . . . . . . . . . . . . . . . . . . . 113 5.1 Example Triangle Wave Amplitude. . . . . . . . . . . . . . . . . . . . . 130 5.2 Example of a single-channel square amplitude waveform. . . . . . . . . . 135 6.1 Primary pulsecompiler classes, as a UML class diagram. . . . . . . 147 6.2 Graph of how a data word is transferred to and interpreted by the Octet RFSoC gateware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.3 Diagram of the different inputs needed to convert a Qiskit QuantumCircuit to a ChannelSequence. . . . . . . . . . . . . . . . . . . . . . . . . . 156 6.4 Diagram of the order of operations for converting a QuantumCircuit to run on an RFSoC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 7.1 Native N-body operations of a trapped-ion quantum processor. . . . . . . 165 7.2 3-body entangling gates (3-Toffoli) . . . . . . . . . . . . . . . . . . . . . 169 xi 7.3 Demonstration of Quantum phase-gates on three ions. . . . . . . . . . . . 171 7.4 Characterization of a three-body interaction gate. . . . . . . . . . . . . . 172 7.5 Experimental N-Body gate sequences. . . . . . . . . . . . . . . . . . . . 174 7.6 Effective Hamiltonians with three- and four-body interactions. . . . . . . 175 7.7 Raw measurement statistics for the XXX(π 4 ) gate. . . . . . . . . . . . . . 177 8.1 Ion Physical Qubit Indexing Options . . . . . . . . . . . . . . . . . . . . 181 8.2 Example auto-generated ion chain configuration for Nions = 5. . . . . . . 194 8.3 Simulation of the number of swaps to reconfigure a randomly-scrambled 25-ion chain, with 1 : 1 computational to coolant ion ratio. . . . . . . . . 195 8.4 Simulation of the number of swaps to reconfigure a randomly-scrambled N-ion chain, with 1 : 1 computational to coolant ion ratio. . . . . . . . . . 196 8.5 Effect of ratio of computational to coolant ions on the number of swaps needed to sort a scrambled 25-ion chain. . . . . . . . . . . . . . . . . . . 197 A.1 Example of AOM Transmission Saturation as a function of RF Drive Power.214 xii Listings 6.1 Example of creating and printing a simple Qiskit Schedule. . . . . . . . . 159 8.1 Pseudocode for assigning sorted ion indices to an arbitrary chain ordering. 192 A.1 Hello World program in Python . . . . . . . . . . . . . . . . . . . . . . . 206 C.1 Nix ARTIQ Environment example. Filename: shell.nix . . . . . . . 231 C.2 ARTIQ 7 shell environment definition using Nix flake format. Filename: flake.nix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 C.3 Example of Patching a Nix package to fix a software bug . . . . . . . . . 238 xiii List of Abbreviations and Definitions Abbreviations 2D 2-Dimensional (planar). 3D 3-Dimensional ADC Analog-to-Digital Converter AESA Active Electronically-Scanned Array. A class of radar. AI Artificial Intelligence AM Amplitude Modulation AOM Acousto-Optical Modulator AQC Adiabatic Quantum Computing ARTIQ Advanced Real-Time Infrastructure for Quantum physics. Control software and hardware ecosystem optimized for academic quantum physics experiments, Python- based. AWG Arbitrary Waveform Generator BOM Bill of Materials. List of all parts that are included in a system. C Celsius CMOS Complementary Metal-Oxide-Semiconductor COTS Commercial Off-the-Shelf. Referring to a solution that can be commercially pur- chased without requiring modification. CPU Central Processing Unit. The main compute unit in a computer/PC. Cryo Cryogenic. Generally referring to very low-temperature environments, approxi- mately ≤ 10K in this context. DAC Digital-to-Analog Converter. Produces analog output voltages. DC Direct Current. Can also mean low-frequency (compared to RF). xiv DDS Direct Digital Synthesis. Method of producing arbitrary-frequency RF output us- ing a digital device (e.g. FPGA). DIO Digital Input/Output. Synonym for GPIO. DMA Direct Memory Access. Method of transferring memory blocks directly from one device to another without per-block CPU commands. DRTIO Distributed Real-Time Input/Output. System for remotely commanding Input/Out- put events across ARTIQ FPGAs. DSL Domain-Specific Language EOM Electro-Optical Modulator F Fahrenheit FIFO First-In-First-Out. Similar to a queue at an amusement park. FM Frequency Modulation FMC FPGA Mezzanine Card. Standardized high-density FPGA breakout connector. FPGA Field-Programmable Gate Array. Reconfigurable digital logic IC, typically mounted on a PCB. GLUT Gate LUT GPIO General Purpose Input/Output pins. Generally refers to digital I/O pins. GRPC Go RPC protocol GUI Graphical User Interface. A user-facing software interface. HDL Hardware Description Language HOA High-Optical Access. Typically refers to the HOA 2.1.1 produced by Sandia Na- tional Laboratories HPC High-Performance Computing. Sometimes also known as a supercomputer, where the primary goal is number-crunching and not data storage/retrieval. HVAC Heating, Ventilation, and Air Conditioning I/O Input(s)/Output(s) IC Integrated Circuit IDE Integrated Development Environment. Generally a text editor with extra features optimized for software development. xv IF Intermediate Frequency. A signal that has been mixed down from its nominal frequency to be easier to process. IP Intellectual Property ISA Instruction Set Architecture. Set of instructions that are natively available on a computing system, e.g. x86. LAN Local Area Network LogiQ IARPA Program aiming to create & characterize an error-corrected logical qubit. LUT Look-Up Table. A data structure commonly used in FPGAs where entries are given an index (address), by which they can be retrieved. Generally very fast access times but small storage space. MB Megabytes. The capital B refers to bytes (8 bit), in contrast to Mb. Equivalent to 220 bytes. Mb Megabits. 220 bits. ML Machine Learning MLUT Memory Map LUT. Sometimes called Sequence LUT (SLUT). MR Merge Request. See also Pull Request. MS Refers to a Mølmer-Sørensen gate, described in Section 3.7.3, from [1, 2, 3] mu Machine Units. See entry for Machine Units. NA Numerical Aperture. A measure of how much angle that a lens will collect light from. Higher values collect light from a large angle. NUR Nix User Repository. Collection of unofficial, user-submitted Nix packages. PC Personal Computer PCB Printed Circuit Board PID Proportional-Integral-Derivative. A standard type of locking mechanism [4]. PLUT Pulse LUT PM Phase Modulation PMT Photo-Multiplier Tube. Used for collecting weak light signals, e.g. collecting single photons. PR Pull Request PWB Printed Wiring Board. Synonym for PCB. xvi QUBO Quadratic Unconstrained Binary Optimization. QUBO Quadratic Unconstrained Binary Optimization RC Resistor-Capacitor. A common low-pass filter design. RF Radio Frequency. Typically ≥ 1MHz RFSoC RF System-on-a-Chip (SOC). FPGA System that combines radio-frequency ADC & DAC I/Os with FPGA reconfigurable logic & an embedded Arm CPU. RISC Reduced Instruction Set Computer [5, 6]. RPC Remote Procedure Call. Command from one device to another to execute some function. Sa Sample. For an AWG, the output at one unit of time. SBC Sideband Cooling. Cooling scheme to reduce temperature beyond the Doppler limit. SI Système Internationale. Refers to International System of Units, roughly the met- ric system. SNR Signal-to-Noise Ratio. Measure of how differentiated a desired measurement sig- nal is against background noise. SPAM State Preparation & Measurement. Errors in either preparing the initial qubit states, or measuring the state of a qubit. SPI Serial Peripheral Interface. Real-time digital communication protocol. UML Unified Markup Language URL Uniform Resource Locator. Generally the address that a website/file can be found on the Internet. VM Virtual Machine WSL Windows Subsystem for Linux. A VM that can be run easily on a Microsoft Windows machine. Companies/Organizations AMD Advanced Micro Devices, Inc.CPU designer and manufacturer, owner of Xilinx. Arm Semiconductor company specializing in embedded CPU designs & instruction sets. xvii EURIQA Error-corrected Universal Reconfigurable Ion-trap Quantum Archetype. A col- laboration on the IARPA LogiQ program. Collaboration between the research groups of Jungsang Kim, Christopher Monroe, and Ken Brown, as well as the companies AOSense, ColdQuanta, and L3Harris. IARPA Intelligence Advanced Research Projects Agency. US Government agency. IBM International Business Machines. Makes superconducting quantum computers. L3Harris Defense Contracting Company. In this context, they develop AOM Cells. SNL Sandia National Laboratories. Part of the US Department of Energy (DOE). Xilinx FPGA Manufacturer. Subsidiary of AMD. Definitions Gateware Refers to the digital logic programming encoded on an FPGA. This is equiva- lent to the code that is written in HDLs such as Verilog or VHDL. Machine Units Binary integer corresponding to native digital units that an embedded de- vice uses to approximate a physical quantity. E.g. a digital device cannot represent an exact arbitrary frequency, but will approximate it to the nearest frequency in its resolution. Nix A software program to deterministically build any file/software package. See Ap- pendix C for more information. Octet Waveform generation software written by SNL that runs on Xilinx RFSoCs. This is a combination of “gateware” (HDL) & firmware running on the FPGA’s CPU. Python A popular programming language. See more information in Appendix A. Qiskit IBM Qiskit python package. Used for defining and executing quantum circuits & pulse schedules. Number sets i, j Imaginary Numbers C Class of all complex numbers Other symbols exp Exponential. Shorthand for raising the following argument as the exponent for e. expx ≡ ex. 02 A value in base-2 (binary) consisting of the value zero (0). A subscript of 10 denotes a base-10 (decimal) number. xviii PyPi Python Packaging Index. Repository for source code and pre-built Python pack- ages that can be easily downloaded. q[0] Denotes the first qubit in a quantum register, sorted by index. Physics constants/symbols n̄ Average motional quanta (phonons) in a quantum system. ˙̄n Derivative of the number of motional quanta (phonons) in a system. If positive, the system is “heating”, so this quantity is often called the “heating rate”. λ Wavelength, typically of light. ν Frequency, typically of light. τ Lifetime in a particular atomic state, measured as the 1 e decay time. Assumes exponential decay. fcarrier The difference in frequency between |F = 0,mF = 0⟩ and |F = 1,mF = 0⟩, equal to 12.642 812 118 466GHz. |Ψ⟩ Arbitrary quantum state. |1⟩ Qubit computational state in the z-basis, analogous to 12. Opposite of |0⟩. |0⟩ Qubit computational state in the z-basis, analogous to 02. Default value that qubits are initialized to. 171Yb+ Ytterbium weighing 171 atomic mass units, singly-ionized. This is the primary ion considered in this work. Ar Argon Ba Barium (atomic element) H Hydrogen K Kelvin. Unit of temperature measurement, where 0K is absolute zero, the lowest possible temperature. 0K ≡ −273.15 ◦C N Nitrogen Yb Ytterbium (atomic element) xix Chapter 1: Introduction 1.1 Classical Computers Classical computers have driven many of the new capabilities of the 20th and 21st cen- turies. It is difficult to find a research field that has not greatly benefited or been funda- mentally changed by the advent of computers, in fields as diverse as mathematics [7] and agriculture [8]. The original computers were originally optimized for specific tasks such as ballis- tic targeting or cracking encryption codes [9]. The growth explosion truly began once computers changed their medium to electronic. Electronic computers have been built primarily on the back of the transistor, which is at the heart of every modern electronic device. The most popular transistor was originally the vacuum tube, but these were su- perseded by the semiconductor transistor, which enabled the rise of the microprocessor and ubiquitous personal computers [10]. While these innovations have come about due to the efforts of many millions of people over the past century, they all use the same fundamental computing paradigm, which we call classical computing. Classical computing is based on the fundamentals of boolean logic [11]. While boolean logic is quite useful, it is not a native way of describing our world. The world is analog, not binary. Digital systems are an approximation of the 1 complexities of the world, and that approximation has limitations. In addition to this approximation, ever-more-complex applications and computa- tions depend on impressive increases in computational power. Commonly referred to as Moore’s law, this idea extrapolates that twice as many semiconductor transistors will fit in the same area every two years [12]. 1 Despite the best efforts of the semiconductor industry, this exponential growth cannot continue forever. 2 To continue increasing computational power, there are now essentially two paths: • Continual Incremental Gains: Continue down the path of researching improved ma- terials, computer architectures, cooling solutions, etc. This will continue to provide gains, but they will likely be incremental and of diminishing returns. • Rethink the Computing Paradigm: An alternative is a complete redesign of how we compute. Some leading candidates include Artificial Intelligence/Machine Learn- ing (AI/ML) [15], optical computing [16], cryogenic computing [14], and quantum computing [17, 18]. 1An often-overlooked part of Moore’s law is that by doubling the transistors per unit area, the heat generated per unit area is also increased. There is a thermodynamic limit to how much heat energy can be removed using common cooling solutions (e.g. fans) [13]. More exotic cooling solutions are possible, but they are difficult to mass-produce, either due to exotic materials such as cryogenics, or high power requirements. Approaches such as digital cryogenic computing [14] attempt to significantly lower the power dissipation of computing, while retaining the same fundamental digital approach of classical computers. 2There are other ways to increase compute speed even if transistor density cannot be increased at the desired rate. One such field is referred to as computer architecture [5, 6]. Put simply, computer architecture is the field of contriving better ways to process instructions and data to compute faster or more efficiently. 2 1.2 Quantum Computing Quantum computing is a field which leverages quantum physics to perform operations that would not be otherwise possible. Instead of restricting values to either 02 or 123, the fundamental value in quantum computing, a qubit, can be both |0⟩ & |1⟩, or an arbitrary superposition of those two (Eq. (2.1)). Quantum computing will be described more fully in Chapter 2. Using quantum information instead of digital information should make feasible cer- tain classes of problems which are intractable on classical computers [17]. However, not every problem will benefit from running on a quantum computer, and quantum comput- ers are not yet powerful enough to demonstrate all of their potential. In the meantime, more scientific and engineering research needs to be performed to enable the potential groundbreaking capabilities. The goal of this thesis is to provide an overview of the cur- rent state-of-the-art of one particular implementation of a quantum computer, based on trapped ion technology, and describe some of the steps that we have made to improve future trapped ion quantum computer implementations. Building and operating a trapped ion quantum computer requires a wide variety of expertise, including the fields of physics, computer science, electrical engineering, com- puter engineering, and mechanical engineering. Quantum computing pushes the bound- aries of each of these fields due to its extreme requirements. This thesis focuses on the electrical and computer engineering implications of trapped ion quantum computing. A particular emphasis is placed on the control hardware, soft- 3The N2 subscript denotes a binary-encoded number (i.e. base-2). 3 ware, and computer architecture requirements needed to operate a high-fidelity (≥ 99% 2-qubit gate fidelity) trapped ion quantum computer with more than 10 qubits. 1.2.1 Applications of Quantum Computing Quantum computing’s applications are still being defined. Some examples of these in- clude simulating quantum physics/systems [19], chemical interactions between atoms/- molecules [20, 21], and nuclear physics and material simulations, as summarized in [22]. Even if none of these applications prove practical, there is still a benefit to research- ing applications of quantum computing. Lessons learned from developing quantum algo- rithms have been fed back into improving classical algorithms [23, 24]. 1.2.2 Current State of Quantum Computing It is important to not mistake the great potential of quantum computing for the current state of quantum computers. The state of the quantum computing industry is still rela- tively in its infancy. 4 1.3 Chapter Summaries 1.3.1 Chapter 1: Introduction This chapter covers an introduction to classical computing and quantum computing. We also discuss applications where quantum computing shows promise to yield impressive 4The analogy that I like to use is that quantum computers are currently in the same state as classical computers in the 1960s. They currently occupy massive amounts of space (roughly the size of a room), they are inefficient, and are only useful for a few highly specialized computations. Only with much engineering work, and the advent of the semiconductor transistor, were they able to shrink and proliferate. 4 speedups over classical approaches, or to enable solving certain problems that would not be possible using the traditional approaches. 1.3.2 Chapter 2: Quantum Computing Basics Next, we introduce many of the fundamental quantum computing terms and concepts that are needed to understand the concepts in this thesis. This information is presented to be understandable to those with a typical electrical/computer engineering background, assuming familiarity with linear algebra. We discuss the fundamentals of quantum infor- mation, including how a specific instance of a quantum algorithm is specified in a quan- tum circuit. Then we introduce some of the practical problems that arise when trying to implement these theoretical concepts on a physical system. Finally, we briefly introduce alternative paradigms of quantum computing other than the circuit model. 1.3.3 Chapter 3: Ion Trap Quantum Computing In this chapter we discuss one implementation of a quantum computer, using qubits en- coded in trapped ions. We cover the physical hardware that comprises a trapped ion quantum computer and how we elected to encode information in trapped Ytterbium-171 ions (171Yb+). 5 Finally, we discuss how those states are manipulated to execute quantum operations (gates). 5There are many different ion species other than 171Yb+ that can be used in quantum computing, but we will primarily focus on this particular ion. 5 1.3.4 Chapter 4: Control System Design After understanding how an 171Yb+ trapped ion quantum computer is designed at a high level, it is important to consider how that system is controlled to actually execute the de- sired quantum operations. There are two primary real-time control systems for a quantum computer: • Digital Control: sequences digital input & output operations, and controls the ini- tialization and readout of the ions. • Qubit Control: controls the quantum state of a qubit. This is generally performed using radio frequency signals to manipulate the quantum state (see Chapter 5). This control system is built primarily on top of ARTIQ [25], and uses an FPGA for in- put/output logic coupled with a soft CPU core6 to generate real-time control outputs and read in real-time input signals. We detail the design considerations of a trapped ion con- trol system, and consider the different devices that must be synchronized to control a trapped ion quantum computer. 1.3.5 Chapter 5: RFSoC-based Coherent Control System This chapter describes the waveform generator system based on a Xilinx RFSoC FPGA that was produced by partners at Sandia National Laboratories, and how it is used to generate gate waveforms in real time. We present the trade-offs between different options for waveform generators, and discuss the performance benefits in terms of experiment 6A soft CPU core means that the CPU is embedded in the FPGA logic fabric, and is not a single-function pre-designed block. Using a soft CPU core generally incurs a power and performance penalty. 6 cycle and data transfer that can be achieved by using arbitrary waveform generator (AWG) alternatives. 1.3.6 Chapter 6: PulseCompiler Waveform Synthesis & Specification To put the RFSoC-based waveform generator to use in executing quantum circuits, users must write a transformation from a quantum circuit to the associated waveforms to ex- ecute that circuit. This chapter discusses the framework that we developed based on waveform features of IBM’s Qiskit software[26, 27], and the translation layers to convert between a Qiskit circuit to a Qiskit schedule and then finally to the programming data that is sent to an RFSoC for execution. 1.3.7 Chapter 7: Experiments with Ion Trap Control System Given the infrastructure to program and execute circuits on a quantum computer, the obvious next step is to use the quantum computer to demonstrate certain theoretical ap- plications. This chapter discusses several applications that we have explored, how our technical development work has enabled them, and some of the results that we have col- lected. 1.3.8 Chapter 8: Advanced Ion Trap Operations Several advanced operations on a trapped ion quantum computer require tight integra- tion between different parts of the control stack, which are either entirely novel or rarely demonstrated in ions. Here we present our efforts to develop several capabilities for 7 trapped ion quantum computers: • Sorting a chain of ions when there are several species (i.e. isotopes/elements) of ions present. • Mid-Circuit Qubit Measurement: selectively reading the state of a subset of all qubits without nullifying the quantum information on other qubits, and then con- tinuing with quantum operations. This is a fundamental building block of error- corrected logical qubits. • Rapidly Generating Ion-Photon Entanglement using hardware-accelerated entan- gling loops. 1.3.9 Appendices While the appendices generally fall into the category of software engineering, the trapped ion quantum computer that we have developed (EURIQA Breadboard7) is at a relatively unique scale in academia where software engineering best practices and discipline are extremely useful, yet too small for an average physicist developer to acquire expertise in their operation. As such, these appendices are meant to bridge the gap and acquire a basic familiarity with topics that are somewhat outside a typical physicist’s education. In the appendices, we discuss the programming language Python [28] (Appendix A), and some tips on its use in experimental setups such as software development best prac- tices and tools for optimizing software. We then discuss Git [29] (Appendix B), ver- sion control software that can be of a great benefit for parallelizing software develop- 7EURIQA is the abbreviation of our collaboration’s name: Error-corrected Universal Reconfigurable Ion-trap Quantum Archetype. 8 ment for experiments and allowing remote development. Finally, we introduce Nix [30] (Appendix C), a functional packaging language that is useful for synchronizing software across multiple laboratory computers. 9 Chapter 2: Quantum Computing Basics 2.1 Quantum Computing Overview Quantum computing is an exciting field at the intersection of quantum physics, computer science, and engineering. It is fundamentally different from standard computers in that the operations that it makes are not based on digital logic [11], but instead use quantum physics. 2.1.1 Motivation for Quantum Computing We live in an quantum world. At its base, all the atoms and matter around us interact and operate based on quantum physics. But when the number of degrees of freedom becomes large1, that “quantumness” tends to morph into “classical” approximations that generally work well enough, depending on the problem. However, some problems are inherently quantum, and cannot be efficiently represented in digital computers. Some examples of these include simulating quantum physics/systems [19], chemical interactions between atoms/molecules [20, 21], and nuclear physics and material simulations, as summarized in [22]. The fundamental problem with trying to simulate problems of this nature is that 1Effectively, “large” means long length scales and large numbers of atoms. 10 the devices used to perform simulations are not themselves quantum. This leads to enor- mous overhead in the computing resources needed to simulate the quantum state of e.g. a molecule, and thus it becomes infeasible to simulate on today’s available digital comput- ers, or the ones expected to become available in the foreseeable future. 2 For example, in a recent experiment claiming “quantum supremacy” [31], they estimate that simulating 200 s of experiment runtime would take millions of years on current supercomputers. 3 However, the fundamental disconnect between classical and quantum computing only arises when translating between the two types of computing. If a quantum com- puter could be created, with enough resources and enough quality to emulate the quantum physics of the inherently quantum system, e.g. a molecule, then these problems would not incur the same overhead, and we could efficiently run calculations that were infeasible before. 2.2 Quantum vs Classical Computing To understand the differences between classical computing and quantum computing, it is helpful to contrast some of the names that both use for similar concepts, shown in Table 2.1. Here, we focus on the model of quantum computation called “gate-based quantum computing”, as it is currently one of the leading models and has the added benefit of being most accessible to a general engineering audience. It should be noted that other 2This overhead is due to entanglement. Describing the state of an entangled quantum system scales ex- ponentially with the number of degrees of freedom, which dictates the number of entangled qubits required. The overhead causes many computations to generally take extremely long amounts of compute times, as well as extremely large amounts of memory to store the quantum state while it is being calculated. 3The claim about the amount of supercomputer time to simulate this specific experiment has been dis- puted in [32], though the concept still applies to general quantum computations. 11 Concept Digital Logic Quantum Logic Fundamental State Bit (0/1) Qubit (|Ψ⟩) String of States Register Quantum Register Operation Gate Quantum Gate Set of Operations Circuit Quantum Circuit or Hamiltonian Single-State Operation NOT, Identity Single-Qubit Rotation Multi-State Operation AND, OR N-Qubit Gate (e.g. Two-Qubit Gate) Table 2.1: Comparison of fundamental concepts of Classical Digital Logic vs Quan- tum Information. More information on all of these can be found in [18]. Note that |Ψ⟩ means a general quantum state. models exist (see Section 2.7), which tend to be focused on specific domains of problems. Many of the terms for describing a quantum algorithm obviously borrow heavily from classical digital logic, such as calling an individual operation a “gate”, and a set of operations a “circuit.” With these basic definitions and context, we can begin considering how a quantum computer works, and what it needs to implement the operations described in Table 2.1. 2.2.1 Criteria for a Quantum Computer There are several generally accepted criteria required to operate as a functional quantum computer, which are generally called the DiVincenzo criteria [33]. Throughout this thesis, we will explain our progress in implementing many of these requirements to demonstrate a fully-functional quantum computer. 1. A scalable physical system with well characterized qubits: The technology must be able to eventually support enough qubits to perform meaningful algorithms. How to achieve this number is outside the scope of this thesis. However, a relevant corollary 12 to this requirement is that the control over the qubits must also be scalable. Our work towards implementing scalable control will be discussed in Chapter 5. 2. The ability to initialize the state of the qubits to a simple fiducial state, such as |000 . . .⟩: This is the ability to consistently prepare a high-quality known state, which represents the starting point for all subsequent calculations. State initializa- tion will be covered in Section 3.6.2.2. 3. Long relevant decoherence times, much longer than the gate operation time: Must be able to perform many quantum gates without losing the quantum information to the environment. 4 4. A “universal” set of quantum gates: Must be able to execute any desired unitary5, which can be represented (“decomposed”) using a standard set of supported gates available on a particular quantum computer system. Addressed in Sections 2.4.2, 2.4.3, 3.7.2 and 3.7.3. 5. A qubit-specific measurement capability: Must be able to project an individual qubit’s quantum state to the measurement basis, without adding noise beyond the standard “projection noise” of a quantum measurement. Addressed in Section 2.4.4. 4In practice, this number will never be zero, so instead effort is generally directed towards minimizing the effects of decoherence instead of completely eliminating it. 5A unitary matrix, often called a unitary U , is one in which its conjugate (Hermitian) transpose will yield 1 when multiplied by U : U†U = 1. 13 2.3 Quantum States A quantum state represents the quantum-physical state of the quantum computer at any given point in time. Quantum states thus lie within and obey the rules of quantum physics and quantum information, and differ in significant ways from digital states. 2.3.1 Digital States Digital computers typically encode their information (states) into digital logic, which uses binary states for each “bit” of information. That is, one bit in a digital computer is either 02 or 12. A set of these bits is called a register (similar to a string of number- s/characters), which collectively represent a state, or a number. For example, the state 10002 ≡ 810. Note that there are two formats of specifying binary numbers: big-endian [11], where the most-significant bit is on the right (e.g. 4 in 1234), and little-endian where the least-significant bit is on the right (e.g. 4 in 1234). In other words stringlittle endian ≡ reverse(string)big endian. 6 For the remainder of this thesis, numbers missing a subscript are assumed to be in base-10 (decimal), and all registers will be specified in little-endian format. 2.3.2 Qubit Quantum computers are governed by the laws of quantum physics, which means that their fundamental units must also be “quantum” and obey those laws. The equivalent of a 6Standard decimal (base-10) math uses little-endian notation, though most are unfamiliar with the term “little-endian”. To reflect this expectation, all binary strings here are assumed to be written in little-endian format unless otherwise specified. 14 digital bit is a “qubit”, or “quantum bit” [18]. A qubit is defined in Eqs. (2.1) to (2.3). |Ψ⟩ = α |0⟩ + β |1⟩ (2.1) |α|2 + |β|2 == 1 (2.2) {α, β} ∈ C (2.3) While Eq. (2.2) might appear to imply that a qubit is simply in the range [−1, 1], in reality the quantum state |Ψ⟩ is a superposition, having qualities of both basis states |0⟩ & |1⟩ while allowing for complex interference between the basis states. This can be noted by Eq. (2.3), where {α, β} are defined to be complex numbers, i.e. of the form a + b ∗ j (where j ≡ i ≡ √ −1). This definition of a qubit is purely mathematical, and obviously idealistic. Further, it does not define the physical implementation of a qubit, just as digital computers do not specify whether their logic is performed on vacuum tubes, CMOS, or other semiconductor processes. 2.3.2.1 Alternative Qubit Representations Due to this abstract mathematical nature of a qubit, there can be multiple conventions to represent a qubit. Nominally, any symbol can represent |0⟩ & |1⟩. In a quantum infor- mation context, where the standard two-state representation is used, |0⟩ & |1⟩ are the de facto standards. In many physics contexts, specifically for spin-1/2 systems7, these map 7Spin-1/2 systems are systems which require two rotations to return to its original configuration. A spin-1/2 system is functionally equivalent to a qubit, as it has only two levels. 15 as |0⟩ → |↓⟩ , |1⟩ → |↑⟩ . 8 This convention is to more closely match the fundamental physics of quantum spin states. There is also a class of quantum states with infinitely many equally-spaced levels that represent a harmonic oscillator (e.g. mechanical or pho- ton states in a single mode). These are denoted by |n⟩, where the number of vibrational quanta (phonons) or photons is represented by the non-negative integer n (n ≥ 0). For consistency, the rest of this thesis will primarily use the computational states {|0⟩ , |1⟩ } for quantum information, with a few uses of {|↓⟩ , |↑⟩ } when discussing ion physics. The numbered states |n⟩ are very important to trapped ion quantum computing (described later in Chapter 3), especially as a “communication bus” of sorts for inter-qubit opera- tions (the concept will be discussed in Section 2.4.3, and then applied to trapped ions in Section 3.7.3). 9 There are two key alternative qubit representations that are important to follow the rest of this thesis: matrix representation, and the Bloch sphere representation [18]. The matrix representation of a qubit is straightforward: the complex amplitudes {α, β} are mapped to elements of a column vector. The general single-qubit state |Ψ⟩ is defined as 8It is equally valid to reverse these mappings, and map |0⟩ → |↑⟩ . In the general quantum information context, |0⟩ is more of a label than a fundamental physical quantity. 9Quantum states can fall anywhere in between these two extremes of just two states and infinitely many states. There is restriction on how many basis states that can be represented on a quantum system, as long as they are coherent and distinguishable. Other common numbers of basis states include 3 (called a qutrit) or 10 (called a qudit). For now, the majority of the quantum field is working with two basis states (qubits) by convention, so that is the primary consideration we will use here. Some reasons for choosing to consider > 2 states include academic curiosity, or better mapping to physical hardware. 16 |0⟩ = 1 0  (2.4) |1⟩ = 0 1  (2.5) |Ψ⟩ = α |0⟩ + β |1⟩ = [ α β ]1 1  = α β  (2.6) Another representation of a quantum state is called the Bloch sphere, named after quantum pioneer Felix Bloch. This representation maps the basis states |0⟩ & |1⟩ to the south & north pole of a sphere, and then uses the complex amplitudes {α, β} to represent the position on the surface of the Bloch sphere. 10 The equation for the polar coordinates θ, ϕ of a quantum state is: |Ψ⟩ = cos ( θ 2 ) |0⟩ + eiϕ sin ( θ 2 ) |1⟩ (2.7) Viewing a state on the Bloch sphere is useful for gaining intuition about several features of quantum computing: • Probabilistic Quantum Readout: discussed in Section 2.4.4. Measurements are the projection of a quantum state onto a vector, commonly the Z axis. Assuming 10A single quantum state has 4 unknowns: the real and imaginary parts of both α and β in |Ψ⟩ (Eq. (2.1)). Representing qubits in polar space (Bloch sphere) reduces these unknowns to 2: the angles θ & ϕ. This simplification is valid because of known constraints about quantum states: insensitivity to global phase (multiplying |Ψ⟩ by eiφ), and |α|2 + |β|2 = 1. 17 perfect measurement operations and measuring along the Z axis, the probability of measuring in |1⟩ is proportional to the square of the Z component of the Bloch vector. The probabilistic nature of this operation is because any vector that is not exactly |1⟩, such as (θ, ϕ) = (0.999π, 0), will have some small component of the |0⟩ vector, resulting in a small probability of measuring |0⟩. • Rotations: changing from one quantum state to another (for a single qubit) can be viewed as a rotation of the Bloch sphere. This will be discussed later in Sec- tion 2.4.2. One primary drawback of the Bloch sphere representation is that the extension to multiple entangled qubits is not very obvious; multiple qubits which are unentangled and separable can be represented by separate, individual Bloch spheres. It is important to remember that all these representations of qubit states are equally valid, and can be used interchangeably. 2.3.2.2 Common Single-Qubit States There are several key quantum states that are important to understand. These states are often called basis states, because any other single-qubit state is composed of a linear combination of any of these states. In linear algebra notation, the Pauli basis states are equivalent to the eigenvectors of the Pauli operators [18]. A common task of quantum computers is preparing a qubit in one of these basis states, as they are commonly used as the starting value for a qubit in a quantum algorithm. Measurement also relies on these basis states, as projecting (measuring) an arbitrary state’s alignment to one of these basis 18 Figure 2.1: Bloch sphere representation of |0⟩ . In the Bloch sphere representation, any point on the surface of the sphere is a valid state. Some conventions will invert the Z (|0⟩, |1⟩) axis, but this thesis will not use that convention to align more closely with the (|↓⟩, |↑⟩) physics convention. The only difference between these two conventions is an inversion of the sphere across the x− y plane. 19 states gives an idea of how similar they are. By preparing the same state many times, and then projecting onto each of the basis states, you can estimate what the original state was by collecting statistics. In other words, this state measurement in this manner is measuring the overlap of a state with each of the Pauli basis states. 2.3.3 Multi-Qubit States To perform useful operations with a quantum computer, it is necessary to add many qubits. The exact number of required qubits depends on the problem that you are trying to solve, but will generally include ≥ 2 qubits, and usually significantly more. Thus, we need to expand our understanding of quantum information to systems with many qubits. To leverage the power of quantum computing, there must not only be many qubits but there must also be a way to entangle the qubits, which will be described in Sec- tion 2.3.4.4. For every extra qubit that is added to a quantum state, it increases the size of the state matrix dimensions by a factor of 2. 11 Adding a single extra qubit to the quantum state increases the size of the unitary matrix by a factor of 2 for each dimension. Intuitively, each qubit can be thought of as exponentially expanding the variables that can be used to solve problems. 12 By adding more qubits to the computation, more complex problems can be solved. 11For example, just storing the state of 2 qubits (the statevector) requires a 1 × 4 matrix. Performing an operation on that system requires a unitary with dimensions 4×4. Adding a single extra qubit to the system requires a 1× 8 matrix for the statvector, and a 8× 8 matrix for any unitary operation. 12Explicitly, adding an extraN -th qubit increases the number of variables that can be solved for by 2N−1. 20 State Name Rotation Matrix Eigenvector(s) Bloch Sphere Form Identity σ0 = I = [ 1 0 0 1 ] N/A Pauli ±X σ1 = σx = [ 0 1 1 0 ] 1√ 2 [ 1 ±1 ] Pauli ±Y σ2 = σy = [ 0 −i i 0 ] 1√ 2 [ ±i 1 ] Pauli ±Z σ3 = σz = [ 1 0 0 −1 ] [ 1 0 ] , [ 0 1 ] Table 2.2: Common Quantum Operators and their different representations. These rotation matrices are more precisely called unitary matrices. Any qubit operation can be denoted by an equivalent unitary matrix. Note that the eigenvectors of the Pauli Z (σ3)[ 1 0 ] , [ 0 1 ] are the qubit basis states |0⟩ & |1⟩, respectively. We call this the “Z-basis”, or the computational basis. If direct measurement in only the Z-basis is possible, the other bases can still be measured by rotating from e.g. the Y-basis to the Z-basis using only single-qubit rotations. For each specified state, the Bloch sphere image shown denotes the positive direction (e.g. the +Z basis); the negative direction is along the same axis, opposite the origin point. 21 2.3.3.1 Quantum Registers A quantum register is a set of individual quantum systems, which are combined to form a larger quantum state. The classical equivalent of this is a digital register, also called a bit string, such as 1001012. By continuing this analogy to digital computers, each bit in the bit string is composed of one wire/register or (approximately) a few transistors, but their collective whole allows them to represent more information, such as the decimal number 3710 via the binary bit string 1001012. It is simply impossible to represent 3710 using a single binary digit {0, 1}. In digital computers, there is a distinction between a bus and a register. A bus has no storage, and can be considered as a set of wires. On the other hand, a register will store the last value set into it, and continuously output that value until it is updated (typically via a clock signal) to the newest value. The terminology for quantum computers is not as concretely defined, because the line between a bus and a register is blurred due to the no-cloning theorem (see Sec- tion 2.3.4.3). In a quantum computer, a qubit can be considered memory (a register) because it stores a value, and will continually keep that value until it is intentionally modified. Unintentional modifications including dephasing, state decay, or imperfect op- erations such as over/under-rotation will break this model of a qubit keeping its value. Nevertheless, a qubit still meets a qualitative definition of a memory in the ideal, error- free case It does not meet the definition of a wire because accessing or moving the data requires an active operation to move it between two different “locations.” A quantum memory does not fit neatly into the classical computing load-store architecture model, 22 because quantum computations are executed “in-memory” via control signals manipulat- ing qubits. 2.3.4 Key Quantum Physics Principles To this point, the full capabilities of a quantum computer over a digital computer have not been fully discussed. There are several key properties of quantum physics that must be understood to comprehend how a quantum computer can perform calculations more efficiently than a digital computer. These properties are: superposition, measurement, entanglement, and the “No-Cloning Theorem”. 2.3.4.1 Superposition The first property of quantum physics that quantum computers leverage is superposition [18]. Superposition is the concept that a quantum object can exist in multiple states at the same time. In a quantum computing context, this means that the current state of a qubit is in both |0⟩ & |1⟩. Visually, an equal superposition between |0⟩ and |1⟩ is any state on the equator of the Bloch sphere, e.g. aligned with the X or Y axis. One example of an equal superposition is the state |Ψ⟩ = 1√ 2 |0⟩ + 1√ 2 |1⟩ . 13 This property has entered the popular imagination through the thought experiment of Schrödinger’s cat [34]. In this thought experiment, a cat is placed in a box with a vial of cyanide, and a triggered hammer that will break the bottle of cyanide. The hammer 13It is possible to have unequal superpositions, where the state is not halfway between |0⟩ & |1⟩. For ex- ample, |Ψ⟩ = 1 3 |0⟩ + 2 √ 2 3 |1⟩ is a valid superposition (according to the definition of a qubit from Eqs. (2.1) to (2.3)), which is weighted closer to |1⟩ than |0⟩ and is thus more likely to be measured (projected) onto |1⟩. 23 is triggered by a known quantum system, such as the decay of a radioactive atom with a known half-life duration. After waiting for one half-life, the atom is in a superposition between decayed and not decayed, and thus the cat is also in a superposition between dead and alive. But when the box is opened, we can determine which of the two outcomes has occurred: the cat is either dead or alive. The tale of Schrödinger’s cat is also informative because it introduces the concept of measurement in quantum mechanics, which will be discussed in the next section. 2.3.4.2 Measurement Measuring a quantum state is inherently different than measuring a classical, digital state. On a digital computer, you can check the value of a bit at any point, e.g. represented by a voltage, and if the value is 02 then you can assume that it has always been 02 since it was last updated. 14 This assumption for digital computers does break down when the act of measuring a register sufficiently that voltage (e.g. DRAM), but the general concept of measurements not corrupting the initial value still holds. In the realm of Quantum Mechanics, the act of measurement can alter or “collapse” the underlying state. Intuitively, the act of measurement can be thought of as causing the state to lose its superposition, thus “choosing” which state that it will hold. The closer that the arbitrary quantum state |Ψ⟩ is to |0⟩, the more likely that it will choose |0⟩ instead of |1⟩, and vice versa. The probability of measuring |1⟩ is |β|2 in the qubit representation of Eq. (2.1). This can be seen on the Bloch sphere: a state perfectly situated on the equator (e.g. +X) is equidistant from |0⟩ and |1⟩, so it is equally likely to be measured in either 14Ignoring noise that could flip the bit, which is rare. 24 state. 2.3.4.3 No-Cloning Theorem In quantum mechanics (and quantum information), the no-cloning theorem shows that it is impossible to perfectly clone (copy) an arbitrary quantum state [35]. To prove that cloning is impossible: suppose that there exists a unitary cloning operator Uclone that can clone an arbitrary quantum state (|Ψ⟩, Eq. (2.1)). This Uclone should operate to transform a single |Ψ⟩ to |Ψ⟩|Ψ⟩, e.g. Uclone |Ψ⟩ |0⟩ → |Ψ⟩ |Ψ⟩ . Further, suppose that we have two arbitrary quantum states that we would like to clone: |ϕ⟩ , |ψ⟩. If we apply the supposed cloning unitary Uclone to each of these states, we will yield: |ϕ⟩ ⊗ |0⟩ → |ϕ⟩ ⊗ |ϕ⟩ (2.8) |ψ⟩ ⊗ |0⟩ → |ψ⟩ ⊗ |ψ⟩ (2.9) If we consider the inner-product15 of the arbitrary states, using the known inner-product ⟨0|0⟩ = 1, then ⟨ϕ|ψ⟩ = ⟨ϕ|ψ⟩ ⟨0|0⟩ = ⟨ϕ| ⟨0| |ψ⟩ |0⟩ (2.10) Then applying the cloning operator Uclone, which is unitary and thus norm-preserving & 15The inner-product is a generalized form of the dot-product. Note that we drop the ⊗ notation because it is redundant and hinders readability. 25 will not change the inner-product, we obtain the inner-product:16 ( ⟨ϕ| ⟨0|U † clone ) (Uclone |ψ⟩ |0⟩) = ⟨ϕ| ⟨ϕ| |ψ⟩ |ψ⟩ = | ⟨ϕ|ψ⟩ |2 (2.11) ⟨ϕ|ψ⟩ = ⟨ϕ|ψ⟩2 (2.12) The result of this proof, shown in Eq. (2.12), is only satisfied for arbitrary states |ψ⟩ , |ϕ⟩ which produce an inner-product magnitude | ⟨ϕ|ψ⟩ | of 0, 1. Thus, cloning is not possible for arbitrary states, and is only possible for states that are either identical, anti-aligned, or orthogonal to begin with. Therefore Uclone cannot exist for cloning arbitrary states, i.e. ones that do not satisfy Eq. (2.12). Note that because it is possible to clone such special, non-arbitrary states, it is possible to devise a system to e.g. clone qubits that are only in |0⟩ or |1⟩. The no-cloning theorem does not solely apply to qubit states: it is also not possible to clone an arbitrary mixed state [36]. However it is possible to closely clone some input states [37], with the condition that the cloning fidelity will depend on the input state. The result of the no-cloning theorem is that many of the operations that are taken for granted in a digital computer are made significantly more difficult, or impossible. A simple example is backing up data on a computer. This operation is trivial on a classical PC: data is read from a storage drive, written to a second drive, and there now exists two copies of the same data. On a quantum computer, this operation can never be performed due to the no-cloning theorem. The best that can be done is approximately replicating the original datum. Worse, according to [37], even if an approximate copy is made, the 16Note that we apply the Hermitian conjugate of the cloning operator (U† clone) because it is applying to the bra states ⟨ψ| ⟨0|. 26 copy is entangled with the original, and then any operation or measurement performed on the copy can interfere with the state of the original, which is obviously not desired in a backup situati8on. While this is a somewhat trivial example, and it could be argued that the need for backing up quantum information is relatively far off, it nevertheless illustrates a funda- mental difference between classical and quantum computers. This fundamental difference will need to be accounted for at all levels of the computer architecture design, and have a net effect of complicating the design of a quantum computer by requiring high-fidelity long-term storage for future computations. 2.3.4.4 Entanglement The principle of quantum entanglement is that there can be a correlation in the joint quan- tum system formed by multiple qubits. In a perfect world, every qubit begins as com- pletely disentangled with every other qubit, i.e. independent. When a proper sequence of operations is applied to at least two qubits, the qubits can become entangled and begin sharing correlations. Once they are fully entangled, measuring one of the qubits’ values will allow you to know the value of the other qubit by way of correlation. For example, consider the following entangled state, which is a superposition be- tween both qubits being in |0⟩ and both qubits being in |1⟩: |Ψ⟩ = |00⟩+ |11⟩ (discarding normalization factors). If one of the two qubits was to be measured, and found in |1⟩, then we would know that the other qubit was also in |1⟩ (and vice versa for |0⟩). 27 2.3.4.5 Reversibility It is interesting to note that quantum computing is closely aligned with the concept of reversible logic. Nielsen and Chuang [18, Section 3.2.5] provides a good overview: First, reversibility stems from keeping track of every bit of information; irre- versibility occurs only when information is lost or erased. Second, by doing computation reversibly, we obviate the need for energy expenditure during computation. All computations can be done, in principle, for zero cost in en- ergy. Third, reversible computation can be done efficiently, without the pro- duction of garbage bits whose value depends on the input to the computation. That is, if there is an irreversible circuit computing a function f , then there is an efficient simulation of this circuit with action (x, y) → (x, y ⊕ f(x)). ([18], pg. 161) An important implication of this is: To harness the full power of quantum computation, any classical subroutines in a quantum computation must be performed reversibly and without the pro- duction of garbage bits depending on the classical input. ([18], pg. 161) In other words, performing any classical operation on a quantum state, such as adding 1 to a number stored in a quantum register, will require the use of reversible logic gates, such as the Toffoli gate [38]. We will discuss an improved Toffoli gate implementation in Section 7.2. 28 2.4 Quantum Operations A quantum computer must be able to perform an operation to be useful. This section will discuss some of the fundamental operations that must be implemented for full control of a quantum computer, as laid out by Section 2.2.1. 2.4.1 State Preparation The first building block of a quantum computer is implementing state preparation. This is the ability to reliably prepare a known quantum state. One of the most typical states to prepare is |0⟩, or for multiple qubits |00 . . . 0⟩. This prepared state then becomes the input state into a quantum circuit, or a set of ensuing operations. By convention, if an initial state other than |0⟩ is desired, qubits are first prepared in |0⟩, and then rotations (Section 2.4.2) are applied to achieve a different desired initial state, e.g. |1⟩. 17 It is important to note that multi-qubit entangled states will sometimes be required, such as a logical qubit basis state in [39]. In this case, this state can generally be achieved by preparing in |0⟩, and then applying not just single-qubit operations, but a mix of single- and multi-qubit operations. 17In this scheme, because a subsequent operation is applied to enter |1⟩ after starting in |0⟩, preparing a qubit in |1⟩ will have lower fidelity than |0⟩. 29 2.4.2 Single-Qubit Operations Single-qubit operations are operations that only address, or change the state of, a single qubit. The most basic of single-qubit operations is applying any of the Pauli rotation matrices, to rotate a qubit around a given axis (see Table 2.2). By convention, a gate that applies a continuous version of a Pauli matrix will be denoted as (letting σ be an arbitrary Pauli matrix) [17]: Rσ(θ) ≡ exp ( −iθσ 2 ) (2.13) A common notation is to abbreviate Rσ(π) as the equivalent Pauli matrix, e.g. RZ(π) = Z, RX(π) = X , RY (π) = Y . All single-qubit operations can also be expressed as 2 × 2 matrices (unitaries). A single-qubit operation can be applied to any given qubit by taking the tensor product (⊗). 18 For example, the single-qubit X gate can be applied to the second qubit (of two qubits) with: I ⊗X = 1 0 0 1 ⊗ 0 1 1 0  =  0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0  (2.14) Another common single-qubit gate is the Hadamard gate. The Hadamard gate takes the computational states |0⟩, |1⟩ into a superposition: H |0⟩ → |0⟩+|1⟩√ 2 , H |1⟩ → |0⟩−|1⟩√ 2 , which are commonly abbreviated as |+⟩ and |−⟩, respectively. The Hadamard gate has the 18This tensor product operator is sometimes also called the Kronecker Product. 30 interesting property of being its own inverse (HH−1 = HH = I). It can be decomposed into Pauli rotations: H = XRY (π/2). It is important to note that any single-qubit gate can be decomposed into a combination of continuous Pauli rotations. 2.4.3 Multi-Qubit Operations Multi-qubit operations are operations that are applied to multiple qubits at the same time. Generally, applying a multiple qubit gate will produce entanglement, though it can also disentangle qubits. 19 With a combination of single-qubit and two-qubit operations, an arbitrary multi-qubit gate can be realized [40]. The basic two-qubit gate is the CNOT gate, which stands for Controlled-NOT. This gate applies a NOT (X) gate to the target qubit if the control qubit is in |1⟩. See an example CNOT gate in Fig. 2.3; the filled circle is the control qubit, and the qubit with the circle with the plus (⊕) is the target qubit. The CNOT gate is represented in matrix form by: CNOT =  1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0  (2.15) A two-qubit entangling gate such as a CNOT is required for universal quantum computation [18]. However, multi-qubit gates are not restricted to only operating on two qubits. Conceptually, if a quantum state will be shared between N qubits, it is more 19An example of a multi-qubit gate that produces no entanglement is the SWAP gate, where the quantum state of two qubits is swapped between the two. 31 efficient (in time and resources) to generate that entanglement using a N -qubit gate than using an equivalent sequence of 2-qubit gates (which produces the same unitary matrix). Other typical quantum gates include: • Controlled-U gate: applies a unitary U to the target qubit if the control qubit is in |1⟩. • Toffoli Gate: the basic 3-qubit version, briefly covered in Section 2.3.4.5, is effec- tively a CNOT with two controls instead of one (i.e. a Controlled-Controlled-NOT, or CCNOT), and flips the target qubit if and only if the two control bits are both in |1⟩. 2.4.4 Quantum State Readout Measurement is a fundamentally important concept in quantum computing, and was briefly discussed in Section 2.3.4.2. It deserves special care because quantum measure- ment is conceptually very different than in classical computing. Measurement is the act of resolving the quantum state of a qubit, and the corre- sponding graphic signifying measurement is shown in Fig. 2.2. In contrast to classical computing, quantum measurement will generally irreversibly change the state of the qubit by collapsing any superpositions in the measured qubit(s). Measurement is sometimes re- ferred to as projective, meaning that the precise state |Ψ⟩ is not measured, but only its projection along a given axis (eigenvector). It should be noted that measurement is a statistical process. One measurement along the Z-basis of a qubit will only determine if the qubit was in |0⟩ or |1⟩ for that 32 q Figure 2.2: Trivial measurement of a qubit. This figure shows the symbol for a mea- surement operation on a qubit. Measurement symbols that are not shown at the end of a circuit are typically implied. particular experiment run. Repeated measurements are necessary to approximate the pre- measurement quantum state, which then requires balancing the number of repetitions against approximation accuracy. There are certain cases where the act of measurement does not completely resolve the state of the entire system, but instead fully resolves the state of certain qubits in the system (i.e. Nmeasured < Nqubits), which we here refer to as “partial measurement”. In certain applications, such as quantum teleportation and quantum error correction, mea- surements are performed on an ancilla qubit, which has certain information about the quantum state mapped to it, but not the identity of the quantum state itself. This “partial measurement” is in contrast to a “weak” or “imperfect” measurement, where the quantum state is minimally modified, and little information about the quantum state is obtained in turn. 2.5 Quantum Algorithm Abstractions Generally, executing an algorithm on a quantum computer requires some form of abstrac- tion to represent the sequence of operations that are being performed. This abstraction can be at varying levels depending on the overall goal. Just as computer scientists do not specify data structures and algorithms in terms of transistor voltages, it can be an inap- propriate level of abstraction to specify a given quantum algorithm in terms of the RF 33 drive on the given quantum system needed to perform an operation. This tradeoff, as well as some benefits that come from breaking these abstractions, will be discussed further in Chapter 3 and Chapter 4. In the context of this thesis, there are a few levels of abstraction that can describe a sequence of operations on a quantum computer. In order from higher level of abstraction (higher abstraction here implies least knowledge of the quantum computing hardware and the quantum physics Hamiltonian that describes it) to lower level of abstraction: Quan- tum Algorithm, Quantum Circuit, Unitary, Pulse Schedules and Hamiltonian. We will not fully treat each of these abstractions, but it is important to understand that each of these methods are fully valid and equivalent methods for describing the same sequence of oper- ations. However, the highest levels of abstraction are also the least precise, as they tend to make simplifying assumptions about the underlying system. The most-precise level is the lowest level, but this precision includes a higher level of complexity, which is especially true as the scope of the system that is being considered increases. For example, if you want the most accurate simulation of a quantum computer, you will try to incorporate as many physical and environmental parameters into your simu- lation as possible, but this will add complexity to the simulation. Eventually, as more and more factors are incorporated, or the size of the quantum system grows enough, the simulation will become infeasible (for a reasonable amount of computing power). On the other hand, a highly abstract quantum algorithm specification (such as [41, 42]) will tend to ignore the implementation details of how a particular operation is implemented, and just specify what the end result is. This allows the algorithm to be generally system- independent, to scale to any given system size, as well as be more easily simulated be- 34 q[0] q[1] H Figure 2.3: Quantum circuit diagram of a Bell circuit. A Bell circuit is a simple circuit that generates a Bell state [18], which are maximally entangled two-qubit states. The first gate on q[0] is called a Hadamard gate (Section 2.4.2), and effectively puts the qubit in superposition between |0⟩ & |1⟩. The second gate is a CNOT (Controlled-NOT or Controlled-X) gate, and entangles the two qubits. q[0] q[1] X Y (a) Circuit with implied parallel operations q[0] q[1] X Y (b) Circuit with guaranteed sequential operations Figure 2.4: Quantum circuit diagram with parallel operations. Fig. 2.4a demonstrates parallel single-qubit operations on two qubits. The quantum circuit does not necessarily guarantee that these operations will happen simultaneously, it just allows that possibility. In other words, it would be equally valid to perform the X gate followed by the Y gate, or the Y gate followed by the X gate, or both simultaneously. Alternately, sequential operations can be enforced using devices such as a “barrier”, shown in Fig. 2.4b, cause it has removed complexity. 2.5.1 Quantum Circuit Model The quantum circuit model lies between the two ends of the spectrum of quantum abstrac- tions: partially between high-level quantum algorithms (a computer science approach), and a low-level Hamiltonian specification (a quantum physics approach). The concept of a quantum circuit is most analogous to a digital circuit diagram. For reference, an example quantum circuit diagram is shown in Fig. 2.3. Because these circuits will be used in several places throughout this thesis, we shall provide a brief overview of their operation and usage. A quantum circuit is composed of qubits, operations, and wires. Viewing it as a se- 35 quence of inputs & outputs, a quantum circuit will generally begin with a qubit (typically with a label), which is prepared into a given state (typically |0⟩, for reasons discussed in Section 2.4.1 and Section 3.6.2.2). Every qubit has a wire connected to it. A wire is a virtual operation, which conceptually connects the output of one circuit element to the next circuit element. Wires apply the Identity operation to a qubit, i.e. effectively no operation (“no-op”). 20 A wire then typically connects two operations. We will primarily consider two types of operations: gates, and measurement, which retain their meaning as previously discussed in Section 2.4. This representation clearly shows the operations that will be executed on a quantum system. The quantum circuit is also useful for intuitively understanding the complexity of a given quantum algorithm: more qubits will require an exponentially larger state space, which is more difficult to simulate using classical computers, and physically requires control of many qubits. Further, adding more gates will add approximately linearly to the execution time of the circuit, whether in simulation or physical execution. Larger circuits, in terms of either number of qubits or number of gates, are thus more difficult to simulate classically and show the value of a physical quantum computer. There are several additional features that add complexity to the basic quantum cir- cuit, which are necessary for more advanced quantum applications: • Digital Bits: These can represent either an arbitrary input classical register, or store the result of a measurement (and potentially use it later on in the quantum circuit). These are represented by two lines for a wire, instead of a single line for a quantum 20Some compilers will insert “echo” operations during wires/identity operations, to make the qubits more-insensitive to certain classes of noise sources. 36 wire. • Mid-Circuit Measurement: This is the act of performing a measurement in the mid- dle of a quantum circuit. In other words, it is performing a measurement while there are still subsequent operations on a qubit that will be executed after the measure- ment. • Conditional Operations: These operations enable executing any other operation based on either a classical or quantum state, while maintaining the quantum state. The condition21 is based on a set of digital bits, which can be sourced from a clas- sical digital source (such as a random number generator), or as a direct result of a mid-circuit measurement. Together with mid-circuit measurement, these oper- ations are necessary for critical quantum computing algorithms such as quantum error correction, or for studying quantum information concepts such as interactive protocols [43]. • Mid-Circuit Reset: This resets a qubit into a known state, effectively re-applying a preparation operation in the middle of a circuit. This can either be destructive (i.e. erasing the quantum state), or reversible by undoing any operations applied to the qubit. • Barriers: These enforce serial operations, by defining certain points across which operations cannot be moved. Barriers exist because quantum circuits do not spec- ify an order of operations, as they assume that all operations can happen simulta- neously, as in an electrical circuit. This assumption does not always hold true in 21i.e. Whether or not the operation should be executed 37 practical quantum computers, typically due to either physics or control limitations. 2.5.1.1 Shortcomings of Quantum Circuits Though quantum circuits may appear superficially similar to circuit diagrams, there are several important caveats to consider with their usage, which are rarely discussed. • Legibility at scale: It is difficult to comprehend a large-scale quantum circuit, e.g. one comprising hundreds of operations on dozens of qubits. This is not a unique problem to quantum circuits: a digital scale with a similar number of operations is just as difficult to visualize and comprehend. In this case, I suggest that the quantum community borrow from the experience of electrical engineering, which is accustomed to similarly large-scale systems. Electrical engineering has developed hierarchical schematics, where an overall circuit schematic is broken down into sub-blocks, each of which are logically grouped and somewhat independent. For example, a logical qubit circuit could have one block for entangling qubits, another for operating on the qubits, and then another for ancilla measurement & correction. Each of these blocks would have a circuit illustrating it, and then a high-level block diagram showing the ordering of the logical blocks. • Error Diagnosis: Related to the previous point, there is no simple way to easily identify a simple transcription error when defining a circuit. For example, consider a human copying a textbook circuit, who mistakenly swaps an X gate for a Y gate on a single qubit, but has the remaining qubits correct. Other than painstakingly manually double-checking the circuit, or debugging it, there currently exists no sort 38 of automated tool for checking that the circuit matches expectations. • Parallelism: As previously described, quantum circuits assume that every operation can be parallelized (executed simultaneously). This assumption does not always hold. This conceptual mismatch is due to the difference in nature between electrical circuits and a quantum circuit: an electrical (logic) gate such as AND is effectively a passive device, in that once properly designed and set up it will continue to perform its operation with no external control. The same is not true of quantum computers, which tend to require a drive signal to perform an operation (discussed later in Section 3.7). • Entanglement Visualization: As previously discussed, quantum entanglement is generally a desired quality in a circuit, but it is also reversible (akin to how entan- glement is generated in a circuit). Certain classes of circuits will entangle qubits, perform some operation, and then disentangle the qubits. However, in a long quan- tum circuit, the entangling operation might occur at the beginning of the circuit, but the entangled qubits might not be used until the end. This problem is unique to quantum circuits, as opposed to a digital circuit where correlations only last for the duration of a gate, primarily due to the no-cloning theorem (Section 2.3.4.3), so to track the entire state of the qubit, you must track the history of all operations on that qubit back to the initial state. Currently, to track the state of entanglement between multiple qubits, you must be able to perform linear algebra calculations in your head (or use some level of intuition), but entirely without any guide markings in the quantum circuit as to the creator’s intentions. 39 • In-Circuit Commentary: Currently there is no method for annotating a quantum circuit without accompanying external text. By analogy to a musical score, a com- poser annotates information such as volume outside of the sequence of notes them- selves. However, none of this is available in standard quantum circuits. They do offer the concept of a barrier, which can logically divide parts of a circuit in time, but it is difficult to ascertain the intention behind the circuit without access to ei- ther accompanying text or the software that generated the quantum circuit (which is presumably annotated/well-named). Again by analogy, the equivalent would be an electrical circuit schematic that did not allow including any text comments or references to outside information. 2.6 Breaking Abstractions: Hardware Details So far, this chapter has addressed the topic of quantum information very generally, with very little discussion of physical quantum hardware. We will continue to leave the ma- jority of that discussion for later chapters, but there are a few high-level considerations that are relevant in a purely quantum information context. These are slight permutations to the concepts already introduced: circuits and gates. 2.6.1 Qubit labels: Physical vs Virtual In a typical quantum circuit abstraction, every qubit is treated identically. This is a reason- able abstraction; but to actually execute the circuit, the information associated with every qubit in the circuit must be mapped to some physical entity. A useful way of thinking 40 about this mapping is in terms of physical and virtual qubits. A virtual qubit is simply a label when designing a quantum circuit. At the most basic level, it is simply an index that denotes which qubit that you are performing oper- ations on. The assumption that most quantum circuit designers work with is that every qubit in their circuit operates identically. In this case, “identical” means that they per- form similarly in terms of quality (usually denoted by fidelity in quantum systems), and connectivity (discussed in the next section, Section 2.6.2). By contrast, a physical qubit corresponds to a physical qubit implementation, two of which will be discussed in Section 4.3. The number of physical qubits in a system is typically a design parameter when the quantum computer is designed, so it is relatively constant (this is not quite true of trapped ion systems, as will be discussed in Chapter 3). Suppose that you have five physical qubits in a system. Each of those qubits inhabits some physical space that is inherently, even if minutely, different from the other qubits. Because qubits, despite our best efforts, are coupled to (interact with) their environment, this means that each qubit is effectively unique. If we were operating in a digital realm, this inconvenient fact could be somewhat abstracted away with thresholding, but every minute change matters in today’s quantum computer. 22 Thus, we have two different conventions for considering a qubit: virtual, which 22For an example of digital thresholding, consider a transistor that switches at ≥ 2.7V, but accepts input voltages in the range 2.7V to 3.3V. Any voltage in the range 2.7V to 3.3V will be treated as 12, while any voltage in the range 0.0V to 0.6V will be treated as 02, and behavior in between is undefined. It is interesting to consider that thresholding will likely apply to quantum computers as they reach the scale of logical qubit error correction. Error correcting codes have a fidelity threshold, below which they do not improve on the underlying qubits’ native fidelity. If the logical qubit operations are of sufficient quality, i.e. above the threshold, then error-corrected qubits will have similar effects to digital. The precise threshold is very dependent on system and error correcting code specifics, and will not be discussed further here. 41 treats every qubit identically, and physical which must consider the complexities of a device in the real world. For productivity on the side of both the circuit designer and the system designer, it is necessary to have these two abstractions. By analogy, most traditional software programmers do not typically concern themselves with exactly what model of CPU that their software will run on, or which transistors a particular block of code operates on. Those details can be handled by either the CPU itself or the compiler. Requiring every programmer to understand them would simply be inefficient. Thus, a method of mapping between the abstract and concrete representations is required. This process for quantum computers is typically called qubit mapping, or qubit layout. Qubit mapping is the process of converting between a virtual qubit representation of a circuit to a physical qubit representation. To explain this process, consider the example quantum circuit in Fig. 2.3. This circuit is specified for 2 qubits, but it could be run on a quantum computer with ≥ 2 qubits. Suppose that the physical qubits have indices {0, 1, ..., N}. The simplest mapping would simply be to assign the two qubits in order to the first two indices: so q0 → 0, q1 → 1. While that mapping might be technically correct, it fails to take into account any information about the physical qubits. For example, suppose that two-qubit gates were not possible between qubits 0 and 1, or that the two-qubit gate between them was of comparatively low quality. Both of these scenarios would make a different qubit mapping optimal. It should be clear that it is an optimization problem to assign the virtual to physical mapping in the most efficient manner. 42 1 2 3 4 (a) Complete graph. Also called fully-connected. 1 2 3 4 (b) Cycle graph. 1 2 3 4 (c) Linear graph. 1 2 3 4 (d) Disconnected graph. Figure 2.5: Example Qubit Connectivity Graphs for Nqubits = 4. There are a limited amount of graphs that can be demonstrated with only 4 nodes, but this illustrates a few of the major classes. Fig. 2.5a is the closest to the connectivity of an ion trap quantum computer. Qubits with a physical 2D (planar) qubit layout have difficulty replicating this connectivity because of the crossing wires, e.g. overlapping edges between (2, 4) & (1, 3). Difficulty can also arise if control signals need to be routed to the inner connections ((2, 4) & (1, 3)), as in superconducting qubits, because a common way of performing multi-qubit gates is using a tunable coupler which must be enabled to perform a gate [44].23 Fig. 2.5b will easily map to a planar geometry, but at the cost of not being able to perform gates between distant nodes, which forces information to be moved around for interac- tions to occur. Fig. 2.5c is very simple to implement, but may have very limited practical capability due to the limited connectivity.24 Fig. 2.5d is almost entirely useless for quantum circuits because it does not support multi- qubit gates, but might still be useful for test and characterization purposes, assuming that single-qubit operations can still be performed. Many other connectivity graphs are considered in quantum computing, including Chimera [45], Heavy-Hexagon [46, 47], as well as hypercubes and cyclic butterfly layouts [48]. 2.6.2 Qubit Connectivity In the previous section, we considered that every physical qubit is not identical. One of the common ways that physical qubits are not identical is in their connectivity. Every quantum computer has a connectivity graph. In the connectivity graph, the nodes/vertices are the qubits, and an edge is drawn between any qubits that can perform 24For this particular number of nodes, this graph could still be mapped to a planar architecture by routing one of the edges around the outside, but that becomes either more difficult or more complex at higher numbers of qubits. 24Practically, this type of architecture tends to requir