Hoffman2:MATLAB: Difference between revisions

From Center for Cognitive Neuroscience
Jump to navigation Jump to search
(→‎Large Computations: add virtual memory size limitations)
Line 35: Line 35:


<pre>
<pre>
  $ # Request an interactive node with time and memory required. In this case, 10 hours and 4GB RAM
  # 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
  $ qrsh -l i,h_rt=10:00:00,h_data=4G
  $ # Load the module MATLAB
 
$ # You can also load different versions of MATLAB:
  # Load the module MATLAB
$ #  module load matlab/7.14
$ #  or
$ #  module load matlab/8.1
$ # Try using "module help" for more information
  $ module load matlab
  $ module load matlab
  $ # Launch 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
  $ matlab
</pre>
</pre>
'''***Please note, launching the Matlab GUI requires ~15-20GB of virtual memory.
<br>Memory can be allocated by requesting the appropriate amount for a single node <code>h_data=20G</code>
or requesting it across several processors <code>h_data=4G -pe shared 5</code> (total 5 * 4G = 20GB memory).
<br>If the GUI is not necessary for running your scripts, then consider launching matlab via text-based interface by issuing the command <code>matlab -nojvm -nodisplay -nosplash</code>.


==Running Parallel Jobs==
==Running Parallel Jobs==

Revision as of 06:33, 31 July 2020

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 just 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 amount 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

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


External Links