qiskit.compiler.assemble
assemble(experiments, backend=None, qobj_id=None, qobj_header=None, shots=None, memory=False, max_credits=None, 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 (
Union
[QuantumCircuit
,List
[QuantumCircuit
],Schedule
,List
[Schedule
],ScheduleBlock
,List
[ScheduleBlock
]]) – Circuit(s) or pulse schedule(s) to execute -
backend (
Optional
[Backend
]) – If set, some runtime options are automatically grabbed frombackend.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 (
Optional
[str
]) – String identifier to annotate theQobj
-
qobj_header (
Union
[QobjHeader
,Dict
,None
]) – User input that will be inserted inQobj
header, and will also be copied to the corresponding Result header. Headers do not affect the run. -
shots (
Optional
[int
]) – Number of repetitions of each circuit, for sampling. Default: 1024 ormax_shots
from the backend configuration, whichever is smaller -
memory (
Optional
[bool
]) – IfTrue
, per-shot measurement bitstrings are returned as well (provided the backend supports it). For OpenPulse jobs, only measurement level 2 supports this option. -
max_credits (
Optional
[int
]) – DEPRECATED This parameter is deprecated as of Qiskit Terra 0.20.0, and will be removed in a future release. This parameter has no effect on modern IBM Quantum systems, and no alternative is necessary. -
seed_simulator (
Optional
[int
]) – Random seed to control sampling, for when backend is a simulator -
qubit_lo_freq (
Optional
[List
[float
]]) – List of job level qubit drive LO frequencies in Hz. Overridden byschedule_los
if specified. Must have lengthn_qubits.
-
meas_lo_freq (
Optional
[List
[float
]]) – List of measurement LO frequencies in Hz. Overridden byschedule_los
if specified. Must have lengthn_qubits.
-
qubit_lo_range (
Optional
[List
[float
]]) – 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 (
Optional
[List
[float
]]) – 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 (
Union
[List
[Union
[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 fromdefault_qubit_los
anddefault_meas_los
. Frequencies are in Hz. Settable for qasm and pulse jobs. -
meas_level (
Union
[int
,MeasLevel
]) – Set the appropriate level of the measurement output for pulse experiments. -
meas_return (
Union
[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 (
Optional
[List
[List
[Qubit
]]]) – 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 (
Optional
[List
[Dict
[Parameter
,float
]]]) – 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 (
Optional
[List
[str
]]) –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 – Extra arguments used to configure the run (e.g., for Aer configurable backends). Refer to the backend documentation for details on these arguments.
Return type
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