How to use Task.Diary
6 views (last 30 days)
Show older comments
Hi, I have difficulty in outputting information to matlab command window when multi-task are running. Specifically I am using a independent multi-task parallel mode. Below is the way I created my multi-task within one job
parallel.defaultClusterProfile('local');
cluster = parcluster();
job = createJob(cluster);
createTask(job, funcHandles, numArray, args,'CaptureDiary',true);
submit(job);
wait(job);
results = fetchOutputs(job);
Within each funcHandle, I want to output some text during the execution. It is said that after matlab 2012b, this functionality is enabled through parallel.Task.Diary property. However, I can neither get nor set such property during the running of the task.There is completely no examples or explanation on how to access this property at all.
I know that I can output the info into a log file. But I still prefer to display something in the command window.
Can anyone help me? Thank you.
0 Comments
Accepted Answer
Edric Ellis
on 2 Jun 2014
The task "diary" property is updated automatically when your task function would emit text to the command window. For example:
c = parcluster('local');
j = createJob(c);
t = createTask(j, @disp, 0, {magic(4)}, 'CaptureDiary', true);
submit(j);
wait(j);
t.Diary
5 Comments
Edric Ellis
on 3 Jun 2014
You can execute "t.Diary" at any time - including before "wait(j)". So, you might do:
...
submit(j);
while ~strcmp(j.State, 'finished')
disp(t.Diary);
pause(5);
end
Of course, that will display the entire diary each time around the "while" loop. You might want to do something more sophisticated like checking the diary to display only the new lines.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!