-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Circuit based protocols run only on simulation #1065
Comments
Isn't it related to the discussion in #1063? I guess the backend is being instantiated in a way that ignores the specified platform (possibly using the global one, through I didn't inspect it directly, but if needed, I can take a look. |
Indeed, you are correct. At this point we can just move the discussion here if you agree. |
The problem is related to the fact that it is not trivial to get the backend from the platform (we need to do that since in qibocal the acquisition functions accept only the platform). This is why we tried to patch the code with #941 or #1063. We could do something like this: if platform.name in available_platforms() + ["dummy"]:
backend = construct_backend(backend="qibolab" , platform=platform)
else:
backend = get_backend() directly in the functions which are transpiling/executing circuits in qibolab. |
This solution looks okay to me. We could also make from qibolab import MetaBackend
MetaBackend().list_available() Another general comment regarding this issue is that we are potentially not getting when running on TII-QRC chips because the slurm prologue is setting the In general, if you also agree, I would like to move towards not using the |
I agree, for sure relying on a local backend is the proper solution. It would just be a bit repetitive to do it since we will need to change the acquisition function for all protocols in qibocal. I've also other refactors in mind so sooner or later we will need to modify the protocol structure. As already discussed I would postpone this type of refactors after merging the 0.2 branch. If everybody agrees I can open a PR with the fix involving available platforms (for |
Yes, I perfectly agree on this. Even more in general, it would be great to drop the
Instead of relying on the Eventually, I would like to take some time and refactor part of the internal structure of Qibocal, and how the information is passed around. I'm postponing this since this summer (after the |
At this point I would just go through |
Whenever we run a protocol containing circuit execution, it seems that the
platform
is ignored and the execution is launched on the default global backend which is most likely going to benumpy
. I remembered that we already dealt with this issue in the past #941. I don't know why this is happening again, perhaps it could be due to some recent changes in Qibo. I need to investigate more.To reproduce the issue it is sufficient to run any protocol involving circuits on the dummy platform.
Thanks @jykhoo1987 for spotting this issue.
The text was updated successfully, but these errors were encountered: