Program compilation
Overview
The Keysight’s Quantum Control System library provides a toolkit to define compilation between abstraction layers,
called Linkers
. A
Linkers
is a configurable
translator that defines how given quantum instructions should be mapped to
hardware-level instructions.
A collection of linkers can be grouped together using a
LinkerPass
, and an
Executor
is used to map the instructions in a given
Program
into the new instructions defined by
the linkers.
General purpose linkers can be defined for a given device, and are meant to be saved to
file with save()
, then loaded with
load()
and used to compile programs targeted to that
device. Linkers can also be saved in a CalibrationSet
along with calibration data. The calibration set also has convenience methods that allow
for easy generation of a set of linkers for all qudits in the set.
There are two types of linkers:
Linker
A Linker
replaces a single, explicit instance of an
instruction into an explicit Program
. This is
useful for replacing specific operations in a
Program
with a sequence of one or more
operations.
See Introduction to linkers for examples.
ParameterizedLinker
A ParameterizedLinker
translates a family of input
instructions into a family of Program
s.
These families can be parameterized by the values of instruction
Targets
and by
Variable
s.
ParameterizedLinker
s provide a highly compact and
flexible way to express calibrated operations.
Guides

Simple Compilation Workflow
This guide walks through the basic steps of program compilation using a calibration set with a qudit topology.

Introduction to linkers
This guide shows how to initialize linkers in Keysight’s Quantum Control System, as well as to use a linker pass inside an executor to modify quantum programs.

Managing calibration data and linkers
This guide outlines how to use calibration data with linkers effectively.

Compiling single-qubit native gates to waveforms
This guide outlines how to use linkers to compile single-qubit native gates to waveforms.

Compiling multi-qubit native gates to waveforms
This guide outlines how to use linkers to compile multi-qubit native gates to waveforms.

Compiling measurements to waveforms and acquisitions
This guide outlines how to use linkers to compile measurements to waveforms and acquisitions.
List of examples
We provide several examples that show how to define and use linkers in experimentally relevant scenarios. In particular:
See Introduction to linkers for an introduction to linkers and the associated
LinkerPass
.See Managing calibration data and linkers for an overview of constructing and saving linkers in a
CalibrationSet
.See Compiling single-qubit native gates to waveforms and Compiling multi-qubit native gates to waveforms to learn how to translate native gates into pulse sequence implementations.
See Compiling measurements to waveforms and acquisitions to understand how to map measurements to hardware instructions.