Skip to content
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

Implementing Cutoff protocol, related synchronization communication tags, and general Improvements to protocol stability #120

Merged
merged 103 commits into from
Sep 6, 2024

Conversation

ba2tro
Copy link
Member

@ba2tro ba2tro commented May 19, 2024

Based on #114 and continued from #107

Besides the documentation work from #107 , the following changes are introduced to add decoherence to the protocols

  • the latest guid associated with slot is stored in a vector field in Register, earlier there was no way to access a slot's tag information just from the slot, this helps to implement the iscoherent function which just takes a slot and checks whether its coherent or not
  • Another vector field added to Register called retention_times which allows the user to provide individual retention time for each slot which is set to 5.0 time units by default
  • iscoherent function which takes a slot and returns whether its coherent or not. It also takes a buffer_time parameter, so that a swapper can choose slots that would be coherent for, say 2.0 units of time, and the messages passing is completed before the slot gets decoherent
  • EntanglerProt and more specifically findfreeslot has been modified to return already assigned slots that have decohered after it untag!s and traceouts them, this way we don't need a separate protocol to free the decoherent slots and make more mess. This also removes the need for the margin parameter in EntanglerProt that we were passing to findfreeslot and greatly simplifies the function body

This deals with the deadlocks and the plots from the grid example look pretty cool:

grid_sim6x6hv.mp4

@ba2tro
Copy link
Member Author

ba2tro commented Aug 10, 2024

I see there's work going on in qobase, the docs are building now(other than the random xvfb errors that happen now and then).There was an @ref that doesn't have a doctrine in qsymbolics

@Krastanov
Copy link
Member

you are getting these warnings because #143 is in progress. Do not worry about them.

@ba2tro ba2tro mentioned this pull request Aug 13, 2024
@ba2tro ba2tro requested a review from Krastanov August 19, 2024 21:03
@ba2tro
Copy link
Member Author

ba2tro commented Aug 21, 2024

@Krastanov this is ready to be merged

Copy link
Member

@Krastanov Krastanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

docs and changelog and version bump

@Krastanov Krastanov changed the title Deadlocks Implementing Cutoff protocol, related synchronization communication tags, and general Improvements to protocol stability Sep 6, 2024
@Krastanov Krastanov merged commit 88d64ca into QuantumSavory:master Sep 6, 2024
12 of 13 checks passed
@Krastanov
Copy link
Member

Woohoo! Thanks for taking care of this and shepherding it through the review process. I made a few changes, some related to minor stylistic documentation personal preferences, some related to the stability of the tests that were failing. Please check them out to make sure I did not miss anything.

I made a related issue #147 for a few minor things that would be nice to fix, but were not blocking.

@ba2tro
Copy link
Member Author

ba2tro commented Sep 6, 2024

Thanks a lot for pushing it through!

@ba2tro ba2tro deleted the deadlocks branch November 8, 2024 20:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants