qiskit.compiler.assemble
assemble(experiments, backend=None, qobj_id=None, qobj_header=None, shots=None, memory=False, seed_simulator=None, qubit_lo_freq=None, meas_lo_freq=None, qubit_lo_range=None, meas_lo_range=None, schedule_los=None, meas_level=MeasLevel.CLASSIFIED, meas_return=MeasReturnType.AVERAGE, meas_map=None, memory_slot_size=100, rep_time=None, rep_delay=None, parameter_binds=None, parametric_pulses=None, init_qubits=True, **run_config)
Assemble a list of circuits or pulse schedules into a Qobj
.
This function serializes the payloads, which could be either circuits or schedules, to create Qobj
“experiments”. It further annotates the experiment payload with header and configurations.
NOTE: Backend.options is not used within assemble. The required values (previously given by backend.set_options) should be manually extracted from options and supplied directly when calling.
Parameters
-
experiments (QuantumCircuit | List[QuantumCircuit] | Schedule | List[Schedule] | ScheduleBlock | List[ScheduleBlock]) – Circuit(s) or pulse schedule(s) to execute
-
backend (Backend | None) – If set, some runtime options are automatically grabbed from
backend.configuration()
andbackend.defaults()
. If any other option is explicitly set (e.g.,rep_time
), it will override the backend’s. If any other options is set in the run_config, it will also override the backend’s. -
qobj_id (str | None) – String identifier to annotate the
Qobj
-
qobj_header (QobjHeader | Dict | None) – User input that will be inserted in
Qobj
header, and will also be copied to the corresponding Result header. Headers do not affect the run. -
shots (int | None) – Number of repetitions of each circuit, for sampling. Default: 1024 or
max_shots
from the backend configuration, whichever is smaller -
memory (bool | None) – If
True
, per-shot measurement bitstrings are returned as well (provided the backend supports it). For OpenPulse jobs, only measurement level 2 supports this option. -
seed_simulator (int | None) – Random seed to control sampling, for when backend is a simulator
-
qubit_lo_freq (List[float] | None) – List of job level qubit drive LO frequencies in Hz. Overridden by
schedule_los
if specified. Must have lengthn_qubits.
-
meas_lo_freq (List[float] | None) – List of measurement LO frequencies in Hz. Overridden by
schedule_los
if specified. Must have lengthn_qubits.
-
qubit_lo_range (List[float] | None) – List of job level drive LO ranges each of form
[range_min, range_max]
in Hz. Used to validatequbit_lo_freq
. Must have lengthn_qubits.
-
meas_lo_range (List[float] | None) – List of job level measurement LO ranges each of form
[range_min, range_max]
in Hz. Used to validatemeas_lo_freq
. Must have lengthn_qubits.
-
schedule_los (List[Dict[PulseChannel, float] | LoConfig] | Dict[PulseChannel, float] | LoConfig | None) – Experiment level (ie circuit or schedule) LO frequency configurations for qubit drive and measurement channels. These values override the job level values from
default_qubit_los
anddefault_meas_los
. Frequencies are in Hz. Settable for qasm and pulse jobs. -
meas_level (int | MeasLevel) – Set the appropriate level of the measurement output for pulse experiments.
-
meas_return (str | MeasReturnType) –
Level of measurement data for the backend to return.
For
meas_level
0 and 1:single
returns information from every shot.avg
returns average measurement output (averaged over number of shots).
-
meas_map (List[List[Qubit]] | None) – List of lists, containing qubits that must be measured together.
-
memory_slot_size (int) – Size of each memory slot if the output is Level 0.
-
rep_time (int) – Time per program execution in seconds. Must be from the list provided by the backend (
backend.configuration().rep_times
). Defaults to the first entry. -
rep_delay (float) – Delay between programs in seconds. Only supported on certain backends (if
backend.configuration().dynamic_reprate_enabled=True
). If supported,rep_delay
will be used instead ofrep_time
and must be from the range supplied by the backend (backend.configuration().rep_delay_range
). Default is given bybackend.configuration().default_rep_delay
. -
parameter_binds (List[Dict[Parameter, float]] | None) – List of Parameter bindings over which the set of experiments will be executed. Each list element (bind) should be of the form {Parameter1: value1, Parameter2: value2, …}. All binds will be executed across all experiments; e.g., if parameter_binds is a length-n list, and there are m experiments, a total of m x n experiments will be run (one for each experiment/bind pair).
-
parametric_pulses (List[str] | None) –
A list of pulse shapes which are supported internally on the backend. Example:
['gaussian', 'constant']
-
init_qubits (bool) – Whether to reset the qubits to the ground state for each shot. Default:
True
. -
**run_config (Dict) – Extra arguments used to configure the run (e.g., for Aer configurable backends). Refer to the backend documentation for details on these arguments.
Returns
A Qobj
that can be run on a backend. Depending on the type of input, this will be either a QasmQobj
or a PulseQobj
.
Raises
QiskitError – if the input cannot be interpreted as either circuits or schedules
Return type