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

Epic: Implement a local federated (enclave) execution strategy in the C++ target #1382

Open
3 of 7 tasks
cmnrd opened this issue Sep 28, 2022 · 0 comments
Open
3 of 7 tasks
Labels
cpp Related to C++ target enhancement Enhancement of existing feature epic

Comments

@cmnrd
Copy link
Collaborator

cmnrd commented Sep 28, 2022

The same underlying principles used for coordinating federated execution over network connections can also be used to coordinate the execution of reactors in the same process. This allows each enclavereactor to maintain its own logical time line. This should allow us to relax the barrier synchronization imposed by our runtimes. At the same time, the enclave execution is expected to be much more efficient than the federated execution as all network communication can be replaced with function calls.

Work items:

  • Build the infrastructure to generate multiple unconnected enclaves. #1383
  • Infrastructure for AST transformations and factored out delay transformation #1508
  • Implement a "simple" coordination strategy based on the current centralized federated coordination. This strategy should only support NET and TAG messages and not consider the PTAG messages (partial time advance grant). This solution will not support zero delay cycles in the reactor graph.
  • Implement a more advanced coordination strategy that supports PTAG and hence also supports cyclic reactor graphs.
  • Decide on a name. Currently we call the overall program an "affiliation" and the individual parts "affiliate". We are using the term 'enclave'.
  • Implement coordinated shutdown.
  • Provide more controls over the enclave execution. For example, it should be possible to specify the number of worker threads per enclave.

Future work (not part of this Epic, but important items to work on later):

  • Find a mechanism to automatically decide which reactors should become affiliates.
@cmnrd cmnrd added enhancement Enhancement of existing feature cpp Related to C++ target epic labels Sep 28, 2022
@cmnrd cmnrd changed the title Epic: Implement a local federated (affiliated) execution strategy in the C++ target Epic: Implement a local federated (enclave) execution strategy in the C++ target Dec 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cpp Related to C++ target enhancement Enhancement of existing feature epic
Projects
None yet
Development

No branches or pull requests

1 participant