MATLAB Answers

Shut down parallel pool - only working for parfeval() but not spmd

9 views (last 30 days)
Timo Schmid
Timo Schmid on 9 Apr 2020
Edited: Timo Schmid on 9 Apr 2020
Hello all,
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.
Working:
function StartButtonPushed1(app,event)
pool = gcp();
parfeval(pool, @dosomething, 0, app);
end
Not working:
function StartButtonPushed2(app,event)
pool = gcp();
spmd
dosomething(app);
end
end
Stop-button:
function StopButtonPushed(app,event)
delete(gcp); %shutdown pool
end

  0 Comments

Sign in to comment.

Answers (0)