Shut down parallel pool - only working for parfeval() but not spmd
22 views (last 30 days)
Show older comments
Timo Schmid on 9 Apr 2020
Answered: Deepak Meena on 28 Jun 2021
I would like to shut down my parallel pool by a button press in a Matlab GUI to stop the execution of functions running on these pool workers.
Unfortunately this only works when starting the functions with "parfeval()". In this case, as soon as I press the button, my parallel pool is shutting down and therefore the functions called with parfeval() stop running.
As I prefer using "spmd" over "parfeval" to establish communication between the workers, I tried the same but it failed.
Nothing is happening on a button press and the parallel pool is only shutting down as soon as I cancel the whole script with ctrl+c.
Hope someone can assist me with this problem.
pool = gcp();
parfeval(pool, @dosomething, 0, app);
pool = gcp();
delete(gcp); %shutdown pool
Deepak Meena on 28 Jun 2021
delete(gcp) works with spmd as well.
This will shut down the current parallel pool. The problem might be with the dosomething(app) that you are doing inside the spmd function.
Please elaborate on the dosomething(app) so we can investigate further.
Find more on Background Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!