Skip to content

Commit

Permalink
chore: rename h-series to quantinuum systems (#140)
Browse files Browse the repository at this point in the history
Co-authored-by: Irfan Khan <[email protected]>
  • Loading branch information
vanyae-cqc and irfankhan10 authored Feb 14, 2025
1 parent 929d1fa commit bebc968
Show file tree
Hide file tree
Showing 11 changed files with 47 additions and 47 deletions.
2 changes: 1 addition & 1 deletion examples/basics/auth_quotas.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
"\n",
"Your simulation, compilation and Nexus Lab quota will renew each month, but your database usage quota will not renew.\n",
"\n",
"In addition, if you have access to Quantinuum H-series devices you'll need to have a HQC quota."
"In addition, if you have access to Quantinuum Systems you'll need to have a HQC quota."
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions examples/basics/getting_started.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Quantinuum Nexus is a cloud-based platform that enables users to seamlessly run, review, and collaborate on quantum computing projects. The platform integrates support for various quantum targets using the TKET quantum programming tools to optimize circuit performance and translation between different targets. One such target is H-Series, powered by Honeywell. Each quantum target in nexus is called a `BackendConfig` and can be configured to access hardware, emulator or simulator. Quantinuum Nexus offers different types of jobs that represent a component of your workflow that is running on Nexus-hosted emulators or H-series.\n",
"Quantinuum Nexus is a cloud-based platform that enables users to seamlessly run, review, and collaborate on quantum computing projects. The platform integrates support for various quantum targets using the TKET quantum programming tools to optimize circuit performance and translation between different targets. One such target is the Quantinuum machine, H2-1. Each quantum target in nexus is called a `BackendConfig` and can be configured to access hardware, emulator or simulator. Quantinuum Nexus offers different types of jobs that represent a component of your workflow that is running on Nexus-hosted or Quantinuum-hosted emulators.\n",
"\n",
"* `CompileJobs` represent the TKET compilation of circuits for a particular target device.\n",
"* `ExecuteJobs` represent the execution of circuits on a quantum computer or simulator.\n",
Expand Down Expand Up @@ -193,7 +193,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"A `BackendConfig` must also be specified to start compilation jobs and execution jobs. A project can contain jobs using multiple `BackendConfig` specifications. To access H-Series devices and emulators, `qnx.QuantinuumConfig`, needs to be instantiated. The code-cell defines `QuantinuumConfig` to target a nexus-hosted emulator, `H1-Emulator`.\n",
"A `BackendConfig` must also be specified to start compilation jobs and execution jobs. A project can contain jobs using multiple `BackendConfig` specifications. To access Quantinuum hardware and emulators, `qnx.QuantinuumConfig`, needs to be instantiated. The code-cell defines `QuantinuumConfig` to target a nexus-hosted emulator, `H1-Emulator`.\n",
"\n",
"[Learn more about how to configure jobs to target specific devices in qnexus.](backend_configuration.ipynb)\n",
"\n",
Expand Down
4 changes: 2 additions & 2 deletions examples/basics/jobs_results.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"source": [
"# Jobs & Results\n",
"\n",
"Quantinuum Nexus offers different types of `Job` that represent a component of your workflow that is running in Nexus, H-series or a third-party.\n",
"Quantinuum Nexus offers different types of `Job` that represent a component of your workflow that is running in Nexus, Quantinuum Systems or a third-party.\n",
"\n",
"- CompileJobs represent the TKET compilation of circuits for a particular target device.\n",
"- ExecuteJobs represent the execution of circuits on a quantum computer or simulator.\n",
Expand Down Expand Up @@ -52,7 +52,7 @@
"\n",
"These jobs represent the TKET compilation of one or more circuit(s) in Nexus for a particular target backend.\n",
"\n",
"BackendConfigs define the target, in this case we are targetting the `H1-1LE` H-series noiseless simulator."
"BackendConfigs define the target, in this case we are targetting the `H1-1LE` noiseless simulator."
]
},
{
Expand Down
2 changes: 1 addition & 1 deletion examples/basics/projects_properties_context.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@
"\n",
"**NB**:\n",
"- projects must be archived before they can be deleted.\n",
"- project deletion won't cancel any jobs submitted to either H-series or third parties - so make sure that any running jobs are cancelled to be safe.\n",
"- project deletion won't cancel any jobs submitted to either Quantinuum Systems or third parties - so make sure that any running jobs are cancelled to be safe.\n",
"- project deletion will delete the data for all contributors to the project, so double check with your team members before deleting any data."
]
},
Expand Down
48 changes: 24 additions & 24 deletions examples/basics/quantinuum_examples.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
"# Quantinuum Simulators, Emulators and Quantum Hardware, via Nexus\n",
"\n",
"\n",
"This notebook outlines how to target and configure specific simulators, emulators and quantum hardware offered by Quantinuum.\n",
"This notebook outlines how to target and configure Quantinuum hardware or emulators.\n",
"\n",
"[Go to Full Example H-series Workflow using qnexus](#example-h-series-workflow)\n",
"[Go to Full Example Quantinuum Systems Workflow using qnexus](#example-quantinuum-systems-workflow)\n",
"\n",
"For more extensive documentation on emulators and hardware, please see the [H-series documentation](https://docs.quantinuum.com/h-series)"
"For more extensive documentation on emulators and hardware, please see the [Quantinuum Systems documentation](https://docs.quantinuum.com/quantinuum-systems)"
]
},
{
Expand All @@ -29,9 +29,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Available Quantinuum Devices\n",
"## Available Quantinuum Machines\n",
"\n",
"You can view which Quantinuum devices you have access to with the `devices` module.\n"
"You can view which Quantinuum machines you have access to with the `devices` module.\n"
]
},
{
Expand All @@ -47,7 +47,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"You can select which Quantinuum device you'd like to target via the `device_name` parameter in the `QuantinuumConfig` you pass as part of a job submission."
"You can select which Quantinuum machines you'd like to target via the `device_name` parameter in the `QuantinuumConfig` you pass as part of a job submission."
]
},
{
Expand All @@ -66,10 +66,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Calculating Cost (H-series and hardware-hosted emulators only)\n",
"## Calculating Cost\n",
"\n",
"\n",
"Nexus provides the ability to find out the cost of running circuit executions on Quantinuum quantum computers (e.g. `H1-1`) and hardware-hosted emulators (e.g. `H1-1E`). \n",
"Nexus provides the ability to find out the cost of running circuit executions on Quantinuum quantum computers (e.g. `H1-1`) and Quantinuum-hosted emulators (e.g. `H1-1E`). \n",
"\n",
"NB this is different from the cloud-hosted simulators (e.g. `H1-1LE`) or emulators (e.g. `H1-Emulator`) which are accounted for in your Simulation quota (measured in seconds), for which we do not offer cost estimation.\n",
"\n",
Expand All @@ -95,9 +94,9 @@
"source": [
"## Emulator Error Configuration\n",
"\n",
"By default, both the cloud-hosted (e.g. `H1-Emulator`) and hardware-hosted (e.g. `H1-1E`) emulators will model H-series quantum hardware. If desired this noise can be configured.\n",
"By default, both the cloud-hosted (e.g. `H1-Emulator`) and Quantinuum-hosted (e.g. `H1-1E`) emulators will model Quantinuum hardware. If desired this noise can be configured.\n",
"\n",
"For documentation on noise configuration, please see the [H-series emulator noise model documentation](https://docs.quantinuum.com/h-series/user_guide/emulator_user_guide/noise_model.html)"
"For documentation on noise configuration, please see the [Quantinuum emulator noise model documentation](https://docs.quantinuum.com/systems/user_guide/emulator_user_guide/noise_model.html)"
]
},
{
Expand All @@ -106,7 +105,7 @@
"metadata": {},
"outputs": [],
"source": [
"from qnexus.models.h_series_noise import UserErrorParams\n",
"from quantinuum_schemas.models.quantinuum_systems_noise import UserErrorParams\n",
"\n",
"my_params = UserErrorParams(\n",
" p1 = 0.1,\n",
Expand Down Expand Up @@ -140,13 +139,13 @@
"## Compiler Options\n",
"\n",
"\n",
"By default, additional compliation will NOT occur in the H-series submission stack (e.g. for quantum hardware or hardware-hosted emulators like `H1-1E`). However if desired, additional compilition can be configured.\n",
"By default, additional compliation will NOT occur in the Quantinuum submission stack (e.g. for quantum hardware or hardware-hosted emulators like `H1-1E`). However if desired, additional compilition can be configured.\n",
"\n",
"Certain compiler flags can be passed on to the compiler in the H-series submission stack. This is distinct from the TKET-based compilation that happens when you compile circuits in Nexus.\n",
"Certain compiler flags can be passed on to the compiler in the Quantinuum submission stack. This is distinct from the TKET-based compilation that happens when you compile circuits in Nexus.\n",
"\n",
"You can configure compiler options in the `QuantinuumConfig` by passing `no_opt=False` and `QuantinuumCompilerOptions` as arguments.\n",
"\n",
"If you would like more information on the compilation configuration available, please get in touch with H-series suppport."
"If you would like more information on the compilation configuration available, please get in touch with Quantinuum suppport."
]
},
{
Expand All @@ -157,7 +156,7 @@
"source": [
"from quantinuum_schemas.models.backend_config import QuantinuumCompilerOptions\n",
"\n",
"# Allow the H-series compiler to decide what 2-qubit gate to rebase to.\n",
"# Allow the hardware compiler to decide what 2-qubit gate to rebase to.\n",
"compiler_flags = {\"noreduce\": True}\n",
"\n",
"backend_config = qnx.QuantinuumConfig(\n",
Expand All @@ -173,7 +172,7 @@
"source": [
"## Submission Language selection\n",
"\n",
"You can specify the submission language for execute job submissions to H-series, available options include `QIR`, `AUTO` and `OPENQASM 2.0`.\n",
"You can specify the submission language for execute job submissions to Quantinuum Systems, available options include `QIR`, `AUTO` and `OPENQASM 2.0`.\n",
"\n",
"```python\n",
"execute_job_ref = qnx.start_execute_job(\n",
Expand All @@ -191,11 +190,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Queueing for H-Series hardware and emulators\n",
"## Queueing for Quantinuum Systems hardware and emulators\n",
"\n",
"Quantinuum Nexus is the default platform for submitting to H-series emulators and hardware, however H-series hardware and emulators have their own dedicated job queue.\n",
"Quantinuum Nexus is the default platform for submitting to Quantinuum hardware and emulators, however these have their own dedicated job queue that is 'below' Nexus.\n",
"\n",
"When you submit a job to H-series hardware or emulators, they will be entered into a fair-share queuing system. When the selected device is available the fair-share queueing algorithm will select a job approximately as follows:\n",
"When you submit a job to Quantinuum hardware or emulators, they will be entered into a fair-share queuing system. When the selected device is available the fair-share queueing algorithm will select a job approximately as follows:\n",
"\n",
"- Select jobs queued for active batches.\n",
"- Select an Organisation that has used the device the least in recent history.\n",
Expand All @@ -212,7 +211,7 @@
"source": [
"## Batching\n",
"\n",
"If you expect to run multiple circuits, or several circuits in succession (such as during a variational project) you can request that the H-series submission queue 'batches' your circuits together so they avoid queueing seperately. Circuits submitted to an existing batch will run immediately, provided they are submitted within 60 seconds of the completion of the last circuit you submitted to the batch. \n",
"If you expect to run multiple circuits, or several circuits in succession (such as during a variational project) you can request that the Quantinuum submission queue 'batches' your circuits together so they avoid queueing seperately. Circuits submitted to an existing batch will run immediately, provided they are submitted within 60 seconds of the completion of the last circuit you submitted to the batch. \n",
"\n",
"\n",
"If desired Nexus will attempt to automatically handle the batching of circuits when submitted in a list (such as an execute job with multiple circuits) or in succession (multiple execute job submissions).\n",
Expand All @@ -235,9 +234,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Example H-series workflow\n",
"# Example Quantinuum workflow\n",
"\n",
"The following is a minimal example workflow targetting the H-series emulator `H1-1E` to compile and execute a circuit with a custom noise model configuration."
"The following is a minimal example workflow targetting the Quantinuum emulator `H1-1E` to compile and execute a circuit with a custom noise model configuration."
]
},
{
Expand All @@ -247,6 +246,7 @@
"outputs": [],
"source": [
"import qnexus as qnx\n",
"from quantinuum_schemas.models.quantinuum_systems_noise import UserErrorParams\n",
"from pytket import Circuit\n",
"from datetime import datetime"
]
Expand Down Expand Up @@ -298,7 +298,7 @@
"circuit = Circuit(2).H(0).CX(0,1).measure_all()\n",
"\n",
"my_circuit_ref = qnx.circuits.upload(\n",
" name=f\"My H-series Circuit from {datetime.now()}\",\n",
" name=f\"My Q Systems Circuit from {datetime.now()}\",\n",
" circuit = circuit,\n",
" project = my_project_ref,\n",
")"
Expand Down
8 changes: 4 additions & 4 deletions examples/basics/wasm_examples.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Hybrid compute on Quantinuum devices via Nexus: QEC Decoder Toolkit\n",
"# Wasm Submission\n",
"\n",
"\n",
"Quantinuum offers real-time hybrid compute capability for your workflows. This capability executes Web Assembly (Wasm) in the H-Series stack (or Nexus-hosted H-series emulators) and enables use of libraries (e.g. linear algebra and graph algorithms) and complex datastructures (e.g. vectors and graphs) during real-time execution of a quantum circuit.\n",
"Quantinuum offers real-time hybrid compute capability for your workflows. This capability executes Web Assembly (Wasm) in the Quantinuum stack (or Nexus-hosted emulators) and enables use of libraries (e.g. linear algebra and graph algorithms) and complex datastructures (e.g. vectors and graphs) during real-time execution of a quantum circuit.\n",
"\n",
"This notebook uses Nexus to submit a circuit with a very simple Wasm example.\n",
"\n",
Expand Down Expand Up @@ -90,7 +90,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Upload our circuit to Nexus and compile it for our target Quantinuum device."
"Upload our circuit to Nexus and compile it for our target Quantinuum emulator."
]
},
{
Expand Down Expand Up @@ -188,7 +188,7 @@
"metadata": {},
"outputs": [],
"source": [
"result.get_counts()\n"
"result.get_counts()"
]
}
],
Expand Down
8 changes: 4 additions & 4 deletions integration/test_circuits.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,18 +87,18 @@ def test_circuit_get_cost(
qa_project_name: str,
) -> None:
"""Test that we can get the cost to run a CircuitRef,
on a particular H-series device."""
on a particular Quantinuum Systems device."""

my_proj = qnx.projects.get(name_like=qa_project_name)

my_h_series_circuit = qnx.circuits.upload(
my_q_systems_circuit = qnx.circuits.upload(
circuit=Circuit(2, 2).ZZPhase(0.5, 0, 1).measure_all(),
name="qa_h_series_circuit",
name="qa_q_systems_circuit",
project=my_proj,
)

cost = qnx.circuits.cost(
circuit_ref=my_h_series_circuit,
circuit_ref=my_q_systems_circuit,
n_shots=10,
backend_config=qnx.QuantinuumConfig(device_name="H1-1E"),
syntax_checker="H1-1SC",
Expand Down
6 changes: 3 additions & 3 deletions integration/test_jobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,14 +253,14 @@ def test_get_results_for_incomplete_execute(
my_proj = qnx.projects.get(name_like=qa_project_name)
my_circ = qnx.circuits.get(name_like=qa_circuit_name, project=my_proj)

my_h_series_circuit = qnx.circuits.upload(
my_q_systems_circuit = qnx.circuits.upload(
circuit=Circuit(2, 2).ZZPhase(0.5, 0, 1).measure_all(),
name="qa_h_series_circuit",
name="qa_q_systems_circuit",
project=my_proj,
)

execute_job_ref = qnx.start_execute_job(
circuits=[my_circ, my_h_series_circuit],
circuits=[my_circ, my_q_systems_circuit],
name=f"qnexus_integration_test_execute_job_{datetime.now()}",
project=my_proj,
backend_config=qnx.QuantinuumConfig(device_name="H1-1LE"),
Expand Down
10 changes: 5 additions & 5 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ pytket = "^1.34"
pytket-qiskit = {version = ">=0.50", optional = true}
websockets = ">11,<14"
pydantic-settings = "^2"
quantinuum-schemas = "^1.1"
quantinuum-schemas = "^2.0"

[tool.poetry.group.dev.dependencies]
jupyter = "^1.0.0"
Expand Down
Empty file added tests/__init__.py
Empty file.

0 comments on commit bebc968

Please sign in to comment.