95
Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML—Machine Learning meets Quantum Computation Introduction to Quantum Programming 1/40

Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Introduction to Quantum Programming

Jaros law MiszczakIITiS PAN

April 27, 2018QIPLSIGML—Machine Learning meets Quantum Computation

Introduction to Quantum Programming 1/40

Page 2: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Our goals

Quantum programming

Manipulation of quantum gates

Programming QRAM

High-level programming

What next?

Q?

Introduction to Quantum Programming 2/40

Page 3: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Our goals

I Understand the difference between quantum and classicalprogramming.

I Introduce various approaches to quantum programming.

I Write some code.

Introduction to Quantum Programming 3/40

Page 4: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Our goals

I Understand the difference between quantum and classicalprogramming.

I Introduce various approaches to quantum programming.

I Write some code.

Introduction to Quantum Programming 3/40

Page 5: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Our goals

I Understand the difference between quantum and classicalprogramming.

I Introduce various approaches to quantum programming.

I Write some code.

Introduction to Quantum Programming 3/40

Page 6: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Our goals

I Understand the difference between quantum and classicalprogramming.

I Introduce various approaches to quantum programming.

I Write some code.(≡ Talk is cheap. Show me the quantum code.)

Introduction to Quantum Programming 3/40

Page 7: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programming

Introduction to Quantum Programming 4/40

Page 8: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingWhat is quantum programming?

Quantum programming is a process that leads from an originalformulation of a computing problem to executable quantumcomputer programs.

Introduction to Quantum Programming 5/40

Page 9: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingWhat is quantum programming?

I The only way to learn a new quantum programming languageis by writing programs in it.

I The process of preparing programs for a quantum computer isespecially attractive because it not only can be economicallyand scientifically rewarding, it can also be an aestheticexperience much like composing poetry or music.

I Only the modern quantum computer has made quantumprogramming both challenging and relevant.

Introduction to Quantum Programming 6/40

Page 10: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingWhat is quantum programming?

I The only way to learn a new quantum programming languageis by writing programs in it.

I The process of preparing programs for a quantum computer isespecially attractive because it not only can be economicallyand scientifically rewarding, it can also be an aestheticexperience much like composing poetry or music.

I Only the modern quantum computer has made quantumprogramming both challenging and relevant.

Introduction to Quantum Programming 6/40

Page 11: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingWhat is quantum programming?

I The only way to learn a new quantum programming languageis by writing programs in it.

I The process of preparing programs for a quantum computer isespecially attractive because it not only can be economicallyand scientifically rewarding, it can also be an aestheticexperience much like composing poetry or music.

I Only the modern quantum computer has made quantumprogramming both challenging and relevant.

Introduction to Quantum Programming 6/40

Page 12: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingWhy bother?

I Use real quantum computers.

I Play with quantum mechanics.

I Stretch your imagination by creating a new programminglanguage with quantum elements...

I ...or a language for describing quantum mechanics.

Introduction to Quantum Programming 7/40

Page 13: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingWhy bother?

I Use real quantum computers.

I Play with quantum mechanics.

I Stretch your imagination by creating a new programminglanguage with quantum elements...

I ...or a language for describing quantum mechanics.

Introduction to Quantum Programming 7/40

Page 14: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingWhy bother?

I Use real quantum computers.

I Play with quantum mechanics.

I Stretch your imagination by creating a new programminglanguage with quantum elements...

I ...or a language for describing quantum mechanics.

Introduction to Quantum Programming 7/40

Page 15: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingWhy bother?

I Use real quantum computers.

I Play with quantum mechanics.

I Stretch your imagination by creating a new programminglanguage with quantum elements...

I ...or a language for describing quantum mechanics.

Introduction to Quantum Programming 7/40

Page 16: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingHow to do quantum programming?

I Level 0: Manipulation of quantum gates.

I Level 1: Programming QRAM.

I Level 2: High-level programming.

Introduction to Quantum Programming 8/40

Page 17: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingHow to do quantum programming?

I Level 0: Manipulation of quantum gates.

I Level 1: Programming QRAM.

I Level 2: High-level programming.

Introduction to Quantum Programming 8/40

Page 18: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Quantum programmingHow to do quantum programming?

I Level 0: Manipulation of quantum gates.

I Level 1: Programming QRAM.

I Level 2: High-level programming.

Introduction to Quantum Programming 8/40

Page 19: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gates

Introduction to Quantum Programming 9/40

