cluster:96
This is an old revision of the document!
Matlab 2013a
Is now the default matlab version, just change the paths in scripts below — Meij, Henk 2013/03/14 14:57
Matlab 2010b
So, now that 2010b is the version of Matlab and we're using Lava scheduler we need to integrate the two.
Serial 1
In the example below, the code waits for the results. Don't do that when submitting jobs, it is just for debugging purposes.
This old way still works for distributed jobs:
% distributed matlab jobs
% start 'matlab -nodisplay', issue the command 'Simple'
% set up the scheduler and matlab worker environment
sched = findResource('scheduler', 'type', 'generic');
set(sched, 'HasSharedFilesystem', true);
set(sched, 'ClusterMatlabRoot', '/share/apps/matlab/2010b')
set(sched, 'SubmitFcn', @lsfSimpleSubmitFcn)
% specify location for worker output
set(sched, 'DataLocation', '/home/hmeij/hp/matlab')
% create job and assign tasks to be done
j = createJob(sched);
T = createTask(j, @rand, 1, {{3,3} {3,3} {3,3} {3,3} {3,3}});
% submit job, wait for jobs to finish, fetch output
submit(j)
% WARNING: this may hang if the workers are busy!
waitForState(j)
results = getAllOutputArguments(j);
results{1:5}
% better to do it like Simple2.m
Serial 2
After you submit the job, you can exit matlab.
% distributed matlab jobs
% start 'matlab -nodisplay', issue the command 'Simple2'
% set up the scheduler and matlab worker environment
sched = findResource('scheduler', 'type', 'generic');
set(sched, 'HasSharedFilesystem', true);
set(sched, 'ClusterMatlabRoot', '/share/apps/matlab/2010b')
set(sched, 'SubmitFcn', @lsfSimpleSubmitFcn)
% specify location for worker output
set(sched, 'DataLocation', '/home/hmeij/hp/matlab')
% create job and assign tasks to be done
j = createJob(sched);
T = createTask(j, @rand, 1, {{3,3} {3,3} {3,3} {3,3} {3,3}});
% submit job, then exit matlab interactive session
submit(j)
get(sched)
Parallel
Slightly different syntax. Adjust your number of workers values based on some benchmarking, not always do the most workers finish a job in the shortest amount of time.
% parallel matlab jobs
% start 'matlab -nodisplay', issue the command 'Simplep'
% set up the scheduler and matlab worker environment
sched = findResource('scheduler', 'type', 'generic')
set(sched, 'HasSharedFilesystem', true);
set(sched, 'ClusterMatlabRoot', '/share/apps/matlab/2010b')
set(sched, 'ParallelSubmitFcn', @lsfParallelSubmitFcn)
% specify location for worker output
set(sched, 'DataLocation', '/home/hmeij/hp/matlab')
pj = createParallelJob(sched);
set(pj, 'MaximumNumberOfWorkers', 8)
set(pj, 'MinimumNumberOfWorkers', 8)
T = createTask(pj, @rand, 1, {{300,300}});
% submit job, wait to finish, get status jobs, gather results
submit(pj)
get(sched)
% you can now exit matlab
% at system prompt type 'bjobs'
cluster/96.1363287524.txt.gz · Last modified: by hmeij
