root/OptimizingMATLABCode/Truss/clusterBatch.m @ 10
10 | anderm8 | %% Batch processing demo utilizing the ODE System example
|
|
% Copyright 2015 The MathWorks, Inc.
|
|||
%% Close any open pool of workers (if it is on the cluster, an open pool might cause your job the be queued instead of running)
|
|||
delete(gcp('nocreate'));
|
|||
%% Submit job (1 worker)
|
|||
fprintf('Submitting batch job on 1 worker... ');
|
|||
% batch(function, number of outputs, inputs, profile, pool size)
|
|||
job1 = batch('paramSweepSerial', 4, {10, 10});
|
|||
fprintf('Submitted Job 1!\n');
|
|||
%% Submit job (30 workers)
|
|||
fprintf('Submitting batch job on 30 workers... ');
|
|||
job2 = batch('paramSweepParallel', 4, {50, 50}, 'Pool', 30);
|
|||
fprintf('Submitted Job 2!\n');
|
|||
%% Plot data when job is finished
|
|||
% See the function definition for paramSweepParallel.m for the definition
|
|||
% of the four output variables
|
|||
% Make sure job2 is finished and fetch results
|
|||
wait(job2);
|
|||
jobOutput2=fetchOutputs(job2);
|
|||
% Visualize results
|
|||
visualizeParamSweep(jobOutput2);
|
|||
%% Compare Timings
|
|||
% Make sure job1 is finished and fetch results
|
|||
wait(job1);
|
|||
jobOutput1=fetchOutputs(job1);
|
|||
fprintf('Computation time on 1 worker : %0.2f sec\n', jobOutput1{4});
|
|||
fprintf('Computation time on 30 workers: %0.2f sec\n', jobOutput2{4});
|
|||
%% Clean Up
|
|||
% These jobs are using physical resources. It's a best practice to delete
|
|||
% them when done
|
|||
delete(job1);
|
|||
delete(job2);
|