Skip to content

Commit

Permalink
drop references to ibmq cloud simulators (#948)
Browse files Browse the repository at this point in the history
(merge by may 15)
  • Loading branch information
richrines1 committed May 8, 2024
1 parent 558bd53 commit 2554be6
Show file tree
Hide file tree
Showing 16 changed files with 88 additions and 114 deletions.
8 changes: 3 additions & 5 deletions cirq-superstaq/cirq_superstaq/daily_integration_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ def test_get_resource_estimate(service: css.Service) -> None:
def test_get_targets(service: css.Service) -> None:
result = service.get_targets()
ibmq_target_info = gss.typing.Target(
target="ibmq_qasm_simulator",
target="ibmq_brisbane_qpu",
supports_submit=True,
supports_submit_qubo=False,
supports_compile=True,
Expand Down Expand Up @@ -279,7 +279,7 @@ def test_aces(service: css.Service) -> None:

def test_job(service: css.Service) -> None:
circuit = cirq.Circuit(cirq.measure(cirq.q(0)))
job = service.create_job(circuit, target="ibmq_qasm_simulator", repetitions=10)
job = service.create_job(circuit, target="ibmq_brisbane_qpu", repetitions=10, method="dry-run")

job_id = job.job_id() # To test for https://github.com/Infleqtion/client-superstaq/issues/452

Expand All @@ -297,9 +297,7 @@ def test_job(service: css.Service) -> None:
assert job.job_id() == job_id


@pytest.mark.parametrize(
"target", ["cq_sqorpius_simulator", "aws_sv1_simulator", "ibmq_qasm_simulator"]
)
@pytest.mark.parametrize("target", ["cq_sqorpius_simulator", "aws_sv1_simulator"])
def test_submit_to_provider_simulators(target: str, service: css.Service) -> None:
q0 = cirq.LineQubit(0)
q1 = cirq.LineQubit(1)
Expand Down
2 changes: 1 addition & 1 deletion cirq-superstaq/cirq_superstaq/sampler.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class Sampler(cirq.Sampler):
"Insert superstaq token that you received from https://superstaq.infleqtion.com"
)
q0, q1 = cirq.LineQubit.range(2)
sampler = service.sampler("ibmq_qasm_simulator")
sampler = service.sampler("ibmq_brisbane_qpu")
circuit = cirq.Circuit(cirq.H(q0), cirq.CNOT(q0, q1), cirq.measure(q0))
print(sampler.sample(circuit, repetitions=5))
Expand Down
2 changes: 1 addition & 1 deletion cirq-superstaq/cirq_superstaq/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -702,7 +702,7 @@ def cq_compile(
def ibmq_compile(
self,
circuits: cirq.Circuit | Sequence[cirq.Circuit],
target: str = "ibmq_qasm_simulator",
target: str,
dynamical_decoupling: bool = True,
dd_strategy: str = "static_context_aware",
**kwargs: Any,
Expand Down
54 changes: 36 additions & 18 deletions cirq-superstaq/cirq_superstaq/service_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,15 +125,15 @@ def test_service_run_and_get_counts() -> None:
counts = service.get_counts(
circuits=circuit,
repetitions=4,
target="ibmq_qasm_simulator",
target="ss_unconstrained_simulator",
param_resolver=params,
)
assert counts == {"11": 1}

results = service.run(
circuits=circuit,
repetitions=4,
target="ibmq_qasm_simulator",
target="ss_unconstrained_simulator",
param_resolver=params,
)
assert results.histogram(key="a") == collections.Counter({3: 1})
Expand All @@ -149,7 +149,7 @@ def test_service_run_and_get_counts() -> None:
multi_results = service.run(
circuits=[circuit, circuit],
repetitions=10,
target="ibmq_qasm_simulator",
target="ss_unconstrained_simulator",
param_resolver=params,
)

Expand All @@ -160,7 +160,7 @@ def test_service_run_and_get_counts() -> None:
multi_counts = service.get_counts(
circuits=[circuit, circuit],
repetitions=4,
target="ibmq_qasm_simulator",
target="ss_unconstrained_simulator",
param_resolver=params,
)
assert multi_counts == [{"11": 1}, {"11": 1}]
Expand All @@ -185,10 +185,10 @@ def test_service_sampler() -> None:
}
],
"status": "Done",
"target": "ibmq_qasm_simulator",
"target": "ss_unconstrained_simulator",
}

