a systems view of quantum computer engineering
TRANSCRIPT
![Page 1: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/1.jpg)
A systems view of quantum computer engineering
Wednesday, October 27, 2021Rutgers University
Yipeng Huang
![Page 2: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/2.jpg)
Position statement for this graduate seminar
• Quantum computer engineering has become important.
• Requires computer systems expertise beyond quantum algorithms and quantum device physics.
![Page 3: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/3.jpg)
The role of abstractions in classical computing
What is an abstraction?
What are examples of abstractions?
Why are abstractions good and important?
![Page 4: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/4.jpg)
The role of abstractions in classical computing
What is an abstraction?
What are examples of abstractions?• APIs, Python, C, assembly, machine code (ISA), CPU-memory (von
Neumann), pipeline, gates, binary, discrete time evolution
Why are abstractions good and important?Hides details so that users & programmers can be creative
![Page 5: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/5.jpg)
The role of abstractions in classical computing
Are abstractions always good?
What are examples of deliberately breaking abstractions?
![Page 6: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/6.jpg)
The role of abstractions in classical computing
Are abstractions always good?
What are examples of deliberately breaking abstractions?• Python calling C binary (Breaking interpreted high level PL abstraction)• Assembly code routines (Breaking structured programming abstraction)• FPGAs (Breaking ISA abstraction)• ASICs (Breaking von Neumann abstraction)
![Page 7: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/7.jpg)
These two lectures: Broad view of open challenges in quantum computer engineering
• A complete view of full-stack quantum computing.
• In short, challenges are in finding and building abstractions.
• In each layer, why we don’t or can’t have good abstractions right now.
• Recent and rapidly developing field of research.
A Microarchitecture for a SuperconductingQuantum Processor. Fu et al.
![Page 8: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/8.jpg)
All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices
![Page 9: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/9.jpg)
All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices
![Page 10: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/10.jpg)
QDB: From Quantum Algorithms Towards Correct Quantum Programs. Huang and Martonosi.
![Page 11: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/11.jpg)
QDB: From Quantum Algorithms Towards Correct Quantum Programs. Huang and Martonosi.
Fault tolerant, error corrected quantum algorithms
Noisy, intermediate-scale quantum algorithms
![Page 12: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/12.jpg)
Shor’s integer factoring algorithm
Factoring underpins cryptosystems.For number represented as N bits—
Classical algorithm: needs 𝑶(𝟐𝟑 𝑵) operations
Factoring 512-bit integer: 8400 years. 1024-bit integer: 13*1012 years.
Quantum algorithm: needs 𝑶(𝑵𝟐 𝐥𝐨𝐠 𝑵 ) operationsFactoring 512-bit integer: 3.5 hours. 1024-bit integer: 31 hours.
A Practical Architecture for Reliable Quantum Computers. Oskin et al.
![Page 13: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/13.jpg)
A Blueprint for Building a Quantum Computer. Van Meter and Horsman.
![Page 14: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/14.jpg)
An Outlook for Quantum Computing. Maslov et al.
![Page 15: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/15.jpg)
An Outlook for Quantum Computing. Maslov et al.
How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits. Gidneyand Ekerå. 2019.
![Page 16: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/16.jpg)
An Outlook for Quantum Computing. Maslov et al.
Need applications to motivate further research.
![Page 17: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/17.jpg)
QDB: From Quantum Algorithms Towards Correct Quantum Programs. Huang and Martonosi.
Fault tolerant, error corrected quantum algorithms
Noisy, intermediate-scale quantum algorithms
![Page 18: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/18.jpg)
All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices
![Page 19: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/19.jpg)
Underappreciated fact:Programming languages aid discovery of algorithms
Algorithms
Coding
Programs
Computer science
![Page 20: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/20.jpg)
Underappreciated fact:Programming languages aid discovery of algorithmshttps://www.geeksforgeeks.org/random-walk-implementation-python/
Take classical random walks as an example. Notice:1. Ease of going from 1D example to 2D example (reusable code).2. Ease of generating a visualization.3. Code and simulation reveals properties useful for new algorithms.
![Page 21: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/21.jpg)
Underappreciated fact:Programming languages aid discovery of algorithms
Algorithms
Coding
Programs
Computer science
![Page 22: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/22.jpg)
Specification of algorithm as a procedure
https://www.geeksforgeeks.org/random-walk-implementation-python/
Take classical random walks as an example. Notice:1. Import library for random coin toss2. Data structures for time series3. Standard operators for increment and decrement
![Page 23: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/23.jpg)
What do we mean by high-level language?
// Create a list of strings ArrayList<String> al = new ArrayList<String>(); al.add("Quantum"); al.add("Computing"); al.add("Programs"); al.add("Systems");
/* Collections.sort method is sorting the elements of ArrayList in ascending order. */Collections.sort(al);
![Page 24: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/24.jpg)
High-level language hides all these concerns:
• Choice of sorting algorithm implementation and comparator function on Strings• Encoding of Strings as binary numbers• Memory allocation and deallocation for String storage• Execution of Java code on different ISAs• Correctness of library implementation• …
![Page 25: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/25.jpg)
• We want to get to that point with quantum programming
• Want to do things such as: initialize quantum data, perform search, without worrying about the detailed implementation
![Page 26: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/26.jpg)
Programmers’ time is scarce.Classical computing resources are abundant. Nonetheless, abstractions are expensive.
"There’s plenty of room at the Top: What will drive computer performance after Moore’s law?" Leiserson et al. Science. 2020.
![Page 27: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/27.jpg)
Programming languages aid discovery of algorithms:Is it currently true for quantum computer science?
Quantum algorithms
Quantum coding
Quantum programs
Quantum computer
science
Only ~100 known quantum algorithms
![Page 28: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/28.jpg)
Specification of quantum algorithmas a quantum procedure
Quantum algorithms
Quantum coding
Quantum programs
Quantum computer
science
As another example, QAOA on Cirq exercise:https://rutgers.instructure.com/courses/73314/assignments/1017995
Gates to code that we can run.
Need quantum equivalent of:1. Partition representation2. Edge constraints3. Way to perturb partitioning
![Page 29: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/29.jpg)
Specification of quantum algorithmas a quantum procedure
Quantum algorithms
Quantum coding
Quantum programs
Quantum computer
science
Functional quantum programming languages(emphasis on specifying the mathematics)Microsoft LiquidQuipperQWIREMicrosoft Q#Etc.
Imperative quantum programming languages(emphasis on specifying the resources)ScaffoldMicrosoft ProjectQRigetti PyQuilIBM QiskitGoogle CirqEtc.
![Page 30: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/30.jpg)
Programming languages aid discovery of algorithms:Is it currently true for quantum computer science?
Quantum algorithms
Quantum coding
Quantum programs
Quantum computer
science
Only ~100 known quantum algorithms
Some progress in the past two years.Qiskit AquaOpenFermion-CirqTensorFlow Quantum
Given the implementation for Deutsch’s algorithm, is it obvious how to implement Deutsch-Jozsa’s algorithm?
![Page 31: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/31.jpg)
QDB: From Quantum Algorithms Towards Correct Quantum Programs. Huang and Martonosi.
![Page 32: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/32.jpg)
All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices
![Page 33: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/33.jpg)
12 / 15From: https://www.seas.upenn.edu/~cis500/current/lectures/lec01.pdf
![Page 34: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/34.jpg)
Execution in target machine w/ facilities for validation
• Exception handling.• Printf debugging.• GDB breakpoints.• Assertions.• Etc.
![Page 35: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/35.jpg)
• “Exception handling” (i.e., quantum error correction) is costly.• No printf. No intermediate measurements.• Can’t set arbitrary breakpoints.• Few obvious assertions.
![Page 36: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/36.jpg)
Even simple quantum programming bugs lead to non-obvious symptoms
U
q0
q1 C
q0
q1 B A
D=
![Page 37: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/37.jpg)
Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D
U
q0
q1 C
q0
q1 B A
D=
Even simple quantum programming bugs lead to non-obvious symptoms
![Page 38: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/38.jpg)
Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D
U
q0
q1 C
q0
q1 B A
D=
Elementary single-qubit operations
Even simple quantum programming bugs lead to non-obvious symptoms
![Page 39: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/39.jpg)
U
q0
q1 C
q0
q1 B A
D=
Elementary two-qubit operationsRz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D
Correct,operation A unneeded
Even simple quantum programming bugs lead to non-obvious symptoms
![Page 40: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/40.jpg)
Unneeded
U
q0
q1 C
q0
q1 B A
D=
Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D
Correct,operation A unneeded
Even simple quantum programming bugs lead to non-obvious symptoms
![Page 41: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/41.jpg)
Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D
CNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q1, +angle/2); // ARz(q0, +angle/2); // D
Correct,operation A unneeded
Correct,operation C unneeded
Unneeded
U
q0
q1 C
q0
q1 B A
D=
Even simple quantum programming bugs lead to non-obvious symptoms
![Page 42: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/42.jpg)
Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D
CNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q1, +angle/2); // ARz(q0, +angle/2); // D
Rz(q1, -angle/2); CNOT(q0, q1);Rz(q1, +angle/2); CNOT(q0, q1);Rz(q0, +angle/2); // D
Correct,operation A unneeded
Correct,operation C unneeded
Incorrect,angles flipped
Unneeded?But signs on angles wrong!
U
q0
q1 C
q0
q1 B A
D=
Many ways to translate basic quantum operations to program code—many details to get right!
Even simple quantum programming bugs lead to non-obvious symptoms
![Page 43: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/43.jpg)
Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D
CNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q1, +angle/2); // ARz(q0, +angle/2); // D
Rz(q1, -angle/2); CNOT(q0, q1);Rz(q1, +angle/2); CNOT(q0, q1);Rz(q0, +angle/2); // D
Correct,operation A unneeded
Correct,operation C unneeded
Incorrect,angles flipped
|1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒(!∗#$%&'|1 ⟩1
U
q0
q1 C
q0
q1 B A
D=
Even simple quantum programming bugs lead to non-obvious symptoms
![Page 44: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/44.jpg)
Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D
CNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q1, +angle/2); // ARz(q0, +angle/2); // D
Rz(q1, -angle/2); CNOT(q0, q1);Rz(q1, +angle/2); CNOT(q0, q1);Rz(q0, +angle/2); // D
Correct,operation A unneeded
Correct,operation C unneeded
Incorrect,angles flipped
|1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒(!∗#$%&'|1 ⟩1
U
q0
q1 C
q0
q1 B A
D=
Even simple quantum programming bugs lead to non-obvious symptoms
![Page 45: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/45.jpg)
Rz(q1, +angle/2); // CCNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q0, +angle/2); // D
CNOT(q0, q1);Rz(q1, -angle/2); // BCNOT(q0, q1);Rz(q1, +angle/2); // ARz(q0, +angle/2); // D
Rz(q1, -angle/2); CNOT(q0, q1);Rz(q1, +angle/2); CNOT(q0, q1);Rz(q0, +angle/2); // D
Correct,operation A unneeded
Correct,operation C unneeded
Incorrect,angles flipped
|1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒!∗#$%&'|1 ⟩1 |1 ⟩1 → 𝑒(!∗#$%&'|1 ⟩1
U
q0
q1 C
q0
q1 B A
D=
Even simple quantum programming bugs lead to non-obvious symptoms
![Page 46: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/46.jpg)
QDB: From Quantum Algorithms Towards Correct Quantum ProgramsYipeng Huang, Margaret Martonosi | Princeton University 46
Detailed debugging of Shor’s factorization algorithm
Image credit: Metodi, Faruque, and Chong, Quantum Computing for Computer Architects, 2nd Ed., p26
![Page 47: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/47.jpg)
QDB: From Quantum Algorithms Towards Correct Quantum ProgramsYipeng Huang, Margaret Martonosi | Princeton University 47
Detailed debugging of Shor’s factorization algorithm
Image credit: Metodi, Faruque, and Chong, Quantum Computing for Computer Architects, 2nd Ed., p26
Quantum part of algorithm Classical post processing
![Page 48: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/48.jpg)
48
Bug type 3-B: mistake in composing gates using mirroringMirror imagesubmodules
Mirror imagesubmodules
![Page 49: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/49.jpg)
Assertions on classical & superposition stateshelp us decide whetherprograms are correct
Testbench for quantum Fourier transform,consisting of controlled-rotations
![Page 50: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/50.jpg)
Assertions on classical & superposition stateshelp us decide whetherprograms are correct
Testbench for quantum Fourier transform,consisting of controlled-rotations
QFT and iQFT should be inverses,but bug in controlled-rotationswould lead to flawed inversion
![Page 51: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/51.jpg)
Assertions on classical & superposition stateshelp us decide whetherprograms are correct
Testbench for quantum Fourier transform,consisting of controlled-rotations
QFT and iQFT should be inverses,but bug in controlled-rotationswould lead to flawed inversion
![Page 52: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/52.jpg)
Assertions on classical & superposition stateshelp us decide whetherprograms are correct
Testbench for quantum Fourier transform,consisting of controlled-rotations
QFT and iQFT should be inverses,but bug in controlled-rotationswould lead to flawed inversion
Flawed inversion caught infailure of classical assertionbased on Chi-squared tests
![Page 53: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/53.jpg)
Assertions on classical & superposition stateshelp us decide whetherprograms are correct
Testbench for quantum Fourier transform,consisting of controlled-rotations
QFT and iQFT should be inverses,but bug in controlled-rotationswould lead to flawed inversion
Flawed inversion caught infailure of classical assertionbased on Chi-squared tests
![Page 54: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/54.jpg)
Toolchain for debugging programs with tests on measurements
Breakpoint annotations
Quantum assembly
code
Simulate / execute on prototype quantum computer
Ensembleof
measurements
Statistical test:Is therea bug?
Assertion annotations
![Page 55: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/55.jpg)
QDB: From Quantum Algorithms Towards Correct Quantum ProgramsYipeng Huang, Margaret Martonosi | Princeton University 55
Quantum program bug types
1. Quantum initial values2. Basic operations3. Composing operations
A. IterationB. Mirroring
4. Classical input parameters5. Garbage collection of qubits
Defenses, debugging, and assertions
1. Preconditions2. Subroutines / unit tests3. Quantum specific language support
A. Numeric data typesB. Reversible computation
4. Algorithm progress assertions5. Postconditions
A first taxonomy of quantum program bugs and defenses.
![Page 56: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/56.jpg)
All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices
![Page 57: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/57.jpg)
Hq0m0
q1m0
q0m2
q1m3
PDγ=.36
q0m1
![Page 58: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/58.jpg)
Hq0m0
q1m0
q0m2
q1m3
PDγ=.36
q0m1
q0m0
q0m2rv
q1m0
q0m1
q1m3
![Page 59: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/59.jpg)
Hq0m0
q1m0
q0m2
q1m3
PDγ=.36
q0m1
q0m0
q0m2rv
q1m0
q0m1
q1m3
![Page 60: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/60.jpg)
Hq0m0
q1m0
q0m2
q1m3
PDγ=.36
q0m1
q0m0
q0m2rv
q1m0
q0m1
q1m3
Benchmarking ZX Calculus Circuit Optimization Against Qiskit Transpilation. Yeh et al.
![Page 61: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/61.jpg)
All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices
![Page 62: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/62.jpg)
Role of simulation in classical computer engineering
• VirtualBox• Gem5• Synopsys / Cadence• Spice
Warner Brothers Pictures
![Page 63: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/63.jpg)
Why is simulation important?
• "Developing good classical simulations (or even attempting to and failing) would also help clarify the quantum/classical boundary.”—Aram Harrow
• Development and debugging of quantum algorithm implementations
![Page 64: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/64.jpg)
Classical simulations of quantum computing
Quantum supremacy using a programmable superconducting processor (supplement). Arute et al.
![Page 65: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/65.jpg)
• Until we have quantum computer systems, building and testing quantum computers will rely on classical computer systems.
![Page 66: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/66.jpg)
All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices
![Page 67: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/67.jpg)
A small set of quantum gates are universal…
Quantum Computer Systems for Scientific Discovery. Alexeev et al.
![Page 68: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/68.jpg)
…but those universal gates decompose various ways…
A systems perspective of quantum computing. Matsuura et al.
![Page 69: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/69.jpg)
…and different quantum hardware support different gates.
Architecting Noisy Intermediate-Scale Quantum Computers: A Real-System Study. Murali et al.
![Page 70: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/70.jpg)
All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices
![Page 71: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/71.jpg)
Challenges and Opportunities of Near-Term Quantum Computing Systems. Corcoles et al.
![Page 72: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/72.jpg)
Compiling quantum program abstractions to optimal quantum execution
Compilation for maximum correctness, while respecting constraints:• variable qubit, operation, measurement reliability• connectivity constraints• parallelism
Will be topic of chapter on “extracting success.”
![Page 73: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/73.jpg)
All the quantum computer abstractions we don’t yet have right now1. Fault-tolerant, error-corrected quantum computers for algorithms2. Programming: High level languages to aid algorithm discovery3. Programming: Facilities for program correctness (debuggers, assertions)4. Programming: Intermediate representations that aid analysis5. Simulation: Support to validate and design next-gen quantum computers6. Architecture: Standard instruction set architectures7. Architecture: Memory hierarchy to store quantum data8. Microarchitecture: Abundant and reliable quantum devices
![Page 74: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/74.jpg)
Challenges and Opportunities of Near-Term Quantum Computing Systems. Corcoles et al.
![Page 75: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/75.jpg)
Quantum Computing Progress and Prospects. National Academies Press.
![Page 76: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/76.jpg)
Quantum Computing Progress and Prospects. National Academies Press.
Intel
![Page 77: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/77.jpg)
Intel Computer History Museum
![Page 78: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/78.jpg)
Intel
Wikipedia
![Page 79: A systems view of quantum computer engineering](https://reader034.vdocuments.mx/reader034/viewer/2022042311/625b5ce3055db5688675e607/html5/thumbnails/79.jpg)
Position statement for this graduate seminar
• Quantum computer engineering has become important.
• Requires computer systems expertise beyond quantum algorithms and quantum device physics.