Page 20: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gates

Level 0

Direct usage of quantum gates.

I Visual manipulation of gates and circuits.

I Multiplication of matrices and vectors.

Introduction to Quantum Programming 10/40

Page 21: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesVisual manipulation of gates and circuits

https://quantumexperience.ng.bluemix.net/qx/editor

Introduction to Quantum Programming 11/40

Page 22: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesVisual manipulation of gates and circuits

http://www.quide.eu/ and https://bitbucket.org/quide/

Introduction to Quantum Programming 12/40

Page 23: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesVisual manipulation of gates and circuits

I Direct manipulation of quantum gates, measurement.

I Integration with text-based description of circuits: QASM(IBM Q) or C# (QuIDE).

I Useful for testing small circuits.

I Not so much for real algorithms.

I You have to live with connectivity limitations (IBM Q).

I But you can use a real quantum computer!

Introduction to Quantum Programming 13/40

Page 24: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesVisual manipulation of gates and circuits

I Direct manipulation of quantum gates, measurement.

I Integration with text-based description of circuits: QASM(IBM Q) or C# (QuIDE).

I Useful for testing small circuits.

I Not so much for real algorithms.

I You have to live with connectivity limitations (IBM Q).

I But you can use a real quantum computer!

Introduction to Quantum Programming 13/40

Page 25: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesVisual manipulation of gates and circuits

I Direct manipulation of quantum gates, measurement.

I Integration with text-based description of circuits: QASM(IBM Q) or C# (QuIDE).

I Useful for testing small circuits.

I Not so much for real algorithms.

I You have to live with connectivity limitations (IBM Q).

I But you can use a real quantum computer!

Introduction to Quantum Programming 13/40

Page 26: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesVisual manipulation of gates and circuits

I Direct manipulation of quantum gates, measurement.

I Integration with text-based description of circuits: QASM(IBM Q) or C# (QuIDE).

I Useful for testing small circuits.

I Not so much for real algorithms.

I You have to live with connectivity limitations (IBM Q).

I But you can use a real quantum computer!

Introduction to Quantum Programming 13/40

Page 27: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesVisual manipulation of gates and circuits

I Direct manipulation of quantum gates, measurement.

I Integration with text-based description of circuits: QASM(IBM Q) or C# (QuIDE).

I Useful for testing small circuits.

I Not so much for real algorithms.

I You have to live with connectivity limitations (IBM Q).

I But you can use a real quantum computer!

Introduction to Quantum Programming 13/40

Page 28: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesVisual manipulation of gates and circuits

I Direct manipulation of quantum gates, measurement.

I Integration with text-based description of circuits: QASM(IBM Q) or C# (QuIDE).

I Useful for testing small circuits.

I Not so much for real algorithms.

I You have to live with connectivity limitations (IBM Q).

I But you can use a real quantum computer!

Introduction to Quantum Programming 13/40

Page 29: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

You already know that

I quantum states are just vectors (at least we would like themto be)

I ...quantum gates are just matrices (at most 4× 4, and don’tmention the decoherence)...

I ...only the final step is somehow strange.

I Real Programmers do Quantum Computing in FORTRAN.

Introduction to Quantum Programming 14/40

Page 30: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

You already know that

I quantum states are just vectors (at least we would like themto be)

I ...quantum gates are just matrices (at most 4× 4, and don’tmention the decoherence)...

I ...only the final step is somehow strange.

I Real Programmers do Quantum Computing in FORTRAN.

Introduction to Quantum Programming 14/40

Page 31: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

You already know that

I quantum states are just vectors (at least we would like themto be)

I ...quantum gates are just matrices (at most 4× 4, and don’tmention the decoherence)...

I ...only the final step is somehow strange.

I Real Programmers do Quantum Computing in FORTRAN.

Introduction to Quantum Programming 14/40

Page 32: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

You already know that

I quantum states are just vectors (at least we would like themto be)

I ...quantum gates are just matrices (at most 4× 4, and don’tmention the decoherence)...

I ...only the final step is somehow strange.

I Real Programmers do Quantum Computing in FORTRAN.

Introduction to Quantum Programming 14/40

Page 33: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

For example, in Julia...

Introduction to Quantum Programming 15/40

Page 34: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

For example, in Julia...

Examples in Wolfram can be found in the GitHub repo

Introduction to Quantum Programming 15/40

Page 35: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

I Actually this is almost as good as it gets!

I Because...

