Portuguese
Idiomas
English
Bengali
French
German
Japanese
Korean
Portuguese
Spanish
Tamil

BackendV2

class BackendV2(provider=None, name=None, description=None, online_date=None, backend_version=None, **fields)[código fonte]

Bases: Backend, ABC

Abstract class for Backends

This abstract class is to be used for all Backend objects created by a provider. This version differs from earlier abstract Backend classes in that the configuration attribute no longer exists. Instead, attributes exposing equivalent required immutable properties of the backend device are added. For example backend.configuration().n_qubits is accessible from backend.num_qubits now.

The options attribute of the backend is used to contain the dynamic user configurable options of the backend. It should be used more for runtime options that configure how the backend is used. For example, something like a shots field for a backend that runs experiments which would contain an int for how many shots to execute.

If migrating a provider from BackendV1 or BaseBackend one thing to keep in mind is for backwards compatibility you might need to add a configuration method that will build a BackendConfiguration object and BackendProperties from the attributes defined in this class for backwards compatibility.

A backend object can optionally contain methods named get_translation_stage_plugin and get_scheduling_stage_plugin. If these methods are present on a backend object and this object is used for transpile() or generate_preset_pass_manager() the transpilation process will default to using the output from those methods as the scheduling stage and the translation compilation stage. This enables a backend which has custom requirements for compilation to specify a stage plugin for these stages to enable custom transformation of the circuit to ensure it is runnable on the backend. These hooks are enabled by default and should only be used to enable extra compilation steps if they are required to ensure a circuit is executable on the backend or have the expected level of performance. These methods are passed no input arguments and are expected to return a str representing the method name which should be a stage plugin (see: qiskit.transpiler.preset_passmanagers.plugin for more details on plugins). The typical expected use case is for a backend provider to implement a stage plugin for translation or scheduling that contains the custom compilation passes and then for the hook methods on the backend object to return the plugin name so that transpile() will use it by default when targetting the backend.

Initialize a BackendV2 based backend

Parâmetros
  • provider (Optional[Provider]) – An optional backwards reference to the Provider object that the backend is from

  • name (Optional[str]) – An optional name for the backend

  • description (Optional[str]) – An optional description of the backend

  • online_date (Optional[datetime]) – An optional datetime the backend was brought online

  • backend_version (Optional[str]) – An optional backend version string. This differs from the version attribute as version is for the abstract Backend abstract interface version of the object while backend_version is for versioning the backend itself.

  • fields – kwargs for the values to use to override the default options.

Levanta

AttributeError – If a field is specified that’s outside the backend’s options

Methods

acquire_channel

Return the acquisition channel for the given qubit.

control_channel

Return the secondary drive channel for the given qubit

drive_channel

Return the drive channel for the given qubit.

measure_channel

Return the measure stimulus channel for the given qubit.

qubit_properties

Return QubitProperties for a given qubit.

run

Run on the backend.

set_options

Set the options fields for the backend

Attributes

coupling_map

Return the CouplingMap object

dt

Return the system time resolution of input signals

This is required to be implemented if the backend supports Pulse scheduling.

Retorno

The input signal timestep in seconds. If the backend doesn’t define dt None will be returned

Tipo de retorno

dt

dtm

Return the system time resolution of output signals

Retorno

The output signal timestep in seconds.

Tipo de retorno

dtm

Levanta

NotImplementedError – if the backend doesn’t support querying the output signal timestep

instruction_durations

Return the InstructionDurations object.

instruction_schedule_map

Return the InstructionScheduleMap for the instructions defined in this backend’s target.

instructions

A list of Instruction tuples on the backend of the form (instruction, (qubits)

Tipo de retorno

List[Tuple[Instruction, Tuple[int]]]

max_circuits

The maximum number of circuits (or Pulse schedules) that can be run in a single job.

If there is no limit this will return None

meas_map

Return the grouping of measurements which are multiplexed

This is required to be implemented if the backend supports Pulse scheduling.

Retorno

The grouping of measurements which are multiplexed

Tipo de retorno

meas_map

Levanta

NotImplementedError – if the backend doesn’t support querying the measurement mapping

num_qubits

Return the number of qubits the backend has.

Tipo de retorno

int

operation_names

A list of instruction names that the backend supports.

Tipo de retorno

List[str]

operations

A list of Instruction instances that the backend supports.

Tipo de retorno

List[Instruction]

options

Return the options for the backend

The options of a backend are the dynamic parameters defining how the backend is used. These are used to control the run() method.

provider

Return the backend Provider.

Retorno

the Provider responsible for the backend.

Tipo de retorno

Provider

target

A qiskit.transpiler.Target object for the backend.

Tipo de retorno

Target

version = 2