MATLAB Answers

0

pctRunOnAll does not recognize current parallel pool

Asked by Chris10116 on 18 Sep 2019
Latest activity Commented on by Chris10116 on 19 Sep 2019
Inside a parfor loop I want to surpress warnings with pctRunOnAll but I get the error message: Cannot execute pctRunOnAll warning_off_WarnIfIllConditioned when a parallel pool does not exist. What should I do?
parfor V_g_i = 1:length(V_g_vec)
pctRunOnAll warning_off_WarnIfIllConditioned
%% Other code
[Vi,~] = eigs(mat,1,10^(-19)); % mat is an ill-conditioned matrix
%% Other code
end

  0 Comments

Sign in to comment.

Tags

Products


Release

R2018b

1 Answer

Answer by Edric Ellis
on 19 Sep 2019
 Accepted Answer

You should use pctRunOnAll at the client, i.e. before the start of the loop, like this:
gcp(); % Ensure we have a parallel pool that parfor will use
pctRunOnAll warning_off_WarnIfIllConditioned
parfor V_g_i = 1:length(V_g_vec)
%% Other code
[Vi,~] = eigs(mat,1,10^(-19)); % mat is an ill-conditioned matrix
%% Other code
end
(I assume warning_off_WarnIfIllConditioned is a script or function you have to make the necessary warning modifications)

  1 Comment

Thank you very much. Easy as that. I thought it automatically creates a parallel pool if I insert a parfor.

Sign in to comment.