Qiskit Backend Specifications for OpenQASM and OpenPulse Experiments David C. McKay1,∗ Thomas Alexander1, Luciano Bello1, Michael J. Biercuk2, Lev Bishop1, Jiayin Chen2, Jerry M. Chow1, Antonio D. C´orcoles1, Daniel Egger1, Stefan Filipp1, Juan Gomez1, Michael Hush2, Ali Javadi-Abhari1, Diego Moreda1, Paul Nation1, Brent Paulovicks1, Erick Winston1, Christopher J. Wood1, James Wootton1 and Jay M. Gambetta1 1IBM Research 2Q-CTRL Pty Ltd, Sydney NSW Australia September 11, 2018 Abstract As interest in quantum computing grows, there is a pressing need for standardized API's so that algorithm designers, circuit designers, and physicists can be provided a common reference frame for designing, executing, and optimizing experiments. There is also a need for a language specification that goes beyond gates and allows users to specify the time dynamics of a quantum experiment and recover the time dynamics of the output. In this document we provide a specification for a common interface to backends (simulators and experiments) and a standarized data structure (Qobj | quantum object) for sending experiments to those backends via Qiskit. We also introduce OpenPulse, a language for specifying pulse level control (i.e. control of the continuous time dynamics) of a general quantum device independent of the specific arXiv:1809.03452v1 [quant-ph] 10 Sep 2018 hardware implementation. ∗
[email protected] 1 Contents 1 Introduction3 1.1 Intended Audience . .4 1.2 Outline of Document . .4 1.3 Outside of the Scope . .5 1.4 Interface Language and Schemas . .5 2 Qiskit API5 2.1 General Overview of a Qiskit Experiment . .7 2.2 Provider . .8 2.3 Backend .