Behaviour ofparfeval depends on debugging state (Bug?)
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
tommsch
le 29 Jan 2021
Réponse apportée : Edric Ellis
le 29 Jan 2021
I have the following function, which should return false. If I set a breakpoint at the first line, and then step through the program, I get the message:
Analyzing and transferring files to the workers ...done
and the function returns false. But when I just execute the function, no message is issued and the function returns true. Is this a bug?
function ret = testparfeval;
F = parfeval( gcp(), @afssasgdd, 0 ); %this is a non-existent function
while( isequal(F(1).State,'queued') );
pause( 0.1 ); end;
ret = isempty( F.Error );
0 commentaires
Réponse acceptée
Edric Ellis
le 29 Jan 2021
I suspect this is because when you don't stop in the debugger, the function can return as soon as F gets into state 'running', i.e. before it gets to state 'finished'. Rather than polling the State property, I'd recommend using the wait method, like this:
F = parfeval(gcp(), @afssasgdd, 0);
wait(F);
didError = ~isempty(F.Error)
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Asynchronous Parallel Programming dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!