View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
PARFOR Progress Monitor v2

4.6 | 10 ratings Rate this file 15 Downloads (last 30 days) File Size: 9.97 KB File ID: #31673 Version: 1.0
image thumbnail

PARFOR Progress Monitor v2



This version is an update of the progress monitor made by Edric Ellis.

| Watch this File

File Information

Original version:

This version has a few additional settings:
- progress step size: for loops with a large number of iterations crash in Edric Ellis' implementation.
By setting the progress step size, for example to 1%, crashing of Matlab is prevented.
- width of the screen
- height of the screen

How to start?
In Matlab:
1) go to the directory where you saved the m file
2) change example.m if you want

In the command window:
3) enter matlabpool open
4) enter pctRunOnAll javaaddpath java
5) enter example


Parfor Progress Monitor inspired this file.

This file inspired Automated Phenotyping Of Mouse Behavior and Vectorial Ray Based Diffraction Integral (Vrbdi).

MATLAB release MATLAB 7.11 (R2010b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (18)
03 Jan 2017 David

David (view profile)

04 May 2016 Jin

Jin (view profile)

This is a very useful tool! I run it on the mac, there is one error:

Error using ParforProgMon
Too many input arguments.

Error in example (line 17)
ppm = ParforProgMon('Example: ', N, progressStepSize, 300, 80);

Is anybody helping me figure out how to fix this?

Comment only
14 Nov 2015 Seyedfarid Ghahari

Your code runs well on my computer. But, I get this warning during analysis:

Warning: While loading an object of class 'ParforProgMon':
No method 'createWorker' with matching signature found for class 'ParforProgressMonitor'.

Comment only
13 Apr 2015 M.M. Pedersen

Great work, thanks.

I'm having trouble deploying the function though. I add the java files to the CTF archive, as suggested by Adam Thomas and the deployed program seems to run fine. However, it hangs when calling ppm.delete().

Any ideas what might be causing this?

Comment only
13 Apr 2015 Mikkel Pedersen

14 Jul 2014 Nikolai

Hello I receive the following java error for each iteration of the parfor loop. The progress bar initially comes up, but the increment step never works and the progress bar never updates. Can someone help me understand how to fix this error? david-pc
at ParforProgressMonitor$ProgWorker.increment(

Comment only
23 Oct 2013 Jerome

Jerome (view profile)

Do you have any idea why this clear all global variables?
Without this waitbar my globals stay fine.

29 Aug 2013 Arwel

Arwel (view profile)

For very large arrays the crash still happens - i.e for an array of 2.5e10 elements (as an array of singles), this still throws "java.lang.IllegalArgumantException: invalid range properties", irrespective of the value of progressStepSize.

Comment only
03 Dec 2012 Francesco Montorsi

very useful in my parallel simulations! by the way, whenever you run parallel simulations where you don't know in advance the number of cycles of the parfor, it would be very useful to have a function to update the total number of cycles given at construction time...

24 Jan 2012 Edmondo

it could be great to have also an estimated remaining time

Comment only
20 Jan 2012 Adam Thomas

Works perfectly in my application, which is a deployed parallel function.

When deploying a function using this progress monitor note that "pctRunOnAll javaaddpath java" will have no effect, you need to embed the folder containing the java classes into the CTF archive when you compile... then it runs like a charm :)


18 Jan 2012 Stephen

I'll answer my own question. To get this to work on osx, you need to modify the matlab class to append '.local' to the hostname.

o.HostName = [cfg.hostname '.local'];

Comment only
27 Dec 2011 Ohad

Ohad (view profile)

After figuring out I had to reduce "progressStepSize" for my needs - it really works!

13 Dec 2011 Stephen

I get a " Connection refused" when I attempt to run this on OSX. Any advice?


21 Sep 2011 Stephen

I wonder if this could be enhanced with a button to cancel the jobs. For ex: place a button on the form that sets a variable and when updating the percent done on the jobs, it could return the signal to quit running.

Just a thought from someone who knows nothing about Java. :)

29 Jun 2011 Kevin Moerman

Kevin Moerman (view profile)

23 Jun 2011 Kevin Moerman

Kevin Moerman (view profile)

My previous comment is gone but this was in relation to monotoring progress when using nexted loops or events that occur more than once per parfor loop iteration. E.g.:
parfor i1=1:N1
for i2=1:N2
for i3=1:N3
%increase ppm here if mod(xx,..

Comment only
23 Jun 2011 Kevin Moerman

Kevin Moerman (view profile)

Got it to work by setting an apropriate N size (N1*N2*N3), I didn't use xx but if the inner for loops are not parfor loops then counters can be used (i.e. something like xx=xx+1 for each inner iteration).

Contact us