UMBC High Performance Computing Facility

Please note that this page is under construction. We are documenting the
240-node cluster maya that will be available in Spring 2014. Currently,
the cluster tara is still available. Please see the 2013 Resources Pages
under the Resources tab.

How to run MATLAB programs on tara

For more information about the software, see the MATLAB website.

% Generate two 100x100 matrices with random contents: A=rand(100); B=rand(100); % Multiply the two matrices: AB=A*B; % Calculate the sum of the contents: sumAB=sum(AB(:)); % Save the AB and sumAB variables to the Matlab save file out.mat: save out.mat AB sumAB;

Download: ../code-2010/matrixmultiply-matlab/matrixmultiply.m

#!/bin/bash #SBATCH --job-name=matrixmultiply #SBATCH --output=slurm.out #SBATCH --error=slurm.err #SBATCH --partition=develop matlab -nodisplay -r "matrixmultiply, exit"

Download: ../code-2010/matrixmultiply-matlab/run.slurm

[araim1@tara-fe1 matrixmultiply-matlab]$ sbatch run.slurm sbatch: Submitted batch job 2621 [araim1@tara-fe1 matrixmultiply-matlab]$

>> load out.mat

[araim1@tara-fe1 matrixmultiply-matlab]$ cat slurm.out < M A T L A B (R) > Copyright 1984-2008 The MathWorks, Inc. Version 7.6.0.324 (R2008a) February 10, 2008 To get started, type one of these: helpwin, helpdesk, or demo. For product information, visit www.mathworks.com. [araim1@tara-fe1 matrixmultiply-matlab]$

#!/bin/bash #SBATCH --job-name=plotsine #SBATCH --output=slurm.out #SBATCH --error=slurm.err #SBATCH --partition=develop matlab -nodisplay -r "plotsine, exit"

Download: ../code-2010/plotsine-matlab/run.slurm

zero_to_2pi=linspace(0,2*pi,1000); them_sine=sin(zero_to_2pi); plot(zero_to_2pi,them_sine); print -dpng sine.png print -deps sine.eps print -djpeg sine.jpeg

Download: ../code-2010/plotsine-matlab/plotsine.m

[araim1@tara-fe1 plotsine-matlab]$ ls run.slurm plotsine.m sine.eps sine.jpeg sine.png slurm.err slurm.out [araim1@tara-fe1 plotsine-matlab]$

The encapsulated postscript file (sine.eps) will be in greyscale since I used -deps instead of -depsc. Here are links to the three output files if you want to download them

First grab the following C files, which are also used in How to check memory usage

The following C code is written in a specific form which Matlab can interface to. It will call the get_memory_usage_kb function defined in the C files above. The code retrieves the VmRSS and VmSize quantities for the current process (see How to check memory usage for more information), and returns them as a pair to Matlab.#include <sys/types.h> #include <unistd.h> #include "mex.h" #include "memory.h" void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { int* data; long vmrss; long vmsize; if (nrhs > 0) { mexErrMsgTxt("Too many input arguments."); } get_memory_usage_kb(&vmrss, &vmsize); plhs[0] = mxCreateNumericMatrix(1, 1, mxUINT32_CLASS, mxREAL); data = mxGetData(plhs[0]); data[0] = vmrss; plhs[1] = mxCreateNumericMatrix(1, 1, mxUINT32_CLASS, mxREAL); data = mxGetData(plhs[1]); data[0] = vmsize; }

Download: ../code-2010/check_memory-matlab/getmemusage.c

[araim1@tara-fe1 check_memory-matlab]$ mex getmemusage.c memory.c [araim1@tara-fe1 check_memory-matlab]$ ls getmemusage.c getmemusage.mexa64 memory.c memory.h [araim1@tara-fe1 check_memory-matlab]$

[araim1@tara-fe1 check_memory-matlab]$ matlab -nodisplay < M A T L A B (R) > Copyright 1984-2009 The MathWorks, Inc. Version 7.9.0.529 (R2009b) 64-bit (glnxa64) August 12, 2009 To get started, type one of these: helpwin, helpdesk, or demo. For product information, visit www.mathworks.com. >> [vmrss, vmsize] = getmemusage vmrss = 101140 vmsize = 933132 >> A = rand(5000, 5000); >> [vmrss, vmsize] = getmemusage vmrss = 298572 vmsize = 1128448 >>