-
Notifications
You must be signed in to change notification settings - Fork 63
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
No more use of unordered reactions in federated programs; fix for deadlocks in some federated programs #1684
Conversation
… upstream dependencies using chain id
… through the network
I do not want to stop running tests when one category fails. I would also like to experiment with increasing the amount of parallelism.
37fc482
to
26aba40
Compare
and sender reactors The attribute has a parameter either `Receiver` or `Sender`. If the action is in a network receiver, it is `FederatePortAction`.
Add a `NetworkReactor` for TypeScript
10894be
to
eeb7d34
Compare
The ability to do this is the initial motivation for this PR.
@lhstrh I anticipate that the tests will pass now (they pass locally and have been passing in recent commits). I know that this has been marked "ready for review" for some time just to trigger CI, but now I have cleaned it up and believe it is truly ready for review. |
common class `NetworkReactor` Those two classes have no common method or variable. However, it does when we want to apply the TPO level concept to reactor-ts. The common parent class `NetworkReactor` will be added for that in future work.
In reactor-ts, from now on, network receivers are stored in a map consists of portID and network receivers. Thus, portID should be passed when network receivers are registered to the map.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am only able to spot check this PR because it is so large, but my impression is that this yielded significant improvement in overall code quality with the many fixes and refactoring steps carried out in this effort. Thank you a ton, @petervdonovan and @byeong-gil, for bringing this to the finish line. Considering all the troubles you encountered on the way, I'm thoroughly impressed that you managed to get all the tests to pass! Congrats on reaching this milestone, everyone!
The current runtime support for federated execution relies on a set of blocking unordered "control reactions" for each input port that to block the handling of reactions until the required port statuses are known. The drawbacks of this design are discussed in Rengarajan 2023, along with a solution that no longer relies on the use of blocking unordered reactions. This PR implements that solution.
This work was initiated by @arengarajan99 and completed by @petervdonovan and @byeong-gil.
Companion PRs
NetworkSender
andNetworkSender
classes for new federated execution scheme reactor-ts#186Tasks completed
master
(@petervdonovan)Fix the broken C tests and check that they still passSee Update level assignment algorithm #1865 (comment) (EDIT: This was explained by Edward here and has since been properly addressed.)master
(@petervdonovan)outputControlReaction
->portAbsentReaction
For remaining non-required tasks, see: #1922
Fixes #1708.