# Backends

## Available Backends

To check available backends we will create a `StrangeworksOptimizer`

object and call the `backends`

method. We can print the names of the available backends with the following code:

`from strangeworks_optimization import StrangeworksOptimizer`

optimizer = StrangeworksOptimizer()

backends = optimizer.backends()

for backend in backends:

print(backend.name)

Here's are some available backend samplers supported through Strangeworks Optimization:

Solver | Description | Backends (see catalog for complete list) |
---|---|---|

D-Wave | D-Wave's quantum annealing hardware relies on metal loops of niobium that have tiny electrical currents running through them. | `dwave.Advantage_system6.4` , `dwave.Advantage2_prototype2.3` , `dwave.hybrid_binary_quadratic_model_version2p` , `dwave.hybrid_discrete_quadratic_model_version1p` , `dwave.hybrid_constrained_quadratic_model_version1p` , `dwave.SimulatedAnnealingSampler` , `dwave.RandomSampler` |

Gurobi | Gurobi is an industry-leading solver for mathematical optimization | `gurobi.qubo` , `gurobi.mps` |

Toshiba | Toshiba's Simulated Bifurcation Machine (SBM) is a quantum-inspired optimization algorithm that can be run on classical hardware | `toshibo.qubo` , `toshibo.qplib` , `toshiba.pubo` |

Quantagonia | Quantagonia offers a Hybrid Quantum Platform for solving complex computational problems | `quantagonia.qubo` , `quantagonia.mps` |

JiJ | JiJ is part of the Strangeworks Syndicate and is working on developing quantum annealing devices | `jij.SA` , `jij.SQA` , `jij.LeapHybridCQM` |

NEC | NEC is developing quantum annealers using superconducting parametron qubits with a greater number of all-to-all connected qubits. | `nec.vector_annealer` |

Hitachi | CMOS annealing machine is a non-Neumann architecture computer that Hitachi has developed by utilizing the structure of SRAM, a storage device, to perform optimization processing with the Ising model. | `hitachi.cmos_annealer` |

Fujitsu | Fujitsu's Digital Annealer provides an alternative to quantum computing technology, which is at present both very expensive and difficult to run. | `fujitsu.DA3` |

Aquila | Aquila is QuEra's 256-qubit neutral-atom quantum computer. It operates as an analog Hamiltonian simulator on a user-configurable architecture, executing programmable coherent quantum dynamics on up to 256 neutral-atom qubits | `braket.aquila` |

Note: This list is not exhaustive. For a complete list of backends, see the catalog or reach out via Slack here.

## Solver Parameters

Particular solvers may have specific parameters that can be set.
For example, the `D-Wave`

sampler has a `num_reads`

parameter that can be set to specify the number of samples to generate.
The `Gurobi`

sampler has a `time_limit`

parameter that can be set to specify the maximum time to run the solver and so on.

To set the parameters for a particular solver, we can pass `options`

to the `StrangeworksOptimizer`

during initialization.

`from strangeworks_optimization import StrangeworksOptimizer`

...

optimizer = StrangeworksOptimizer(model=model, solver=solver, options=options)

sw_job = optimizer.run()

Each sampler has its own Parameter Model available for import from `strangeworks_optimization_models.parameter_models`

. See the Optimization Providers section for more details on individual solvers and their parameters.