sampler = service.sampler(target="ibmq_qasm_simulator")
sampler = service.sampler(target="ss_unconstrained_simulator")
q0 = cirq.LineQubit(0)
circuit = cirq.Circuit(cirq.X(q0), cirq.measure(q0, key="a"))
results = sampler.sample(program=circuit, repetitions=4)
Expand Down Expand Up @@ -372,7 +372,9 @@ def test_service_resource_estimate(mock_resource_estimate: mock.MagicMock) -> No
"resource_estimates": [{"num_single_qubit_gates": 0, "num_two_qubit_gates": 1, "depth": 2}]
}

assert service.resource_estimate(cirq.Circuit(), "ibmq_qasm_simulator") == resource_estimate
assert (
service.resource_estimate(cirq.Circuit(), "ss_unconstrained_simulator") == resource_estimate
)


@mock.patch(
Expand All @@ -390,7 +392,10 @@ def test_service_resource_estimate_list(mock_resource_estimate: mock.MagicMock)
]
}

assert service.resource_estimate([cirq.Circuit()], "ibmq_qasm_simulator") == resource_estimates
assert (
service.resource_estimate([cirq.Circuit()], "ss_unconstrained_simulator")
== resource_estimates
)


@mock.patch("general_superstaq.superstaq_client._SuperstaqClient.qscout_compile")
Expand Down Expand Up @@ -646,7 +651,10 @@ def test_service_ibmq_compile(mock_post: mock.MagicMock) -> None:
}

assert (
service.ibmq_compile(circuit, dd_strategy="dynamic", test_options="yes").circuit == circuit
service.ibmq_compile(
circuit, dd_strategy="dynamic", test_options="yes", target="ibmq_fake_qpu"
).circuit
== circuit
)

assert json.loads(mock_post.call_args.kwargs["json"]["options"]) == {
Expand All @@ -655,19 +663,29 @@ def test_service_ibmq_compile(mock_post: mock.MagicMock) -> None:
"test_options": "yes",
}