I ...you already know the language.I ...it is very easy to implement classical control.I ...it is relatively easy to take into account effects of

decoherence.

I Missing: the memory management.

I And in most cases you don’t need all the power/libraries/etccoming with the host language.

Introduction to Quantum Programming 16/40

Page 36: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

I Actually this is almost as good as it gets!I Because...

I ...you already know the language.I ...it is very easy to implement classical control.I ...it is relatively easy to take into account effects of

decoherence.

I Missing: the memory management.

I And in most cases you don’t need all the power/libraries/etccoming with the host language.

Introduction to Quantum Programming 16/40

Page 37: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

I Actually this is almost as good as it gets!I Because...

I ...you already know the language.

I ...it is very easy to implement classical control.I ...it is relatively easy to take into account effects of

decoherence.

I Missing: the memory management.

I And in most cases you don’t need all the power/libraries/etccoming with the host language.

Introduction to Quantum Programming 16/40

Page 38: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

I Actually this is almost as good as it gets!I Because...

I ...you already know the language.I ...it is very easy to implement classical control.

I ...it is relatively easy to take into account effects ofdecoherence.

I Missing: the memory management.

I And in most cases you don’t need all the power/libraries/etccoming with the host language.

Introduction to Quantum Programming 16/40

Page 39: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

I Actually this is almost as good as it gets!I Because...

I ...you already know the language.I ...it is very easy to implement classical control.I ...it is relatively easy to take into account effects of

decoherence.

I Missing: the memory management.

I And in most cases you don’t need all the power/libraries/etccoming with the host language.

Introduction to Quantum Programming 16/40

Page 40: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

I Actually this is almost as good as it gets!I Because...

I ...you already know the language.I ...it is very easy to implement classical control.I ...it is relatively easy to take into account effects of

decoherence.

I Missing: the memory management.

I And in most cases you don’t need all the power/libraries/etccoming with the host language.

Introduction to Quantum Programming 16/40

Page 41: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesAlternative approach: Manipulation of vectors and matrices

I Actually this is almost as good as it gets!I Because...

I ...you already know the language.I ...it is very easy to implement classical control.I ...it is relatively easy to take into account effects of

decoherence.

I Missing: the memory management.

I And in most cases you don’t need all the power/libraries/etccoming with the host language.

Introduction to Quantum Programming 16/40

Page 42: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesWhere to go next?

I IBM Q Experience:https://quantumexperience.ng.bluemix.net/qx/editor

I Packages/matrix manipulation libraries:

I quantum-octave (Octave/Matlab):https://github.com/ZKSI/quantum-octave

I QuTiP (Python library): http://qutip.org/

I Many more at Quantikihttps://quantiki.org/wiki/list-qc-simulators

Introduction to Quantum Programming 17/40

Page 43: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesWhere to go next?

I IBM Q Experience:https://quantumexperience.ng.bluemix.net/qx/editor

I Packages/matrix manipulation libraries:

I quantum-octave (Octave/Matlab):https://github.com/ZKSI/quantum-octave

I QuTiP (Python library): http://qutip.org/

I Many more at Quantikihttps://quantiki.org/wiki/list-qc-simulators

Introduction to Quantum Programming 17/40

Page 44: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesWhere to go next?

I IBM Q Experience:https://quantumexperience.ng.bluemix.net/qx/editor

I Packages/matrix manipulation libraries:I quantum-octave (Octave/Matlab):

https://github.com/ZKSI/quantum-octave

I QuTiP (Python library): http://qutip.org/

I Many more at Quantikihttps://quantiki.org/wiki/list-qc-simulators

Introduction to Quantum Programming 17/40

Page 45: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesWhere to go next?

I IBM Q Experience:https://quantumexperience.ng.bluemix.net/qx/editor

I Packages/matrix manipulation libraries:I quantum-octave (Octave/Matlab):

https://github.com/ZKSI/quantum-octaveI QuTiP (Python library): http://qutip.org/

I Many more at Quantikihttps://quantiki.org/wiki/list-qc-simulators

Introduction to Quantum Programming 17/40

Page 46: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Manipulation of quantum gatesWhere to go next?

I IBM Q Experience:https://quantumexperience.ng.bluemix.net/qx/editor

I Packages/matrix manipulation libraries:I quantum-octave (Octave/Matlab):

https://github.com/ZKSI/quantum-octaveI QuTiP (Python library): http://qutip.org/

I Many more at Quantikihttps://quantiki.org/wiki/list-qc-simulators

