-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Number of processes started by IPyParallel clusters #693
Comments
The connection/process diagram hasn't been updated to include the broadcast scheduler, which is itself multi-process for the tree, and accounts for You can run engines without the nanny, but that also loses all the benefits of the nanny (remote engine signalling, prompt crash events, etc.). You get a reduced-functionality version of this with MPI without the nanny, so it may make sense for you. The controller can be started with This config should minimie processes: # ipengine_config.py
c.IPEngine.use_nanny = False
# ipcontroller_config.py
c.IPController.broadcast_scheduler_depth = 0
c.IPController.use_threads = True It's worth profiling the performance with threads to understand when the memory trade off may be worth it. with just one process for the controller and each engine. |
Thanks for the detailed explanation @minrk! That makes complete sense. |
Quick correction: Should be |
@minrk I was able to get this working. Thanks again. |
# ipcluster_config.py (or cluster.config)
c.EngineLauncher.engine_args=["--IPEngine.enable_nanny=False"]
c.ControllerLauncher.controller_args = ["--usethreads"] |
Great, tysm @minrk! c = ipp.Cluster(engines='mpi', n=4)
c.config.EngineLauncher.engine_args=["--IPEngine.enable_nanny=False"]
c.config.ControllerLauncher.controller_args = ["--IPController.broadcast_scheduler_depth=0", "--IPController.use_threads=True"] Would be great if we can update the docs with the updated diagram and this example. |
Hi @minrk, any update on when the documentation can be updated with these details? |
I don't have time to work on this right now, but if you wanted to have a stab, I'm happy to review. |
A lot of users seem to be surprised by the number of processes that are started as part of an IPyParallel cluster. In my testing, we seem to start 2 processes per engine (the engine itself and the nanny), an mpiexec process in case of MPI-Launcher, and 9 processes for the controller. The number of controller processes seem to be higher than expected (5 vs 9) based on: https://ipyparallel.readthedocs.io/en/latest/reference/connections.html#all-connections.
The text was updated successfully, but these errors were encountered: