Running large numbers of Matlab jobs is complicated, because each concurrent job ordinarily requires a separate licence, and only a limited number of licenses are available locally. To get around this, you can compile your Matlab job, as described below, and the compiled code will then not use up the licenses. Alternatively, you can try running your code under Octave; most Matlab code that doesn't use toolboxes should run as-is. Or you can use other numerical packages, such as R or SciPy (for Python).

A full version of matlab will be running on ECDF from the end of November onwards. According to the latest information there will be 2 licenses of matlab available to use interactively (or in batch mode) in the frontend, two licenses of DCT and two licenses of matlab's DCE. Please see below for some explanation on what that means in terms of number of users and concurrent jobs.

- General information on how to submit a job can be found on: Matlab on EDDIE
- If you need to run a job that requires more than 2GB of memory, use @sgeMemSubmitFcn rather than @sgeSubmitFcn e.g memory_slots = '2'; set(sched, 'SubmitFcn', {@sgeMemSubmitFcn, time_limit, memory_slots});
- If you want to check whether your job finished with errors look under the directory where you store your log files. Find the job directory and load the out.mat file for a given task. This will load the errorstruct structure, which holds the relevant information. e.g. in matlab load $logdir/Job1/Task1.out.mat
- If you have many functions to run within a job, specify 'PathDependencies' rather than 'FileDependencies'. e.g. file_dep ={'dir1' 'dir2'}; createJob(sched,'PathDependencies',file_dep);
- UPDATE: Eddie is now accessible for NFS mount to DICE machines. Please contact dice support for access.
- UPDATE on matlab licenses:
- If using the ECDF frontend:
- submitting a job through matlab's environment: there are only two licenses available, i.e only two users can be logged into matlab at any one time. You won't be able to start matlab otherwise.
- submitting a job through UNIX (calling "matlab -r"): there are only two licenses available, i.e. your job will either wait until a license is available or it will quit giving you a no-license-available error (this information will need to cross-checked, please edit if you know which is correct).

- If submitting from you desktop (remote client), you are using your own licenses, i.e. you are not affected by the number of matlab core or DTC licenses available. To submit a job remotely, you will need to have available personal matlab DCT licenses.
- Once a job is submitted (either from the frontend or the remote client), the number of DCE licenses controls how many tasks can run concurrently. At the moment there are licenses for 8 slots only, i.e. at any one point a maximum of 8 tasks can be run. The rest will wait for the next available slot. Each task uses one slot. For distributed jobs, each slot is equal to one CPU, but for parallel jobs, this is not usually the case.

- If using the ECDF frontend:

Clare Giacomantonio has prepared some slides on how to use compiled Matlab code under Condor.

- testfunction.sub: A sample Condor submit file for a compiled Matlab program

Topic revision: r6 - 15 Nov 2007 - 13:32:32 - Main.s0234516

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.

Ideas, requests, problems regarding TWiki? Send feedback

This Wiki uses Cookies

Ideas, requests, problems regarding TWiki? Send feedback

This Wiki uses Cookies