1 / 16

Quantum Simulators

Quantum Simulators. DoRon Motter August 2, 2001. Introduction. Currently a wide variety of quantum simulators are available Good to know to avoid duplication of effort Different simulators have different target audiences Different simulators have different strengths/weaknesses.

clark
Download Presentation

Quantum Simulators

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Quantum Simulators DoRon Motter August 2, 2001

  2. Introduction • Currently a wide variety of quantum simulators are available • Good to know to avoid duplication of effort • Different simulators have different target audiences • Different simulators have different strengths/weaknesses

  3. Simulator Space • Simulators of a single algorithm • ex. Shor’s Algorithm • Simulators for illustration • Often simulate a single algorithm • Give some sort of display with heavily annotated source • Quantum API’s / Programming Languages • Java Applets

  4. Single Algorithm • Often provide the best performance (for this single algorithm) • Performance results vary • Different ‘implementations’ of the algorithm • Different OS/language requirements • Different results(!) • Often undeveloped API’s

  5. Illustrative Simulators • Often Mathematica worksheets • Provide heavily annotated source • Often integrate source/annotations and display • Useful when attempting to understand (or explain)

  6. Quantum API’s • Provide ‘high-level’ quantum operations • Often provide completely generic QC simulation • The widest approach, with several good options

  7. Simulator Traits • Interface • C/C++ • GUI • Speed • Source Availability • Universality

  8. Single Algorithm: OpenQubit • http://www.ennui.net/~quantum/ • API but only complete enough to do Shor’s • Open Source (GPL) • Useful because it’s GPL and hopes to become an API

  9. Quantum API: QCE • http://rugth30.phys.rug.nl/compphys0/qce.htm • Quantum Computer Emulator • Provides support (GUI) for testing/sim of quantum algorithms on various hardware • Support for interactions as a result of implementation • Interesting because it takes into account physical implementation • Built in visualization

  10. Quantum API: QCE

  11. Quantum API: QDD • http://home.plutonium.net/~dagreve/qdd.html • (And SHORNUF…) • Uses BDD’s to represent quantum state • Gains an efficiency advantage • Loses the ability to perform analog computations • Open Source • Probably the most efficient ‘general purpose’ simulator

  12. Quantum API: QDD X.Set(0); // place the register in a superposition of states. X.Mix(); F.Set(0); expn(A,Number,X,F, 1); // F = a^X mod n // Perform a classical sampling of F. This collapses the entire quantum // state so that it is consistant with the value measured in F. Fv = F.Sample(); // Measure the period of X. Unfortunately, a bit of a quantum cheat. Pv = X.Period(); f1 = gcd((powmod(A,Pv/2,Number) + 1) % Number , Number) ; f2 = gcd((powmod(A,Pv/2,Number) + Number - 1) % Number , Number) ; Xv = X.Sample(); Cv = powmod(A,Xv,Number); assert(Cv == Fv, "Mismatch"); f1 = gcd(Number,f1); f2 = gcd(Number,f2); Factor = (f1 > f2 ? f1 : f2); found = (Factor > 1) && (Factor < Number);

  13. Quantum API: QCL • http://tph.tuwien.ac.at/~oemer/qcl.html • Quantum Computation Language • A high-level, architecture independent programming language • Separates algorithm from implementation • Provides reference implementation • Interprets commands in its own ‘shell’

  14. Quantum API: QCL operator dft(qureg q) { // main operator const n=#q; // set n to length of input int i; int j; // declare loop counters for i=0 to n-1 { for j=0 to i-1 { // apply conditional phase gates CPhase(2*pi/2^(i-j+1),q[n-i-1] & q[n-j-1]); } Mix(q[n-i-1]); // qubit rotation } flip(q); // swap bit order of the output }

  15. Quantum API: QCS • http://www.senko-corp.co.jp/qcs/ • Universal Quantum Computer Simulator • Closed Source, Commercial • GUI interface to building circuits

  16. Conclusion • Different approaches to Universality • GUI circuit building from gates • C++ algorithm writing • Tradeoffs must be considered • Universality vs. Speed

More Related