Quil — which stands for Quantum Instruction Language — is the language in which you'll write programs for execution on Rigetti QPUs. Quil is is an open standard governed by the Quil-Lang organization.
Quil is most easily written and executed by using the Forest SDK.
Quil-T is an extension of Quil which supports analog, pulse-level control. Quil-T is natively supported by Rigetti QPUs.
Calibrations are a description of how a high-level Quil (or Quil-T) program should be transpiled into a series of analog pulse instructions. In particular, the calibrations that are provided by Rigetti are derived by a careful process of tuning various parameters to maximize the execution quality for the target QPU.
Within QCS, all Quil programs (even those not using Quil-T syntax) are transpiled to a Quil-T pulse program as a step in the assembly process. When you compile your Quil program for execution on a QPU, the most current calibrations available for the QPU will be used to calibrate your program. You can override these calibrations by supplying calibrations explicitly within your program in the form of
DEFCAL blocks. This support for user-calibrated programs gives you more precise control over how your programs are executed on our QPUs.
If you'd like to inspect Quil-T calibrations for a QPU, you can use the QCS API's get-quilt-calibrations endpoint. To call this endpoint using the QCS CLI, use the
qcs api command. For instance, to get calibrations for
qcs api get-quilt-calibrations Aspen-9
To inspect Quil-T calibrations for a QPU using pyQuil, you can use the
calibration_program property on
QPUCompiler. For instance, to get calibrations for
from pyquil import get_qcqc = get_qc("Aspen-9")print(qc.compiler.calibration_program)
OpenQASM v2 may be transpiled to Quil using the Quil compiler.