qiskit-camp-asia-19 icon indicating copy to clipboard operation
qiskit-camp-asia-19 copied to clipboard

Design a pulse programming language

Open taalexander opened this issue 5 years ago • 10 comments

Abstract

Pulse programming in Qiskit is currently implemented as in-memory IR. Design a language and implement a parser/grammar using a standard Python package (see what QASM is using for example) for pulse programming that may be interpreted to form a pulse schedule.

Description

The pulse module in Qiskit allows scheduling of pulse instructions absolutely in time. A pulse schedule is a basic block of pulse instructions. Implement a low-level language that maps simply to the in-memory pulse IR and generate an interpreter that outputs pulse schedules. This is a large project, but is a rich field of open questions. To be amenable to compiler passes this should be a very low-level representation, similar to LLVA. For an overview of the virtual pulse execution module see the openQASM/Pulse transport specification.

Ideas to consider:

  • Should instructions be scheduled explicitly in time, or scheduled based on ordering.
  • Could this language be combined with QASM, so that there is seamless integration.
  • How would compiler directives be described?
  • How would system configuration information be included within the program? Should it be?
  • What sort of instructions will be required for classical control hardware? Play pulse, adjust frame, acquire, delay?
  • How would pulse functions be defined?
  • How would control flow be described?

Members

  • @githubhandle
  • @githubhandle - Slack: @slackhandle email: [email protected]
  • Qiskit Coach: @githubhandle

Deliverable

GitHub repo

taalexander avatar Nov 18 '19 01:11 taalexander

I'm studying theory of quantum programming language (for example, type systems), so interested in this topic. However, I don't know what pulse module is doing. Can I participate in this project ? ~~And if possible, are there some documents for studying pulse operations?~~ I noticed the paper's link. Thank you!

Suikaba avatar Nov 18 '19 10:11 Suikaba

I'm interested in this - Anastasia Marchenkova - Physicist

amarchenkova avatar Nov 19 '19 00:11 amarchenkova

I am interested in this. Sara Metwalli. I am a Computer Engineer! :)

SaraM92 avatar Nov 19 '19 00:11 SaraM92

I'm interested in this project. Shin Nishio, CS.

parton-quark avatar Nov 19 '19 01:11 parton-quark

Ok all interested, please find me and we can form a group :)

taalexander avatar Nov 19 '19 01:11 taalexander

is @taalexander the coacher of this group?

1ucian0 avatar Nov 19 '19 03:11 1ucian0

yes and @maikatakita

taalexander avatar Nov 19 '19 04:11 taalexander

Code: https://github.com/SaraM92/qiskit-terra

amarchenkova avatar Nov 20 '19 04:11 amarchenkova

Presentation: https://docs.google.com/presentation/d/1Y4ky9AYUzQBBoQ2x40uxgn7gFhfaYZFE7FqWlSXZ16A/edit?usp=sharing

amarchenkova avatar Nov 20 '19 07:11 amarchenkova

Video(presentation): https://youtu.be/duVMwBD9liM

parton-quark avatar Nov 22 '19 11:11 parton-quark