assert service.ibmq_compile([circuit]).circuits == [circuit]
assert service.ibmq_compile(circuit).pulse_sequence == mock.DEFAULT
assert service.ibmq_compile([circuit]).pulse_sequences == [mock.DEFAULT]
assert service.ibmq_compile(circuit).initial_logical_to_physical == initial_logical_to_physical
assert service.ibmq_compile([circuit]).initial_logical_to_physicals == [
assert service.ibmq_compile([circuit], target="ibmq_fake_qpu").circuits == [circuit]
assert service.ibmq_compile(circuit, target="ibmq_fake_qpu").pulse_sequence == mock.DEFAULT
assert service.ibmq_compile([circuit], target="ibmq_fake_qpu").pulse_sequences == [mock.DEFAULT]
assert (
service.ibmq_compile(circuit, target="ibmq_fake_qpu").initial_logical_to_physical
== initial_logical_to_physical
)
assert service.ibmq_compile([circuit], target="ibmq_fake_qpu").initial_logical_to_physicals == [
initial_logical_to_physical
]
assert service.ibmq_compile(circuit).final_logical_to_physical == final_logical_to_physical
assert service.ibmq_compile([circuit]).final_logical_to_physicals == [final_logical_to_physical]
assert (
service.ibmq_compile(circuit, target="ibmq_fake_qpu").final_logical_to_physical
== final_logical_to_physical
)
assert service.ibmq_compile([circuit], target="ibmq_fake_qpu").final_logical_to_physicals == [
final_logical_to_physical
]

with mock.patch.dict("sys.modules", {"qiskit": None}):
assert service.ibmq_compile(cirq.Circuit()).pulse_sequence is None
assert service.ibmq_compile([cirq.Circuit()]).pulse_sequences is None
assert service.ibmq_compile(cirq.Circuit(), target="ibmq_fake_qpu").pulse_sequence is None
assert (
service.ibmq_compile([cirq.Circuit()], target="ibmq_fake_qpu").pulse_sequences is None
)

with pytest.raises(ValueError, match="'ss_example_qpu' is not a valid IBMQ target."):
service.ibmq_compile(cirq.Circuit(), target="ss_example_qpu")
Expand Down
4 changes: 2 additions & 2 deletions cirq-superstaq/docs/ibm_cirq_superstaq.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@
"id": "f47625ac",
"metadata": {},
"source": [
"Paste your Superstaq API token value into the `api_key` field of the `cirq_superstaq.Service` constructor below. Paste your IBM Q token value into the `ibmq_token` field. You can run a job on a specified target device (e.g., here `ibm_qasm_simulator` is used as the target device)."
"Paste your Superstaq API token value into the `api_key` field of the `cirq_superstaq.Service` constructor below. Paste your IBM Q token value into the `ibmq_token` field. You can run a job on a specified target device (e.g., here `ibm_brisbane_qpu` is used as the target device)."
]
},
{
Expand Down Expand Up @@ -199,7 +199,7 @@
}
],
"source": [
"job = service.create_job(circuit, repetitions=1, target=\"ibmq_qasm_simulator\", method=\"dry-run\")\n",
"job = service.create_job(circuit, repetitions=1, target=\"ibmq_brisbane_qpu\", method=\"dry-run\")\n",
"print(\"Job status: \", job.status())\n",
"print(job.counts())"
]
Expand Down
13 changes: 4 additions & 9 deletions docs/source/get_started/access_info/access_info_css.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -135,13 +135,8 @@
" Target(target='cq_sqorpius_qpu', supports_submit=False, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='cq_sqorpius_simulator', supports_submit=False, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_brisbane_qpu', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_extended-stabilizer_simulator', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_kyoto_qpu', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_mps_simulator', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_osaka_qpu', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_qasm_simulator', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_stabilizer_simulator', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_statevector_simulator', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ionq_aria-1_qpu', supports_submit=False, supports_submit_qubo=False, supports_compile=True, available=False, retired=False),\n",
" Target(target='ionq_aria-2_qpu', supports_submit=False, supports_submit_qubo=False, supports_compile=True, available=False, retired=False),\n",
" Target(target='ionq_forte-1_qpu', supports_submit=False, supports_submit_qubo=False, supports_compile=True, available=False, retired=False),\n",
Expand Down Expand Up @@ -481,7 +476,7 @@
}
],
"source": [
"service.target_info(\"ibmq_brisbane_qpu\") # retrieving information about the IBM Brisbane device"
"service.target_info(\"ibmq_brisbane_qpu\") # retrieving information about IBM's Brisbane device"
]
},
{
Expand Down Expand Up @@ -520,9 +515,9 @@
" cirq.measure(qubits[1]),\n",
")\n",
"\n",
"# Submitting the circuit to the IBMQ QASM Simulator\n",
"# Submitting the circuit to IBM's Brisbane QPU\n",
"job = service.create_job(\n",
" circuit, repetitions=100, method=\"dry-run\", target=\"ibmq_qasm_simulator\"\n",
" circuit, repetitions=100, method=\"dry-run\", target=\"ibmq_brisbane_qpu\"\n",
") # Specify \"dry-run\" as the method to submit & run a Superstaq simulation"
]
},
Expand Down Expand Up @@ -577,7 +572,7 @@
{
"data": {
"text/plain": [
"'ibmq_qasm_simulator'"
"'ibmq_brisbane_qpu'"
]
},
"execution_count": 9,
Expand Down
15 changes: 5 additions & 10 deletions docs/source/get_started/access_info/access_info_qss.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -135,13 +135,8 @@
" Target(target='cq_sqorpius_qpu', supports_submit=False, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='cq_sqorpius_simulator', supports_submit=False, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_brisbane_qpu', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_extended-stabilizer_simulator', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_kyoto_qpu', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_mps_simulator', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_osaka_qpu', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_qasm_simulator', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_stabilizer_simulator', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ibmq_statevector_simulator', supports_submit=True, supports_submit_qubo=False, supports_compile=True, available=True, retired=False),\n",
" Target(target='ionq_aria-1_qpu', supports_submit=False, supports_submit_qubo=False, supports_compile=True, available=False, retired=False),\n",
" Target(target='ionq_aria-2_qpu', supports_submit=False, supports_submit_qubo=False, supports_compile=True, available=False, retired=False),\n",
" Target(target='ionq_forte-1_qpu', supports_submit=False, supports_submit_qubo=False, supports_compile=True, available=False, retired=False),\n",
Expand Down Expand Up @@ -487,7 +482,7 @@
}
],
"source": [
"backend = provider.get_backend(\"ibmq_brisbane_qpu\") # selecting the IBM Brisbane device\n",
"backend = provider.get_backend(\"ibmq_brisbane_qpu\") # selecting IBM's Brisbane device\n",
"backend.target_info()"
]
},
Expand Down Expand Up @@ -522,8 +517,8 @@
"qc.cx(0, 1)\n",
"qc.measure([0, 1], [0, 1])\n",
"\n",
"# Submitting the circuit to the IBM Q QASM Simulator\n",
"backend = provider.get_backend(\"ibmq_qasm_simulator\")\n",
"# Submitting the circuit to IBM's Brisbane QPU\n",
"backend = provider.get_backend(\"ibmq_brisbane_qpu\")\n",
"job = backend.run(\n",
" [qc], method=\"dry-run\", shots=100\n",
") # Specify \"dry-run\" as the method to submit & run a Superstaq simulation"
Expand Down Expand Up @@ -580,7 +575,7 @@
{
"data": {
"text/plain": [
"<SuperstaqBackend('ibmq_qasm_simulator')>"
"<SuperstaqBackend('ibmq_brisbane_qpu')>"
]
},
"execution_count": 9,
Expand Down Expand Up @@ -666,7 +661,7 @@
}
],
"source": [
"backend = provider.get_backend(\"ibmq_qasm_simulator\")\n",
"backend = provider.get_backend(\"ibmq_brisbane_qpu\")\n",
"job_id = job.job_id() # Here we use the job ID from above, but this can be any old job ID\n",
"job_old = backend.retrieve_job(job_id)\n",
"job_old.input_circuits(index=0).draw(output=\"mpl\")"
Expand Down
6 changes: 3 additions & 3 deletions docs/source/get_started/basics/basics_css.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"id": "13f77c47",
"metadata": {},
"source": [
"Here we demonstrate the basics of Superstaq by creating a circuit in Cirq and submitting to IBM's QASM simulator. We assume you have a basic understanding of Python, as well as some familiarity with Cirq."
"Here we demonstrate the basics of Superstaq by creating a circuit in Cirq and submitting to IBM's Brisbane QPU. We assume you have a basic understanding of Python, as well as some familiarity with Cirq."
]
},
{
Expand Down Expand Up @@ -141,7 +141,7 @@
"## Submit your circuit and view results\n",
"Finally, we can submit our circuit to the desired device (by specifying `target=`) and view the results of our job. \n",
"\n",
"Here, we will simulate for [IBM's QASM simulator](https://quantum-computing.ibm.com/lab/docs/iql/manage/simulator), but you can access, compile, and simulate to many other devices via Superstaq!\n",
"Here, we will simulate for [IBM's Brisbane QPU](https://quantum.ibm.com/services/resources?system=ibm_brisbane), but you can access, compile, and simulate to many other devices via Superstaq!\n",
"\n",
"To perform the simulation, we must instruct Superstaq to simulate the circuit to the desired target backend by passing `\"dry-run\"` as the `method`. Simulation via `\"dry-run\"` is a feature that is available to all users including free-trial users! Finally, we can retrieve the results of the job, the counts, by calling `counts()`."
]
Expand All @@ -167,7 +167,7 @@
"job = service.create_job(\n",
" circuit,\n",
" method=\"dry-run\",\n",
" target=\"ibmq_qasm_simulator\",\n",
" target=\"ibmq_brisbane_qpu\",\n",
" repetitions=100,\n",
")\n",
"result = job.counts()\n",
Expand Down
6 changes: 3 additions & 3 deletions docs/source/get_started/basics/basics_qss.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"id": "681eea2a",
"metadata": {},
"source": [
"Here we demonstrate the basics of Superstaq by creating a circuit in Qiskit and submitting to IBM's QASM simulator. We assume you have a basic understanding of Python, as well as some familiarity with Qiskit."
"Here we demonstrate the basics of Superstaq by creating a circuit in Qiskit and submitting to IBM's Brisbane QPU. We assume you have a basic understanding of Python, as well as some familiarity with Qiskit."
]
},
{
Expand Down Expand Up @@ -140,7 +140,7 @@
"## Submit your circuit and view results\n",
"Finally, we can submit our circuit to the desired device (by calling `get_backend`) and view the results of our job. \n",
"\n",
"Here, we will simulate for [IBM's QASM simulator](https://quantum-computing.ibm.com/lab/docs/iql/manage/simulator), but you can access, compile, and simulate to many other devices via Superstaq!\n",
"Here, we will simulate for [IBM's Brisbane QPU](https://quantum.ibm.com/services/resources?system=ibm_brisbane), but you can access, compile, and simulate to many other devices via Superstaq!\n",
"\n",
"To perform the simulation, we must instruct Superstaq to simulate the circuit to the desired target backend by passing `\"dry-run\"` as the `method`. Simulation via `\"dry-run\"` is a feature that is available to all users including free-trial users! Finally, we can retrieve the results of the job, the counts, by calling `result().get_counts()`."
]
Expand All @@ -162,7 +162,7 @@
}
],
"source": [
"backend = provider.get_backend(\"ibmq_qasm_simulator\")\n",
"backend = provider.get_backend(\"ibmq_brisbane_qpu\")\n",
"\n",
"# Specify \"dry-run\" as the method to submit & run a Superstaq simulation\n",
"job = backend.run(qc, method=\"dry-run\", shots=100)\n",
Expand Down
35 changes: 0 additions & 35 deletions general-superstaq/general_superstaq/testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,6 @@
"available": True,
"retired": False,
},
"ibmq_extended-stabilizer_simulator": {
"supports_submit": True,
"supports_submit_qubo": False,
"supports_compile": True,
"available": True,
"retired": False,
},
"ibmq_fake-athens_qpu": {
"supports_submit": True,
"supports_submit_qubo": False,
Expand All @@ -85,34 +78,6 @@
"available": True,
"retired": False,
},
"ibmq_mps_simulator": {
"supports_submit": True,
"supports_submit_qubo": False,
"supports_compile": True,
"available": True,
"retired": False,
},
"ibmq_qasm_simulator": {
"supports_submit": True,
"supports_submit_qubo": False,
"supports_compile": True,
"available": True,
"retired": False,
},
"ibmq_stabilizer_simulator": {
"supports_submit": True,
"supports_submit_qubo": False,
"supports_compile": True,
"available": True,
"retired": False,
},
"ibmq_statevector_simulator": {
"supports_submit": True,
"supports_submit_qubo": False,
"supports_compile": True,
"available": True,
"retired": False,
},
"ionq_aria-1_qpu": {
"supports_submit": False,
"supports_submit_qubo": False,
Expand Down
Loading

0 comments on commit 2554be6

Please sign in to comment.