D-Wave Ocean Software Documentation#

Ocean software is a suite of tools D-Wave Systems provides on the D-Wave GitHub repository for solving hard problems with quantum computers.

The Concepts tab defines and describes Ocean concepts and terminology, such as the following:

Quadratic models are polynomials with one or two variables per term. A simple example of a quadratic model is, \(Ax + By + Cxy\) where \(A\), \(B\), and \(C\) are constants. Single-variable terms—\(Ax\) and \(By\) here—are linear with the constant biasing the term’s variable. Two-variable terms—\(Cxy\) here—are quadratic with a relationship between the variables.

Samplers are processes that sample from low energy states of a problem’s objective function. A BQM sampler samples from low energy states in models such as those defined by an Ising equation or a Quadratic Unconstrained Binary Optimization (QUBO) problem and returns an iterable of samples, in order of increasing energy.

To solve an arbitrarily posed binary quadratic problem directly on a D-Wave system requires mapping, called minor embedding, to the QPU Topology of the system’s quantum processing unit (QPU).

To solve a bqm on the D-Wave system, you must map it to a graph that represents the topology of the system’s qubits.

The Getting Started tab walks you through installing and beginning to use Ocean tools, including:

The CLI tab introduces the dwave executable, installed with the SDK, that provides an interactive command line interface (CLI) for setting up and configuring your development environment.

For example, the dwave ping command tests communications with the quantum computer configured using the dwave setup or dwave config commands.

The example below, for a Bash Unix shell, pings only QPU solvers.

$ dwave ping --client qpu
Using endpoint: https://cloud.dwavesys.com/sapi
Using solver: DW_2000Q_6
Submitted problem ID: 34f773f7-77dc-7fa5-a7d5-7e397d90fc4a

Wall clock time:
 * Solver definition fetch: 1888.499 ms
 * Problem submit and results fetch: 1038.042 ms
 * Total: 2926.541 ms

QPU timing:
 * post_processing_overhead_time = 307.0 us
 * qpu_access_overhead_time = 1185.96 us
 * qpu_access_time = 10995.04 us
 * qpu_anneal_time_per_sample = 20.0 us
 * qpu_delay_time_per_sample = 20.54 us
 * qpu_programming_time = 10756.1 us
 * qpu_readout_time_per_sample = 198.4 us
 * qpu_sampling_time = 238.94 us
 * total_post_processing_time = 307.0 us

The Packages tab lists and summarizes all the SDK packages, such as these:

Quadratic models: BQM, CQM.

Classical algorithms for solving binary quadratic models.

D-Wave samplers and composites.

Framework for building hybrid samplers.