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

Develop Public/Private Algorithm Use-Case #52

Open
josephmckinsey opened this issue Dec 20, 2023 · 0 comments
Open

Develop Public/Private Algorithm Use-Case #52

josephmckinsey opened this issue Dec 20, 2023 · 0 comments

Comments

@josephmckinsey
Copy link
Contributor

Simulation Executor = Algorithm Developer (Private/Private Use-Case) ("Easy" case)

In this case, it's "simple" for someone with a private algorithm to plug their algorithm into a new Docker container into a
Kubernetes or local simulation.

For example, someone is trying to swap out the state estimator with their own algorithm, in order to benchmark their algorithm. Everything would run entirely locally, entirely on Kubernetes, entirely on Docker, etc.

  • The algorithm communicates with the HELICS broker directly in a standard way.

Simulation Executor != Algorithm Developer (Public/Private Use-Case)

An algorithm developer wants to provide the use of an algorithm to external simulations without exposing their code. As an example, an algorithm developer may want to provide limited use for testing without compromising their intellectual property.

  • The simulation execution needs to contact the algorithm to start a simulation.
  1. There needs to be a container published to Docker Hub which behaves identically to an open algorithm, but calls out to an external algorithm server for core computation.
  2. An external algorithm server manages multiple simulations at once. Each "control" container contacts the server to spin up a new instance for that simulation, and results are communicated to the control container. All communication takes place through a REST interface.

Additional burden is placed on algorithm developers to provide this "split" setup. It will probably never be "easy".

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

No branches or pull requests

1 participant