Getting started¶
As this provider is only needed to actually run a quantum circuit, pretty much the whole stack is identical as already known. The only difference is that the provider must be instantiated explicitly and the credentials must be given: either directly through user/password or by setting system environment variables ACQ_USER and ACQ_PWD.
import qiskit
import qiskit.extensions.standard as standard
from qiskit.circuit.measure import measure
from qiskit.circuit import QuantumCircuit, QuantumRegister, ClassicalRegister
from acquantum_qiskit import AcQuantumProvider
q = QuantumRegister(2, "q")
r = QuantumRegister(1, "r")
c = ClassicalRegister(2, "c")
ca = ClassicalRegister(1, "c^a")
qc = QuantumCircuit(q, r, c, ca, name="TestCircuit")
standard.h(qc, q[0])
standard.cx(qc, q[0], q[1])
standard.x(qc, r)
measure(qc, q, c)
measure(qc, r, ca)
# Create the provider
provider = AcQuantumProvider()
# load_account without arguments tries to load from system environment varables
# the user (ACQ_USER) and password (ACQ_PWD)
provider.enable_account()
# if this is not what you want instantiate instead
# ===> uncomment this if you want this:
# provider.enable_account(user='your_user', password='xxxxxxxx')
backend = provider.get_backend("SIMULATE") # type: AcQuantumBackend
# Execute and print out the results
job = qiskit.execute(qc, backend, shots=1024, seed=None)
result = job.result()
print(result.get_counts())