# BackendSampler

*class *`qiskit.primitives.BackendSampler(backend, options=None, bound_pass_manager=None, skip_transpilation=False)`

Bases: `BaseSampler`

[`PrimitiveJob`

[`SamplerResult`

]]

A `BaseSampler`

implementation that provides an interface for leveraging the sampler interface from any backend.

This class provides a sampler interface from any backend and doesn’t do any measurement mitigation, it just computes the probability distribution from the counts. It facilitates using backends that do not provide a native `BaseSampler`

implementation in places that work with `BaseSampler`

, such as algorithms in `qiskit.algorithms`

including `SamplingVQE`

. However, if you’re using a provider that has a native implementation of `BaseSampler`

, it is a better choice to leverage that native implementation as it will likely include additional optimizations and be a more efficient implementation. The generic nature of this class precludes doing any provider- or backend-specific optimizations.

Initialize a new BackendSampler

**Parameters**

**backend**(*BackendV1**|**BackendV2*) – Required: the backend to run the sampler primitive on**options**(*dict*(opens in a new tab)*| None*) – Default options.**bound_pass_manager**(*PassManager**| None*) – An optional pass manager to run after parameter binding.**skip_transpilation**(*bool*(opens in a new tab)) – If this is set to True the internal compilation of the input circuits is skipped and the circuit objects will be directly executed when this objected is called.

**Raises**

**ValueError**(opens in a new tab) – If backend is not provided

## Attributes

### backend

Returns: The backend which this sampler object based on

### circuits

Quantum circuits to be sampled.

**Returns**

The quantum circuits to be sampled.

### options

Return options values for the estimator.

**Returns**

options

### parameters

Parameters of quantum circuits.

**Returns**

List of the parameters in each quantum circuit.

### preprocessed_circuits

Preprocessed quantum circuits produced by preprocessing :returns: List of the transpiled quantum circuit

**Raises**

**QiskitError** – if the instance has been closed.

### transpile_options

Return the transpiler options for transpiling the circuits.

### transpiled_circuits

Transpiled quantum circuits. :returns: List of the transpiled quantum circuit

**Raises**

**QiskitError** – if the instance has been closed.

## Methods

### run

`run(circuits, parameter_values=None, **run_options)`

Run the job of the sampling of bitstrings.

**Parameters**

**circuits**(*QuantumCircuit**| Sequence[**QuantumCircuit**]*) – One of more circuit objects.**parameter_values**(*Sequence[**float*(opens in a new tab)*] | Sequence[Sequence[**float*(opens in a new tab)*]] | None*) – Parameters to be bound to the circuit.**run_options**– Backend runtime options used for circuit execution.

**Returns**

The job object of the result of the sampler. The i-th result corresponds to `circuits[i]`

evaluated with parameters bound as `parameter_values[i]`

.

**Raises**

**ValueError**(opens in a new tab) – Invalid arguments are given.

**Return type**

T

### set_options

`set_options(**fields)`

Set options values for the estimator.

**Parameters**

****fields** – The fields to update the options

### set_transpile_options

`set_transpile_options(**fields)`

Set the transpiler options for transpiler. :param **fields: The fields to update the options.

**Returns**

self.

**Raises**

**QiskitError** – if the instance has been closed.