import os
from iqm.cirq_iqm.iqm_sampler import IQMSampler
os.environ["IQM_TOKEN"] = ""
# TODO: Replace 'demo' with 'q5' or 'q50' to run on real hardware
sampler = IQMSampler("https://qx.vtt.fi/", quantum_computer="demo")Introduction to Cirq
This notebook demonstrates how to run quantum circuits on VTT QX using Cirq, Google’s open-source quantum computing framework. Cirq gives you direct control over circuit construction and gate-level operations, and integrates with IQM hardware via the cirq-iqm package.
In this example, a 3-qubit GHZ state is prepared and executed on a VTT QX device, and the measurement results are printed and plotted.
Setup
This notebook uses the following requirements.
pip install "iqm-client[cirq]>=33.0.0,<34.0.0"
pip install matplotlib
Job submission using Cirq
import cirq
from collections import Counter
from matplotlib import pyplot as plt
# Create named qubits (IQM uses 1-based naming)
q1, q2, q3 = cirq.NamedQubit("QB1"), cirq.NamedQubit("QB2"), cirq.NamedQubit("QB3")
# This example creates a GHZ state, replace it with your own code
circuit = cirq.Circuit(
[
cirq.H(q1),
cirq.CNOT(q1, q2),
cirq.CNOT(q1, q3),
cirq.measure(q1, q2, q3, key="result"),
]
)
print(circuit)
# Execute it on the quantum computing backend
result = sampler.run(circuit, repetitions=1000)
# Print and plot the result
measurements = result.measurements["result"]
counts = Counter(["".join(map(str, row)) for row in measurements])
probs = {k: v / sum(counts.values()) for k, v in sorted(counts.items())}
print(probs)
plt.bar(probs.keys(), probs.values())
plt.xlabel("Measurement outcomes")
plt.ylabel("Probability")
plt.show()Conclusion
This notebook demonstrated how to:
- Connect Cirq to VTT QX using
IQMSampler. - Define and execute a quantum circuit (GHZ state) using the Cirq framework.
- Retrieve and visualise measurement results.
For more information, see the cirq-iqm documentation.