Hoffman2:MATLAB

From Center for Cognitive Neuroscience
Revision as of 01:41, 26 March 2021 by Jpdiaz (talk | contribs) (→‎Software Versions: update and add information about fieldtrip qsub toolbox)
Jump to navigation Jump to search

Back to all things Hoffman2

MATLAB is not a small program, and it can handle some fairly complex graphics. As such, this is not something suitable to be used on a login node of Hoffman2. But that's already been thought of by the great people at ATS.


GUI

To run a full GUI session of MATLAB, execute

$ matlab

That's it, no flags, no frills, nothing else. Hoffman2 will automatically check out an appropriate interactive node for you to run MATLAB on. All you have to do is provide a time limit (in hours) when they ask you

Enter a time limit for your session in hours (default 2)
<or quit>: 


Command Line

If you don't need the fancy GUI and want the command line, execute

$ matlab -nodesktop

and then supply a time limit when asked.

Since this uses interactive nodes, the maximum time limit you can request is 24 hours.


License Check

With so many people using Hoffman2 and MATLAB, sometimes licenses run out. Using this helpful script will give you some insight as to the license situation.

matlab_license_check.sh


Large Computations

If you are doing a larger computation, running MATLAB normally will probably not work well.

Using the default method of launching MATLAB on Hoffman2 checks out an interactive node with only 1GB of RAM. This is woefully small if you are working with ten minutes of dense array EEG. Use the following steps to launch a more capable MATLAB session.

 # Request an interactive node with time and memory required. In this case, 10 hours and 4GB RAM
 $ qrsh -l i,h_rt=10:00:00,h_data=4G

 # Load the module MATLAB
 $ module load matlab

 # You can also load different versions of MATLAB:
 #   module load matlab/7.14
 #  or
 #   module load matlab/8.1
 # Try using "module help" for more information

 # Launch MATLAB
 $ matlab

***Please note, launching the Matlab GUI requires ~15-20GB of virtual memory.
Memory can be allocated by requesting the appropriate amount for a single node h_data=20G or requesting it across several processors h_data=4G -pe shared 5 (total 5 * 4G = 20GB memory).
If the GUI is not necessary for running your scripts, then consider launching matlab via text-based interface by issuing the command matlab -nojvm -nodisplay -nosplash.


Running Parallel Jobs

IDRE team provided the following solution to use parallel pool in Matlab version 9.7. Please create the parpoolexample.m first, where you initiate a pool with the number of workers needed to run the job.

  • Make sure to not run the papoolexample.m in MATLAB
1)  Request an interactive session with for example: 
#*  $qrsh -l h_data=4G -pe shared 1

2)  When the interactive session is awarded issue:
#*  $module load matlab/9.7
#*  $matlab &


3) When the matlab desktop opens, issue at the matlab command prompt:
 >> rehash toolboxcache
 >> configCluster

4) Close matlab

5) To familiarize with the submission procedure you could copy the content of the directory:
#*  /u/local/apps/submit_scripts/MATLAB_PARALLEL_BATCH_SUBMISSION

7) In a local test directory and issue:
#*  ./matlab_batch_parallel_job_submit.sh -t 3 -s 20 -m 4 -v 9.7 -f  parpoolexample.m

8) Look into the file:
#*  /u/local/apps/submit_scripts/MATLAB_PARALLEL_BATCH_SUBMISSION/README.HOWTO

9) and/or issues:
#* ./matlab_batch_parallel_job_submit.sh --help

For additional information about MATLAB batch submissions using either a remote or local client, visit the MATLAB on Hoffman2 page.

For older versions of Matlab, the Fieldtrip qsub toolbox can be used to facilitate batch submissions. Please see qsubjobarray.m for an example.


Software Versions

The current default version of MATLAB on Hoffman2 is R2015b, but more recent versions are also available for use:

R2016b  or  matlab/9.1
R2019b  or  matlab/9.7
R2020a  or  matlab/9.8


External Links