Warning: Undefined array key "DOKU_PREFS" in /usr/share/dokuwiki/inc/common.php on line 2082
cluster:96 [DokuWiki]

User Tools

Site Tools


cluster:96

Warning: Undefined array key 7 in /usr/share/dokuwiki/inc/html.php on line 1453

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revision Both sides next revision
cluster:96 [2011/02/09 14:53]
hmeij created
cluster:96 [2013/09/06 14:45]
hmeij [Matlab 2013a]
Line 1: Line 1:
 \\ \\
 **[[cluster:0|Home]]** **[[cluster:0|Home]]**
 +
 +==== Note ====
 +
 +You can also run matlab jobs via scripts like the other software.
 +
 +Create a file with the matlab commands and then create a shell script to submit the job.
 +
 +It would look like
 +
 +<code>
 +
 +#!/bin/bash
 +# submit via 'bsub < run.serial'
 +
 +#BSUB -q matlab
 +
 +#BSUB -J test
 +#BSUB -o test.stdout
 +#BSUB -e test.stderr
 +
 +
 +
 +matlab -no display < my_code.m > /dev/null
 +
 +</code>
 +
 +==== Matlab 2013a ====
 +
 +Is now the default matlab version, just change the paths in scripts below
 + --- //[[hmeij@wesleyan.edu|Meij, Henk]] 2013/03/14 14:57//
  
 ==== Matlab 2010b ==== ==== Matlab 2010b ====
Line 11: Line 41:
   * [[http://www.mathworks.com/help/toolbox/distcomp/bqxceii-1.html|Part2]]   * [[http://www.mathworks.com/help/toolbox/distcomp/bqxceii-1.html|Part2]]
  
-In the examples below the code waits for the results.  Don't do that when submitting jobs, it is just for debug purposes. Change the last 3 lines with this 'get(sched)' and then you exit Matlab interactive session.+=== Serial 1 === 
 + 
 +In the example belowthe 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:
  
-This old way still works: 
 <code> <code>
  
 % distributed matlab jobs % distributed matlab jobs
-% start 'matlab -nodisplay', issue the command 'newSimple'+% start 'matlab -nodisplay', issue the command 'Simple'
  
 % set up the scheduler and matlab worker environment % set up the scheduler and matlab worker environment
Line 23: Line 56:
 set(sched, 'HasSharedFilesystem', true); set(sched, 'HasSharedFilesystem', true);
 set(sched, 'ClusterMatlabRoot', '/share/apps/matlab/2010b') set(sched, 'ClusterMatlabRoot', '/share/apps/matlab/2010b')
-set(sched, 'SubmitFcn', @distributedSubmitFcn  +set(sched, 'SubmitFcn', @lsfSimpleSubmitFcn)
  
 % specify location for worker output % specify location for worker output
Line 34: Line 67:
 % submit job, wait for jobs to finish, fetch output % submit job, wait for jobs to finish, fetch output
 submit(j) submit(j)
 +
 % WARNING: this may hang if the workers are busy! % WARNING: this may hang if the workers are busy!
 waitForState(j) waitForState(j)
 results = getAllOutputArguments(j); results = getAllOutputArguments(j);
 results{1:5} results{1:5}
 +% better to do it like Simple2.m
 +
  
 </code> </code>
 +
 +=== Serial 2 ===
 +
 +After you submit the job, you can exit matlab.
 +
 +<code>
 +
 +% 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)
 +
 +</code>
 +
 +=== 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.
 +
 +<code>
 +
 +% 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'
 +
 +
 +</code>
 +
  
  
 \\ \\
 **[[cluster:0|Home]]** **[[cluster:0|Home]]**
cluster/96.txt · Last modified: 2015/03/13 13:52 by hmeij