Is there a way to tell if a function is executing inside a parfor?

13 vues (au cours des 30 derniers jours)
Adam
Adam le 11 Sep 2014
Commenté : Adam le 12 Sep 2014
When I just start typing on the command line and tab to give auto-complete options I came across
isinparfor
This sounded as though it is exactly what I am looking for, but it is undocumented, does nothing and when I look inside the function the 'parfor_depth' that it calls also seems not to do anything either.
I have a function which in some circumstances opens up a dialog with uiwait for the user to choose a directory. This function happens to now be being called from another function and the root function for these calls is being executed in a parfor loop. This causes problems because the program just hangs for ever in the uiwaits since the dialog boxes can't be shown within a parfor loop.
So I was hoping there would be some function or way of telling in the function whether or not it is being executed inside a parfor loop so that I can avoid doing the uiwait browser dialog in that case. So far I haven't been able to find one though.

Réponse acceptée

Edric Ellis
Edric Ellis le 12 Sep 2014
You could try using
isOnWorker = ~isempty(getCurrentTask());
to see if your code is running on a worker.

Plus de réponses (0)

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by