Introduction to Quantum Programming 17/40

Page 47: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAM

Introduction to Quantum Programming 18/40

Page 48: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMWhat is QRAM?

QRAM ≡ Quantum Random Access Machine

the description of algorithm in abstract

model

probability distribution for further analysis

QCL Quantum Computation Language (32 qubits, seed 1156322590)[0/32] 1 |0>qcl> qureg a[10];qcl> H(a);[10/32] 0.03125 |0> + ... + 0.03125 |1023> (1024 terms)qcl> CNot(a[2],a[5]);[10/32] 0.03125 |0> + ... + 0.03125 |1023> (1024 terms)qcl> list a;: global a = <0,1,2,3,4,5,6,7,8,9>qureg a[10]qcl> dump a[1];qcl>: SPECTRUM a[1]: <1>0.5 |0>, 0.5 |1>qcl>

Quantium III

quantum memory

the outcome of measurement

the sequence of elementary gates

classical controlling device

Introduction to Quantum Programming 19/40

Page 49: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMAdvantages of QRAM

I data abstraction

I compound quantum operations

I classical control of quantum operations

Introduction to Quantum Programming 20/40

Page 50: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMAdvantages of QRAM

I data abstraction ≡ allocation of quantum memory

I compound quantum operations

I classical control of quantum operations

Introduction to Quantum Programming 20/40

Page 51: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMAdvantages of QRAM

I data abstraction ≡ allocation of quantum memory

I compound quantum operations

I classical control of quantum operations

Introduction to Quantum Programming 20/40

Page 52: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMAdvantages of QRAM

I data abstraction ≡ allocation of quantum memory

I compound quantum operations ≡ functions encapsulatingsequence of quantum gates or quantum primitives

I classical control of quantum operations

Introduction to Quantum Programming 20/40

Page 53: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMAdvantages of QRAM

I data abstraction ≡ allocation of quantum memory

I compound quantum operations ≡ functions encapsulatingsequence of quantum gates or quantum primitives

I classical control of quantum operations

Introduction to Quantum Programming 20/40

Page 54: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMAdvantages of QRAM

I data abstraction ≡ allocation of quantum memory

I compound quantum operations ≡ functions encapsulatingsequence of quantum gates or quantum primitives

I classical control of quantum operations ≡ loops, ifs etc.mixed with quantum code

Introduction to Quantum Programming 20/40

Page 55: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMSoftware architecture

(embeded)DSL

pyQuil

intermediate

representation

Quil

low-level QIR

gatelibrary

control pulses

19Q Acorn

Introduction to Quantum Programming 21/40

Page 56: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMQuantum middleware

I embedded domain specific language →C/Python/Wolfram/Haskell with library of functions

I data abstraction → allocation of classical and quantumregisters based on qu(b|d)its

I quantum functions → custom elementary gates defined bymatrices or compound statements

I classical control of quantum memory → by using hostlanguage

Introduction to Quantum Programming 22/40

Page 57: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMQuantum middleware

I embedded domain specific language →C/Python/Wolfram/Haskell with library of functions

I data abstraction → allocation of classical and quantumregisters based on qu(b|d)its

I quantum functions → custom elementary gates defined bymatrices or compound statements

I classical control of quantum memory → by using hostlanguage

Introduction to Quantum Programming 22/40

Page 58: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMQuantum middleware

I embedded domain specific language →C/Python/Wolfram/Haskell with library of functions

I data abstraction → allocation of classical and quantumregisters based on qu(b|d)its

I quantum functions → custom elementary gates defined bymatrices or compound statements

I classical control of quantum memory → by using hostlanguage

Introduction to Quantum Programming 22/40

Page 59: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMQuantum middleware

I embedded domain specific language →C/Python/Wolfram/Haskell with library of functions

I data abstraction → allocation of classical and quantumregisters based on qu(b|d)its

I quantum functions → custom elementary gates defined bymatrices or compound statements

I classical control of quantum memory → by using hostlanguage

Introduction to Quantum Programming 22/40

Page 60: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAM...its advantages...

I easy to learn and use

I auto-magic quantum memory management

I integration with classical machine

Introduction to Quantum Programming 23/40

Page 61: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAM...its advantages...

I easy to learn and use

I auto-magic quantum memory management

I integration with classical machine

Introduction to Quantum Programming 23/40

Page 62: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAM...its advantages...

I easy to learn and use

I auto-magic quantum memory management

I integration with classical machine

