Skip to content

Some problems when trying to run large circuits (maybe just some missing instructions in the docs) #79

@MatteoRobbiati

Description

@MatteoRobbiati

General description

I am trying to simulate quantum circuits using QiboTN and I would like to push the number of qubits to ~100.
As far as I understand, I have to set the approximation parameters via backend's runcard argument, as shown in the README.md.

I tried with qutensornet platform but it crashes:

File [~/Documents/PhD/envs/qibo/lib/python3.10/site-packages/quimb/tensor/tensor_core.py:2208](http://localhost:8888/home/matteo/Documents/PhD/envs/qibo/lib/python3.10/site-packages/quimb/tensor/tensor_core.py#line=2207), in Tensor.split(self, *args, **kwargs)
   2206 @functools.wraps(tensor_split)
   2207 def split(self, *args, **kwargs):
-> 2208     return tensor_split(self, *args, **kwargs)

File [~/anaconda3/envs/eqibo/lib/python3.10/functools.py:878](http://localhost:8888/home/matteo/anaconda3/envs/eqibo/lib/python3.10/functools.py#line=877), in singledispatch.<locals>.wrapper(*args, **kw)
    874 if not args:
    875     raise TypeError(f'{funcname} requires at least '
    876                     '1 positional argument')
--> 878 return dispatch(args[0].__class__)(*args, **kw)

TypeError: tensor_split() got an unexpected keyword argument 'qr_method'

Similarly, for the cutensornet crashes.


If I try to run the code without settings, it get killed if involving $\geq 28$ qubits (I guess because there is no approximation (?))


What is the way to set the approximation level?
And, is there a way to collect metrics quantifying this approximation?

To replicate

from qibo.models import QFT
import qibo

computation_settings = {
    "MPI_enabled": False,
    "MPS_enabled": {
        "qr_method": False,
        "svd_method": {
            "partition": "UV",
            "abs_cutoff": 1e-12,
        },
    },
    "NCCL_enabled": False,
    "expectation_enabled": False,
}

qibo.set_backend("qibotn", platform="qutensornet", runcard=computation_settings)

circ = QFT(nqubits=28)
probs = circ().probabilities()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions