Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 19 additions & 3 deletions azure-quantum/azure/quantum/qiskit/backends/quantinuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ def _get_n_qubits(name):
name = name.lower()
if ".h2-" in name:
return 56
if ".helios-" in name:
return 98
warnings.warn(
UserWarning(f"Number of qubits not known for target {name}. Defaulting to 20."))
return 20
Expand Down Expand Up @@ -101,12 +103,18 @@ def _azure_config(self) -> Dict[str, str]:
def _get_n_qubits(self, name):
return _get_n_qubits(name)

def _get_default_target_profile(self, name):
if ".h2-" in name:
return TargetProfile.Adaptive_RI
else:
return TargetProfile.Adaptive_RIF

class QuantinuumSyntaxCheckerQirBackend(QuantinuumQirBackendBase):
backend_names = (
# Note: Target names on the same line are equivalent.
"quantinuum.sim.h2-1sc",
"quantinuum.sim.h2-2sc"
"quantinuum.sim.h2-2sc",
"quantinuum.sim.helios-1sc",
)

def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs):
Expand Down Expand Up @@ -137,14 +145,17 @@ def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs):
logger.info(
"Initializing %sSyntaxCheckerQirBackend", self._provider_name
)
if "target_profile" not in kwargs:
kwargs["target_profile"] = self._get_default_target_profile(name)
super().__init__(configuration=configuration, provider=provider, **kwargs)


class QuantinuumEmulatorQirBackend(QuantinuumQirBackendBase):
backend_names = (
# Note: Target names on the same line are equivalent.
"quantinuum.sim.h2-1e",
"quantinuum.sim.h2-2e"
"quantinuum.sim.h2-2e",
"quantinuum.sim.helios-1e",
)

def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs):
Expand Down Expand Up @@ -175,14 +186,17 @@ def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs):
logger.info(
"Initializing %sEmulatorQirBackend", self._provider_name
)
if "target_profile" not in kwargs:
kwargs["target_profile"] = self._get_default_target_profile(name)
super().__init__(configuration=configuration, provider=provider, **kwargs)


class QuantinuumQPUQirBackend(QuantinuumQirBackendBase):
backend_names = (
# Note: Target names on the same line are equivalent.
"quantinuum.qpu.h2-1",
"quantinuum.qpu.h2-2"
"quantinuum.qpu.h2-2",
"quantinuum.qpu.helios-1",
)

def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs):
Expand Down Expand Up @@ -211,6 +225,8 @@ def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs):
kwargs.pop("configuration", default_config)
)
logger.info("Initializing %sQPUQirBackend", self._provider_name)
if "target_profile" not in kwargs:
kwargs["target_profile"] = self._get_default_target_profile(name)
super().__init__(configuration=configuration, provider=provider, **kwargs)


Expand Down
12 changes: 10 additions & 2 deletions azure-quantum/azure/quantum/target/quantinuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
##
from typing import Any, Dict, Union
from typing import Any, Dict, Union, Optional
from warnings import warn

from azure.quantum.job.job import Job
Expand All @@ -20,6 +20,9 @@ class Quantinuum(Target):
"quantinuum.qpu.h2-2",
"quantinuum.sim.h2-2sc",
"quantinuum.sim.h2-2e",
"quantinuum.qpu.helios-1",
"quantinuum.sim.helios-1sc",
"quantinuum.sim.helios-1e",
)

_SHOTS_PARAM_NAME = "shots"
Expand All @@ -34,12 +37,17 @@ def __init__(
provider_id: str = "quantinuum",
content_type: str = "application/qasm",
encoding: str = "",
target_profile: Union[str, "TargetProfile"] = "Adaptive_RI",
target_profile: Optional[Union[str, "TargetProfile"]] = None,
**kwargs
):
if capability:
msg = "The 'capability' parameter is not used for the Quantinuum target."
warn(msg, DeprecationWarning)
if target_profile is None:
if ".h2-" in name:
target_profile = "Adaptive_RI"
else:
target_profile = "Adaptive_RIF"
super().__init__(
workspace=workspace,
name=name,
Expand Down
2 changes: 1 addition & 1 deletion azure-quantum/requirements-qsharp.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
qsharp>=1.0.33,<2.0
qsharp>=1.26.0,<2.0
Loading