qiskit.providers.models.PulseBackendConfiguration
class PulseBackendConfiguration(backend_name, backend_version, n_qubits, basis_gates, gates, local, simulator, conditional, open_pulse, memory, max_shots, coupling_map, n_uchannels, u_channel_lo, meas_levels, qubit_lo_range, meas_lo_range, dt, dtm, rep_times, meas_kernels, discriminators, hamiltonian=None, channel_bandwidth=None, acquisition_latency=None, conditional_latency=None, meas_map=None, max_experiments=None, sample_name=None, n_registers=None, register_map=None, configurable=None, credits_required=None, online_date=None, display_name=None, description=None, tags=None, channels=None, **kwargs)
Static configuration state for an OpenPulse enabled backend. This contains information about the set up of the device which can be useful for building Pulse programs.
Initialize a backend configuration that contains all the extra configuration that is made available for OpenPulse backends.
Parameters
- backend_name (
str
) – backend name. - backend_version (
str
) – backend version in the form X.Y.Z. - n_qubits (
int
) – number of qubits. - basis_gates (
List
[str
]) – list of basis gates names on the backend. - gates (
GateConfig
) – list of basis gates on the backend. - local (
bool
) – backend is local or remote. - simulator (
bool
) – backend is a simulator. - conditional (
bool
) – backend supports conditional operations. - open_pulse (
bool
) – backend supports open pulse. - memory (
bool
) – backend supports memory. - max_shots (
int
) – maximum number of shots supported. - coupling_map (list) – The coupling map for the device
- n_uchannels (
int
) – Number of u-channels. - u_channel_lo (
List
[List
[UchannelLO
]]) – U-channel relationship on device los. - meas_levels (
List
[int
]) – Supported measurement levels. - qubit_lo_range (
List
[List
[float
]]) – Qubit lo ranges for each qubit with form (min, max) in GHz. - meas_lo_range (
List
[List
[float
]]) – Measurement lo ranges for each qubit with form (min, max) in GHz. - dt (
float
) – Qubit drive channel timestep in nanoseconds. - dtm (
float
) – Measurement drive channel timestep in nanoseconds. - rep_times (
List
[float
]) – Supported repetition times (program execution time) for backend in μs. - meas_kernels (
List
[str
]) – Supported measurement kernels. - discriminators (
List
[str
]) – Supported discriminators. - hamiltonian (
Optional
[Dict
[str
,Any
]]) – An optional dictionary with fields characterizing the system hamiltonian. - channel_bandwidth (list) – Bandwidth of all channels (qubit, measurement, and U)
- acquisition_latency (list) – Array of dimension n_qubits x n_registers. Latency (in units of dt) to write a measurement result from qubit n into register slot m.
- conditional_latency (list) – Array of dimension n_channels [d->u->m] x n_registers. Latency (in units of dt) to do a conditional operation on channel n from register slot m
- meas_map (list) – Grouping of measurement which are multiplexed
- max_experiments (int) – The maximum number of experiments per job
- sample_name (str) – Sample name for the backend
- n_registers (int) – Number of register slots available for feedback (if conditional is True)
- register_map (list) – An array of dimension n_qubits X n_registers that specifies whether a qubit can store a measurement in a certain register slot.
- configurable (bool) – True if the backend is configurable, if the backend is a simulator
- credits_required (bool) – True if backend requires credits to run a job.
- online_date (datetime) – The date that the device went online
- display_name (str) – Alternate name field for the backend
- description (str) – A description for the backend
- tags (list) – A list of string tags to describe the backend
- channels (
Optional
[Dict
[str
,Any
]]) – An optional dictionary containing information of each channel – their purpose, type, and qubits operated on. - **kwargs – Optional fields.
__init__
__init__(backend_name, backend_version, n_qubits, basis_gates, gates, local, simulator, conditional, open_pulse, memory, max_shots, coupling_map, n_uchannels, u_channel_lo, meas_levels, qubit_lo_range, meas_lo_range, dt, dtm, rep_times, meas_kernels, discriminators, hamiltonian=None, channel_bandwidth=None, acquisition_latency=None, conditional_latency=None, meas_map=None, max_experiments=None, sample_name=None, n_registers=None, register_map=None, configurable=None, credits_required=None, online_date=None, display_name=None, description=None, tags=None, channels=None, **kwargs)
Initialize a backend configuration that contains all the extra configuration that is made available for OpenPulse backends.
Parameters
- backend_name (
str
) – backend name. - backend_version (
str
) – backend version in the form X.Y.Z. - n_qubits (
int
) – number of qubits. - basis_gates (
List
[str
]) – list of basis gates names on the backend. - gates (
GateConfig
) – list of basis gates on the backend. - local (
bool
) – backend is local or remote. - simulator (
bool
) – backend is a simulator. - conditional (
bool
) – backend supports conditional operations. - open_pulse (
bool
) – backend supports open pulse. - memory (
bool
) – backend supports memory. - max_shots (
int
) – maximum number of shots supported. - coupling_map (list) – The coupling map for the device
- n_uchannels (
int
) – Number of u-channels. - u_channel_lo (
List
[List
[UchannelLO
]]) – U-channel relationship on device los. - meas_levels (
List
[int
]) – Supported measurement levels. - qubit_lo_range (
List
[List
[float
]]) – Qubit lo ranges for each qubit with form (min, max) in GHz. - meas_lo_range (
List
[List
[float
]]) – Measurement lo ranges for each qubit with form (min, max) in GHz. - dt (
float
) – Qubit drive channel timestep in nanoseconds. - dtm (
float
) – Measurement drive channel timestep in nanoseconds. - rep_times (
List
[float
]) – Supported repetition times (program execution time) for backend in μs. - meas_kernels (
List
[str
]) – Supported measurement kernels. - discriminators (
List
[str
]) – Supported discriminators. - hamiltonian (
Optional
[Dict
[str
,Any
]]) – An optional dictionary with fields characterizing the system hamiltonian. - channel_bandwidth (list) – Bandwidth of all channels (qubit, measurement, and U)
- acquisition_latency (list) – Array of dimension n_qubits x n_registers. Latency (in units of dt) to write a measurement result from qubit n into register slot m.
- conditional_latency (list) – Array of dimension n_channels [d->u->m] x n_registers. Latency (in units of dt) to do a conditional operation on channel n from register slot m
- meas_map (list) – Grouping of measurement which are multiplexed
- max_experiments (int) – The maximum number of experiments per job
- sample_name (str) – Sample name for the backend
- n_registers (int) – Number of register slots available for feedback (if conditional is True)
- register_map (list) – An array of dimension n_qubits X n_registers that specifies whether a qubit can store a measurement in a certain register slot.
- configurable (bool) – True if the backend is configurable, if the backend is a simulator
- credits_required (bool) – True if backend requires credits to run a job.
- online_date (datetime) – The date that the device went online
- display_name (str) – Alternate name field for the backend
- description (str) – A description for the backend
- tags (list) – A list of string tags to describe the backend
- channels (
Optional
[Dict
[str
,Any
]]) – An optional dictionary containing information of each channel – their purpose, type, and qubits operated on. - **kwargs – Optional fields.
Methods
__init__ (backend_name, backend_version, …) | Initialize a backend configuration that contains all the extra configuration that is made available for OpenPulse backends. |
acquire (qubit) | Return the acquisition channel for the given qubit. |
control ([qubits, channel]) | Return the secondary drive channel for the given qubit – typically utilized for controlling multiqubit interactions. |
describe (channel) | Return a basic description of the channel dependency. Derived channels are given weights which describe how their frames are linked to other frames. For instance, the backend could be configured with this setting::. |
drive (qubit) | Return the drive channel for the given qubit. |
from_dict (data) | Create a new GateConfig object from a dictionary. |
get_channel_qubits (channel) | Return a list of indices for qubits which are operated on directly by the given channel . |
get_qubit_channels (qubit) | Return a list of channels which operate on the given qubit . |
measure (qubit) | Return the measure stimulus channel for the given qubit. |
to_dict () | Return a dictionary format representation of the GateConfig. |
Attributes
num_qubits | Returns the number of qubits. |
sample_rate | Sample rate of the signal channels in Hz (1/dt). |
acquire
acquire(qubit)
Return the acquisition channel for the given qubit.
Raises
BackendConfigurationError – If the qubit is not a part of the system.
Return type
Returns
Qubit measurement acquisition line.
control
control(qubits=None, channel=None)
Return the secondary drive channel for the given qubit – typically utilized for controlling multiqubit interactions. This channel is derived from other channels.
Parameters
- qubits (
Optional
[Iterable
[int
]]) – Tuple or list of qubits of the form (control_qubit, target_qubit). - channel (
Optional
[int
]) – Deprecated.
Raises
BackendConfigurationError – If the qubits
is not a part of the system or if the backend does not provide channels information in its configuration.
Return type
List
[ControlChannel
]
Returns
List of control channels.
describe
describe(channel)
Return a basic description of the channel dependency. Derived channels are given weights which describe how their frames are linked to other frames. For instance, the backend could be configured with this setting:
u_channel_lo = [
[UchannelLO(q=0, scale=1. + 0.j)],
[UchannelLO(q=0, scale=-1. + 0.j), UchannelLO(q=1, scale=1. + 0.j)]
]
Then, this method can be used as follows:
backend.configuration().describe(ControlChannel(1))
>>> {DriveChannel(0): -1, DriveChannel(1): 1}
Parameters
channel (ControlChannel
) – The derived channel to describe.
Raises
BackendConfigurationError – If channel is not a ControlChannel.
Return type
Dict
[DriveChannel
, complex
]
Returns
Control channel derivations.
drive
drive(qubit)
Return the drive channel for the given qubit.
Raises
BackendConfigurationError – If the qubit is not a part of the system.
Return type
Returns
Qubit drive channel.
from_dict
classmethod from_dict(data)
Create a new GateConfig object from a dictionary.
Parameters
data (dict) – A dictionary representing the GateConfig to create. It will be in the same format as output by to_dict()
.
Returns
The GateConfig from the input dictionary.
Return type
get_channel_qubits
get_channel_qubits(channel)
Return a list of indices for qubits which are operated on directly by the given channel
.
Raises
BackendConfigurationError – If channel
is not a found or if the backend does not provide channels information in its configuration.
Return type
List
[int
]
Returns
List of qubits operated on my the given channel
.
get_qubit_channels
get_qubit_channels(qubit)
Return a list of channels which operate on the given qubit
.
Raises
BackendConfigurationError – If qubit
is not a found or if the backend does not provide channels information in its configuration.
Return type
List
[Channel
]
Returns
List of Channel
s operated on my the given qubit
.
measure
measure(qubit)
Return the measure stimulus channel for the given qubit.
Raises
BackendConfigurationError – If the qubit is not a part of the system.
Return type
Returns
Qubit measurement stimulus line.
num_qubits
Returns the number of qubits.
In future, n_qubits should be replaced in favor of num_qubits for consistent use throughout Qiskit. Until this is properly refactored, this property serves as intermediate solution.
sample_rate
Sample rate of the signal channels in Hz (1/dt).
Return type
float
to_dict
to_dict()
Return a dictionary format representation of the GateConfig.
Returns
The dictionary form of the GateConfig.
Return type
dict