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

Distributed simulations #13

Closed
diegoferigo opened this issue Apr 4, 2019 · 2 comments
Closed

Distributed simulations #13

diegoferigo opened this issue Apr 4, 2019 · 2 comments

Comments

@diegoferigo
Copy link
Collaborator

diegoferigo commented Apr 4, 2019

This issue is somehow related to #12 about parallel simulations. The aim of #12 is exploiting multiple threads (or processes) running inside the same machine, here we focus more on exploiting multiple machines.

The obvious problem when executing distributed computations is synchronization between workers. The best solution that in the same time minimizes our effort (considering our current workforce) while maximizes the result is relying on ignition gazebo features:

Currently these features are still not mature, but there are already working demos (distributed and distributed levels).

To be honest, in order to be able to scale a simulation horizontally (i.e. spawn transparently many parallel workers), probably the parallel simulations of #12 can be treated in the same way of distributed simulations running on a single machine. This would greatly simplify their maintenance. The tradeoff is that in this way #12 would be implemented as multi-process instead of multi-thread.

@diegoferigo
Copy link
Collaborator Author

As reported here:

The distribution of simulation work utilizes the concept of performers in order to set where physics simulation will occur. A performer is an additional annotation in an SDF file which marks each model that will be a performer. Performers are allocated to secondaries using a round-robin fashion. If there are more performers than secondaries, multiple performers will be allocated to each secondary.

A super cool feature to achieve would be running a simulation in a Kubernetes cluster, where each secondary is a pod and performers are instances of robot models.

@diegoferigo
Copy link
Collaborator Author

Note

Cleaning up old issues and pull requests I opened over the past years that are now outdated or stale. If this is still relevant, feel free to reopen it or create a new one with updated details. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant