QuNetSim
QuNetSim copied to clipboard
Stack Overflow when non-destructively Measuring GHZ Qubit on Node that Distributes and Keeps Part for Itself
Describe the bug When measuring a qubit non-destructively that is part of a GHZ that the thread process has distributed, it causes the thread in question to behave erratically on shutdown from network(stop) and causes it to hang and fail to end the execution.
To Reproduce Steps to reproduce the behavior:
- Create a process that distributes a ghz with distribute=False. Acks may not be required, but program behaved erratically when it did not await acks. host.send_ghz(receivers, qubit_id, await_ack=True, distribute=False)
- Acquire host's ghz qubit using its q_id q_ghz = host.get_qubit_by_id(q_id)
- Measure it, in any capacity. Storing it is not required. Default behavior is non_destructive=False q_ghz.measure()
- Allow the process to end, then let the program continue to network(stop). Based on my experience, the node in question will stop, but other nodes will always fail to. Expected behavior Network and all nodes should stop, as they do when measuring other qubits non-destructively.
Screenshots
System:
- OS: Ubuntu WSL - Python Venv
- Python Version: 3.9
Additional context Program uses a network of 6 nodes, with two nodes called R1 and R2 both running a process that measures the GHZ (for testing purposes) non-destructively.
Thanks for reporting. I'll check into it.
Which backend are you using for qubits? EQSN? Might want to try QuTiP backend and see if the same issues are there.
The backend is EQSN. I attempted to try other backends but none were downloaded when I originally used "pip qunetsim" on my venv. I assume there is a way to grab them directly, I just didn't see a reason to try at the moment.