Getting Started#

Using Qiskit with Rigetti QPUs and simulators is easy!

To start out, let’s import the necessary components:

[1]:
from qiskit import (
    QuantumCircuit,
    QuantumRegister,
    ClassicalRegister,
    execute
)
from qiskit_rigetti import RigettiQCSProvider

Now, we’ll instantiate a provider and get a backend. Use provider.get_simulator() to retrieve a simulator, or use provider.get_backend() to retrieve a remote QPU backend (requires a reservation via Rigetti Quantum Cloud Services (QCS)).

[2]:
provider = RigettiQCSProvider()
backend = provider.get_simulator(num_qubits=2, noisy=True)  # or provider.get_backend(name="Aspen-9") when running via QCS

Now, let’s create a simple Bell state circuit:

[3]:
circuit = QuantumCircuit(QuantumRegister(2, "q"), ClassicalRegister(2, "ro"))
circuit.h(0)
circuit.cx(0, 1)
circuit.measure([0, 1], [0, 1])

circuit.draw()
[3]:
      ┌───┐     ┌─┐
 q_0: ┤ H ├──■──┤M├───
      └───┘┌─┴─┐└╥┘┌─┐
 q_1: ─────┤ X ├─╫─┤M├
           └───┘ ║ └╥┘
ro: 2/═══════════╩══╩═
                 0  1 

The circuit can now be run against the backend with Qiskit’s execute() function:

[4]:
job = execute(circuit, backend, shots=1000)
result = job.result()
counts = result.get_counts()
print("Counts for experiment:", counts)
Counts for experiment: {'01': 57, '11': 405, '00': 476, '10': 62}
[5]:
from qiskit.tools.visualization import plot_histogram

plot_histogram(counts)
[5]:
../_images/examples_GettingStarted_8_0.png

Quantum Cloud Services#

For more information on using Rigetti Quantum Cloud Services, see the QCS documentation.