warning messages when using parfor in appdesigner app

I have been migrating an application which I previously built with GUIDE to appdesigner. One part of that application involves using the parallel toolbox for an expensive computation.
When running this portion of the application (which I call 'ASI') implemented wtih appdesigner, I see the following warning messages. There are 6 workers in my parallel pool, and it seems that each one of them is sending back the same message. These kind of warning messages do not appear when running the corresponding version of the application in GUIDE. The computation is completing successfully. It is just worrying that these warning messages are present.
Suggestions?
Warning: Unable to save App Designer app object. Save not supported for matlab.apps.AppBase objects.
Warning: Unable to save App Designer app object. Save not supported for matlab.apps.AppBase objects.
Warning: While loading an object of class 'ASI':
Unable to load App Designer app object. Load not supported for matlab.apps.AppBase objects.
> In parallel.internal.pool.deserialize (line 33)
In parallel.internal.pool.deserializeFunction (line 17)
In remoteParallelFunction (line 29)
Warning: While loading an object of class 'ASI':
Unable to load App Designer app object. Load not supported for matlab.apps.AppBase objects.
> In parallel.internal.pool.deserialize (line 33)
In parallel.internal.pool.deserializeFunction (line 17)
In remoteParallelFunction (line 29)
Warning: While loading an object of class 'ASI':
Unable to load App Designer app object. Load not supported for matlab.apps.AppBase objects.
> In parallel.internal.pool.deserialize (line 33)
In parallel.internal.pool.deserializeFunction (line 17)
In remoteParallelFunction (line 29)
Warning: While loading an object of class 'ASI':
Unable to load App Designer app object. Load not supported for matlab.apps.AppBase objects.
> In parallel.internal.pool.deserialize (line 33)
In parallel.internal.pool.deserializeFunction (line 17)
In remoteParallelFunction (line 29)
Warning: While loading an object of class 'ASI':
Unable to load App Designer app object. Load not supported for matlab.apps.AppBase objects.
> In parallel.internal.pool.deserialize (line 33)
In parallel.internal.pool.deserializeFunction (line 17)
In remoteParallelFunction (line 29)
Warning: While loading an object of class 'ASI':
Unable to load App Designer app object. Load not supported for matlab.apps.AppBase objects.
> In parallel.internal.pool.deserialize (line 33)
In parallel.internal.pool.deserializeFunction (line 17)
In remoteParallelFunction (line 29)

 Réponse acceptée

It looks like you're either implicitly or explicitly using ASI within your parfor loop. You don't show the problematic code, but at a guess you might be doing something like this:
parfor idx = ...
doStuff(ASI.something, ...);
end
If that is the problem, then the fix is straightforward - extract the fields you need from ASI ahead of the parfor loop.
thing = ASI.something;
parfor idx = ...
doStuff(thing, ...);
end

3 commentaires

Thank you for your reply. Much appreciated. Apologies, I should have made a more informative post.
The issue which is present here, I think, is that the appdesigner development environment is encouraging me to use 'app' as the first argument of my function call inside my parfor loop.
parfor idx = ...
doStuff(app, otherArg1, otherArg2,...)
end
My doStuff function is listed in my ASI.mlapp file with app as its first argment, even though app is not used in the code for the doStuff() function.
function doStuff(app, arg1, arg2,...)
...
end
I sense that this is leading to the applicaiton trying to save or pass the 'app' object to the worker processes.
I could move my function 'doStuff' outside the appdesigner development environment and call it as a MATLAB function in my path. However, I was trying to keep everything in my .mlapp file. Make sense?
I must confess to being an absolute beginner with App Designer. Here's what I came up with:
By making func be Static, you don't need to pass in the "app" instance. Does that help?
Yes, this is most helpful and has helped resolve this issue. Thank you. I was not aware of using static methods in appdesigner.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by