diff --git a/src/qibotn/backends/abstract.py b/src/qibotn/backends/abstract.py index 9b77f20..8747313 100644 --- a/src/qibotn/backends/abstract.py +++ b/src/qibotn/backends/abstract.py @@ -1,20 +1,11 @@ -from qibo.backends.numpy import NumpyBackend +from abc import ABC + from qibo.config import raise_error -DEFAULT_CONFIGURATION = { - "MPI_enabled": False, # TODO: cutensornet specific, TBRemoved - "NCCL_enabled": False, # TODO: cutensornet specific, TBRemoved - "expectation_enabled": False, - "pauli_string_pattern": None, - "MPS_enabled": False, - "gate_algo": None, - "mps_opts": None, -} +class QibotnBackend(ABC): -class QibotnBackend(NumpyBackend): - - def __init__(self, runcard: dict = DEFAULT_CONFIGURATION): + def __init__(self): super().__init__() def apply_gate(self, gate, state, nqubits): # pragma: no cover @@ -33,7 +24,6 @@ class QibotnBackend(NumpyBackend): def set_device(self, device): self.device = device - # @abstractmethod def configure_tn_simulation(self, **config): """Configure the TN simulation that will be performed.""" pass diff --git a/src/qibotn/backends/cutensornet.py b/src/qibotn/backends/cutensornet.py index d02fdd5..83c6b46 100644 --- a/src/qibotn/backends/cutensornet.py +++ b/src/qibotn/backends/cutensornet.py @@ -1,4 +1,5 @@ import numpy as np +from qibo.backends import NumpyBackend from qibo.config import raise_error from qibo.result import QuantumState @@ -7,7 +8,7 @@ from qibotn.backends.abstract import QibotnBackend CUDA_TYPES = {} -class CuTensorNet(QibotnBackend): # pragma: no cover +class CuTensorNet(NumpyBackend, QibotnBackend): # pragma: no cover # CI does not test for GPU """Creates CuQuantum backend for QiboTN.""" diff --git a/src/qibotn/backends/qmatchatea.py b/src/qibotn/backends/qmatchatea.py index ddeb0b8..00a5124 100644 --- a/src/qibotn/backends/qmatchatea.py +++ b/src/qibotn/backends/qmatchatea.py @@ -7,6 +7,7 @@ import numpy as np import qiskit import qmatchatea import qtealeaves +from qibo.backends import NumpyBackend from qibo.config import raise_error from qibotn.backends.abstract import QibotnBackend @@ -14,7 +15,7 @@ from qibotn.result import TensorNetworkResult @dataclass -class QMatchaTeaBackend(QibotnBackend): +class QMatchaTeaBackend(NumpyBackend, QibotnBackend): def __init__(self): super().__init__() diff --git a/src/qibotn/backends/quimb.py b/src/qibotn/backends/quimb.py index 30ef888..951bec1 100644 --- a/src/qibotn/backends/quimb.py +++ b/src/qibotn/backends/quimb.py @@ -1,10 +1,11 @@ +from qibo.backends import NumpyBackend from qibo.config import raise_error from qibo.result import QuantumState from qibotn.backends.abstract import QibotnBackend -class QuimbBackend(QibotnBackend): +class QuimbBackend(NumpyBackend, QibotnBackend): def __init__(self, runcard): super().__init__()