From: Omni Domni on
As far as I've seen in the forums there doesn't seem a way to monitor the progress of a par for loop (that is how many iterations have executed). Since the simulations I run take a couple of hours this would be quite useful.

Is there any other computationally effective way to implement a 'parfor' loop, using other commands of the parallel processing toolbox, that enable some kind of callback to be executed when a worker has finished a single iteration?
From: Edric M Ellis on
"Omni Domni" <eloykarakh(a)hotmail.com> writes:

> As far as I've seen in the forums there doesn't seem a way to monitor the
> progress of a par for loop (that is how many iterations have executed). Since
> the simulations I run take a couple of hours this would be quite useful.

I wrote a fairly crude parfor progress monitor, but it doesn't allow arbitrary
callbacks (that's not feasible with the way parfor works):

http://www.mathworks.com/matlabcentral/fileexchange/24594-parfor-progress-monitor

> Is there any other computationally effective way to implement a 'parfor' loop,
> using other commands of the parallel processing toolbox, that enable some kind
> of callback to be executed when a worker has finished a single iteration?

Jobs and tasks are likely to be less computationally efficient than a parfor
loop since they cannot do dynamic load balancing. Also, each task invocation has
more overhead than a parfor loop iteration. However, they may give you more
flexibility to perform arbitrary MATLAB stuff as each task completes. If you're
using the jobmanager, there are various callbacks you can use to help;
otherwise, you'd need to poll the task state.

Cheers,

Edric.