Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

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)

GitHub

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 from backend.configuration() and backend.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 the Qobj

  • qobj_header (Union[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 (Optional[int]) – Number of repetitions of each circuit, for sampling. Default: 1024 or max_shots from the backend configuration, whichever is smaller

  • memory (Optional[bool]) – 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.

  • 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 by schedule_los if specified. Must have length n_qubits.

  • meas_lo_freq (Optional[List[float]]) – List of measurement LO frequencies in Hz. Overridden by schedule_los if specified. Must have length n_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 validate qubit_lo_freq. Must have length n_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 validate meas_lo_freq. Must have length n_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 from default_qubit_los and default_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 of rep_time and must be from the range supplied by the backend (backend.configuration().rep_delay_range). Default is given by backend.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

Qobj

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

Was this page helpful?
Report a bug or request content on GitHub.