Progress bar with parfor and nohup

9 views (last 30 days)
CaG
CaG on 16 Jun 2020
Answered: Edric Ellis on 18 Jun 2020
I'd like to monitor the progress of a script making use of parfor. Unfortunately, since it requires a large amount of computational power and time, I have to launch it on a remote multiprocessor computer, using nohup.
As first attempt, I used fprintf in order to have an output from each of the parallel instances, i.e.
parfor i = 1:N
fprintf('Computing istance %i out of %i\n', i, N)
% Other code
end
and counting the occurences of the word "instance" in the nohup output file, using grep. However, since N is in the order of some hundreds of millions, the output file become huge and so I'd like to avoid it.
Then, I start trying some parfor progress bar I can find on MATLAB Central. However, most of them are made to use a graphic output and the few other ones have some drawbacks if used togheter with nohup (e.g. in the output file I found every single update of the progress bar, so again the output file will be huge).
How can I effectively monitor a parfor, while using nohup?

Accepted Answer

Edric Ellis
Edric Ellis on 18 Jun 2020
A really simple approach would be just to print out every 1000 iterations. In other words
parfor i = 1:N
if mod(i, 1000) == 0
fprintf('Computing istance %i out of %i\n', i, N);
end
% Other code
end

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!