This is version 1.23.1 of ParforProgress2
, a simple parfor progress monitor for matlab. See also matlab-ParforProgress2 on File Exchange
This progress monitor comes with a nice wrapper ParforProgressStarter2.m
which will take care of adding the classes to the java class path, depending on whether matlabpool / parpool is enabled or not.
- clone this directory
- add directory to matlab path:
addpath('/path/to/matlab-ParforProgress2')
By default ParforProgress2
is very easy to use:
- add program location to matlab path
- run
ParforProgress2
.
See C1 - no globals below for details.
In case your Matlab programs make use of global
variables, things are a bit more complicated. See C2 - with globals below for details.
See ParforProgressStressTest2.m
or ParforProgressStarter2.m
for usage instructions.
ParforProgress2
makes use of javaaddpath
and javaclasspath
. Using either of these functions makes Matlab call clear java
which does clear all global variables. This Matlab behaviour is intentional. See http://www.mathworks.com/help/matlab/matlab_external/bringing-java-classes-and-methods-into-matlab-workspace.html for details.
In order to make ParforProgress2
work with globals, see the following instructions, which depend on your used Matlab version.
- create
javaclasspath.txt
file in your preference directory. - add path to
ParforProgressStarter2
to this file.
On Linux this translates to:
$ cd .matlab/R2013a
$ echo "/path/to/matlab-ParforProgress2" > javaclasspath.txt
On macOS this translates to:
$ cd ~/Library/Application\ Support/MathWorks/MATLAB/R2020a/
$ echo "/Users/username/Documents/GitHub/matlab-ParforProgress2" > javaclasspath.txt
Next, startup Matlab (or restart Matlab if it was running) and call ParforProgressStarter2
, but do not run javaddpath
:
% setup parameters
show_execution_time = 1;
run_javaaddpath = 0;
s = 'dummy task';
n = 100;
percentage = 0.1;
do_debug = 0;
% initialize the ProgressMonitor
ppm = ParforProgressStarter2(s, n, percentage, do_debug, run_javaaddpath, show_execution_time)
% run your computation
for j = 1 : n
your_computation();
ppm.increment(j);
end
% delete the ProgressMonitor
delete(ppm);
Unfortunately Matlab 2012a and earlier versions of Matlab do not support customized
javaclasspath.txt
files, instead, you need to edit the classpath.txt
file that is
part of the Matlab installation. You might need administrator / superuser privileges to
edit this file. Here's how you can locate it:
>> which classpath.txt -all
/share/pkgs/MATLAB/R2012a/toolbox/local/classpath.txt
>> edit classpath.txt
On macOS
javac -source 1.8 -target 1.8 -cp .: ParforProgressServer2.java
javac -source 1.8 -target 1.8 -cp .: ParforProgressClient2.java