Introduction to Quantum Programming 23/40

Page 63: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAM...and its disadvantages

I very similar to low-level code

I lack of expressibility

Introduction to Quantum Programming 24/40

Page 64: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAM...and its disadvantages

I very similar to low-level code

I lack of expressibility

Introduction to Quantum Programming 24/40

Page 65: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMExample 1: ProjectQ

I Python library developed by ETH (https://projectq.ch/)I offers various targets

I hardware (IBM Q Experience)I resource counter (???)I graphical circuit representation

Introduction to Quantum Programming 25/40

Page 66: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMExample 1: ProjectQ

Introduction to Quantum Programming 26/40

Page 67: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMExample 1: ProjectQ

Nice features

I Natural (for physicist) syntax for executing quantum gates.

I Meta instructions for quantum-controlled quantum operationsand support for reverse call

Introduction to Quantum Programming 27/40

Page 68: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMExample 1: ProjectQ

Some examples...

Introduction to Quantum Programming 28/40

Page 69: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMExample 1: ProjectQ

Metainstruction Control

Execution of the code is based on the state of quantum register.

|0〉 H

|0〉 H

|0〉

Introduction to Quantum Programming 29/40

Page 70: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMExample 1: ProjectQ

Metainstruction Dagger

Reverse execution of the quantum code.

|0〉 H

|0〉

H

Introduction to Quantum Programming 30/40

Page 71: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMExample 2: Rigetti Forest and pyQuil

I Quil ≡ quantum assembly language.

I pyQuil ≡ Python library for manipulating quantumprogrammes in Quill.

I Access to Rigetti 19Q-Acorn quantum computer!

I More during the third day: Adam Szady, Quantumprogramming with (Py)Quil.

Introduction to Quantum Programming 31/40

Page 72: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMExample 2: Rigetti Forest and pyQuil

I Quil ≡ quantum assembly language.

I pyQuil ≡ Python library for manipulating quantumprogrammes in Quill.

I Access to Rigetti 19Q-Acorn quantum computer!

I More during the third day: Adam Szady, Quantumprogramming with (Py)Quil.

Introduction to Quantum Programming 31/40

Page 73: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMExample 2: Rigetti Forest and pyQuil

I Quil ≡ quantum assembly language.

I pyQuil ≡ Python library for manipulating quantumprogrammes in Quill.

I Access to Rigetti 19Q-Acorn quantum computer!

I More during the third day: Adam Szady, Quantumprogramming with (Py)Quil.

Introduction to Quantum Programming 31/40

Page 74: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Programming QRAMExample 2: Rigetti Forest and pyQuil

I Quil ≡ quantum assembly language.

I pyQuil ≡ Python library for manipulating quantumprogrammes in Quill.

I Access to Rigetti 19Q-Acorn quantum computer!

I More during the third day: Adam Szady, Quantumprogramming with (Py)Quil.

Introduction to Quantum Programming 31/40

Page 75: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingDomain specific languages

Level 2

Domain specific language with data and function abstraction.

I QCL (http://tph.tuwien.ac.at/~oemer/qcl.html)

I LanQ (http://lanq.sourceforge.net/)

I QPL anc cQPL(https://arxiv.org/abs/quant-ph/0511145)

I Scaffold (https://github.com/epiqc/ScaffCC)

Introduction to Quantum Programming 32/40

Page 76: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

I First release in 1998, last in 2014(http://tph.tuwien.ac.at/~oemer/qcl.html).

I Architecture independent programming language for quantumcomputers.

Introduction to Quantum Programming 33/40

Page 77: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

I First release in 1998, last in 2014(http://tph.tuwien.ac.at/~oemer/qcl.html).

I Architecture independent programming language for quantumcomputers.

Introduction to Quantum Programming 33/40

Page 78: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Features

I Syntax for reversibility (uncomputing).

I Different types of quantum memory for better optimization.

I Quantum conditions — quantum-controlled execution(generalization of controlled gates).

I Various types of compound statements (related with memorymanagement): quantum operators, quantum functions,procedures.

Introduction to Quantum Programming 34/40

Page 79: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Features

I Syntax for reversibility (uncomputing).

I Different types of quantum memory for better optimization.

I Quantum conditions — quantum-controlled execution(generalization of controlled gates).

I Various types of compound statements (related with memorymanagement): quantum operators, quantum functions,procedures.

Introduction to Quantum Programming 34/40

Page 80: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Features

I Syntax for reversibility (uncomputing).

I Different types of quantum memory for better optimization.

I Quantum conditions — quantum-controlled execution(generalization of controlled gates).

I Various types of compound statements (related with memorymanagement): quantum operators, quantum functions,procedures.

Introduction to Quantum Programming 34/40

Page 81: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Features

I Syntax for reversibility (uncomputing).

I Different types of quantum memory for better optimization.

I Quantum conditions — quantum-controlled execution(generalization of controlled gates).

I Various types of compound statements (related with memorymanagement): quantum operators, quantum functions,procedures.

Introduction to Quantum Programming 34/40

Page 82: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Advanced quantum memory management using types:

I qureg — basic type for quantum registers,

I quconst — cannot be modified,

I quvoid — has to be empty before the call,

I quscratch — has to be empty before and after the call.

Introduction to Quantum Programming 35/40

Page 83: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Advanced quantum memory management using types:

I qureg — basic type for quantum registers,

I quconst — cannot be modified,

I quvoid — has to be empty before the call,

I quscratch — has to be empty before and after the call.

Introduction to Quantum Programming 35/40

Page 84: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Advanced quantum memory management using types:

I qureg — basic type for quantum registers,

I quconst — cannot be modified,

I quvoid — has to be empty before the call,

I quscratch — has to be empty before and after the call.

Introduction to Quantum Programming 35/40

Page 85: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Advanced quantum memory management using types:

I qureg — basic type for quantum registers,

I quconst — cannot be modified,

I quvoid — has to be empty before the call,

I quscratch — has to be empty before and after the call.

Introduction to Quantum Programming 35/40

Page 86: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Types of quantum functions:

I procedure — classically controlled quantum computation,

I qufunct — used to implement irreversible functions,

I operator — compound quantum operation.

Introduction to Quantum Programming 36/40

Page 87: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Types of quantum functions:

I procedure — classically controlled quantum computation,

I qufunct — used to implement irreversible functions,

I operator — compound quantum operation.

Introduction to Quantum Programming 36/40

Page 88: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Types of quantum functions:

I procedure — classically controlled quantum computation,

I qufunct — used to implement irreversible functions,

I operator — compound quantum operation.

Introduction to Quantum Programming 36/40

Page 89: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 1: QCL – focus on quantum computing

Some examples...

Introduction to Quantum Programming 37/40

Page 90: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 2: cQPL – focus on quantum communication

I QPL (formal specification) and cQPL (implementation ofQPL, https://arxiv.org/abs/quant-ph/0511145)

I Functional paradigm.

I No publicly available implementation.

I Syntax for creating quantum communication channels bysharing (entangled) qubits.

Introduction to Quantum Programming 38/40

Page 91: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 2: cQPL – focus on quantum communication

I QPL (formal specification) and cQPL (implementation ofQPL, https://arxiv.org/abs/quant-ph/0511145)

I Functional paradigm.

I No publicly available implementation.

I Syntax for creating quantum communication channels bysharing (entangled) qubits.

Introduction to Quantum Programming 38/40

Page 92: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 2: cQPL – focus on quantum communication

I QPL (formal specification) and cQPL (implementation ofQPL, https://arxiv.org/abs/quant-ph/0511145)

I Functional paradigm.

I No publicly available implementation.

I Syntax for creating quantum communication channels bysharing (entangled) qubits.

Introduction to Quantum Programming 38/40

Page 93: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

High-level programmingExample 2: cQPL – focus on quantum communication

I QPL (formal specification) and cQPL (implementation ofQPL, https://arxiv.org/abs/quant-ph/0511145)

I Functional paradigm.

I No publicly available implementation.

I Syntax for creating quantum communication channels bysharing (entangled) qubits.

Introduction to Quantum Programming 38/40

Page 94: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

What next?

I IF D-Wave GOTO Andy Mason and Sheir Yarkoni, Tutorialon programming the D-Wave system

I IF IBM GOTO Ram Dusic Hren, IBM Q Experience:Hands-on workshop

I IF Rigetti GOTO Adam Szady, Quantum programming with(Py)Quil

Introduction to Quantum Programming 39/40

Page 95: Introduction to Quantum Programming · Introduction to Quantum Programming Jaros law Miszczak IITiS PAN April 27, 2018 QIPLSIGML|Machine Learning meets Quantum Computation Introduction

Q?

Q?https://github.com/jmiszczak/qprog-tutorial

Introduction to Quantum Programming 40/40