Matlab FAQ

SEP Home

About SEP
People
Research
Courses
Software
Internal Info
SEP WWW
SEP Computing
linux
CEES-SEP
Back-ups
NODE CLONING
CLUSTER BUILDING
NODE UPGRADING
Comp. Environ.
Configuring Mail
Computer Maint.
Makefiles
Mathematica FAQ
Matlab FAQ
Other info
New Accounts
Cluster node allocation
Using pod
Printing
Python Task Force
UNIX Setup



Peculiarities and hints about running Matlab on the SEP computer environment


Feel free to add your own hints about Matlab and information about your own m-functions that could be useful to others.


On what machines Matlab should be run

Run it from sthelens, and only if sthelens is down, from cher, orsay or tiree. It works on other machines too, but some of the other machines have older versions of the OS and core dump upon exiting from matlab. Some other local machines with new setups work fine. Try your local machine. Matlab is blocked from running on the servers (koko and okok).


What to do if Matlab won't start

There can be three reasons for Matlab not to start:

  1. You are on the wrong machine, usually koko. See previous tip.
  2. Koko has rebooted and the license manager has not been started yet because the autostart script is broken. If you do not have koko's root password call either the Matlab Administrator or somebody with a root password. If you do have koko's root password, su, then su - lomask . Type:
    /linux_local/matlab71/etc/lmdown -glnx86; /linux_local/matlab71/etc/lmstart -glnx86

  3. More than 5 users are running Matlab. This happens about two times a quarter. On any machine, type ls /usr/local/var/matlab* to find who is running it. The filenames listed will show when matlab was started, by whom and on what machine. If you really need to use Matlab, contact the five current Matlab users, find out who needs Matlab the least that very moment and ask him/her to shut down his/hers Matlab session(s) so that you can use it. Every time all five licenses got used, there was at least a person who simply had Matlab open without actually using it. If a machine running Matlab crashes (the whole machine, not just Matlab), the record of that matlab session will not be deleted from /usr/local/var. If you see a very old Matlab process record that you are sure it is not running any longer (i.e. you checked on that machine with ps aux|grep matlab), remove by hand the corresponding file from /usr/local/var.

  4. Some important files in one of the subdirectories of /net/koko/linux_local/matlab71/ or in /usr/local/bin have been altered. Call the Matlab Administrator to reinstall Matlab.

Backup machines for Matlab

If koko is misbehaving and you need Matlab, of if all five licenses are taken and nobody would close their session, or if you need toolboxes we don't have, you can use the university's machines. Here's how.

Definitions:

Procedure:

The -nosplash -nojvm options will make Matlab start and run faster. It works without them too, if you like the luxury of a GUI. Among the remote machines above, tree was the fastest, but maybe I just caught it in a good mood.

The remote machines see your directory on the Leland systems. To transfer files to and from the current SEP system directory to the Leland directory, use sftp from koko or from your local machine:
sftp <user>@<remote>

After you started sftp, use put to transfer a file from the SEP current directory to the Leland systems home directory: put <filename> , and get to retrieve a file: get <filename> .

You can also use scp <files_here> <username_there>@<machinename>:<path_to_files_there>, either from the local machine to the remote one, or the other way around.


SEPlib-Matlab I/O Package

If you need to read/write SEPlib format files from Matlab when running Matlab outside the SEP computing system, download the I/O toolbox and unarchive it with tar -xvzf toolbox.tar.gz or copy it from /usr/local/matlab7/toolbox/nick/. Let the Matlab Administrator know of any bugs, he'll appreciate the feedback. Solving them, or extending the capabilities of the toolbox to handle other OSs than Linux are even more appreciated.


The main Matlab web help site

can be found at www.mathworks.com/access/helpdesk/help/helpdesk.shtml. It is much richer than the simple line-of-command help, it has examples, pictures, and tutorials on how to use each of the toolboxes. The search feature is also quite useful, it searches through their pdf documents and through the user-posed questions, too.


Matlab reproducibility at SEP

In the SEP reproducibility denomination system, Matlab figures are considered Conditionally Reproducible because they require a proprietary software package (matlab). There are two degrees of reproducibility:


Accelerating Matlab's 3D graphics

PROBLEM:On the new Matlab 6.0, when running a command such as surf, that produced a 3D display, the thing would take a huge time to display, or would crash, and sometimes the following error would appear:

"Xlib: extension "GLX" missing on display "nada.Stanford.EDU:0.0".
??? Not able to create a render context
" .

SOLUTION: If before running your surf command you run: set(gcf,'renderer','zbuffer'), the 3D image will display correctly and very fast, too.


Troubles to create tiff file from matlab to be included in Power Point

From: Biondo

Add the following line line before outputting the tiff file, and make sure to run 'xhost + ashland' on santorin console before creating the figure.

set (gcf,'XDisplay','santorin.stanford.edu:0.0')


How to correctly apply the graphics patches shown above

  1. Open a LOCAL MACHINE window and type: xhost +ashland
  2. Add the following code sequence just before the plot command that was giving you problems:

    figure;
    set(gcf,'renderer','zbuffer');
    [s,w] = unix('echo $DISPLAY');
    set(gcf,'XDisplay',w);

    You should at least be able to export your figure as a "EPS file". There may still be problems with other file types. If your script/program contains variables called "s" or "w", change the respective variable names in the code sequence above.

Dealing with Matlab's memory fragmentation problem

Recently, I gave Matlab a job that required it to go through roughly 400 iterations. The job involved adding some numbers into a big matrix, nothing complex. To my surprise, after 10 hours, it still had not finished running.

I had matlab display a iteration counter. The speed of iteration slowed down fast after the first iterations, and I knew there were no convergence problems, so Matlab was sabotaging itself. I included the coomand pack inside the loop, and the program executed in five minutes what previously had not been able to do in 10 hours!


Exporting professional-quality figures

Matlab Digest describes how to export figures for publications in a reproducible, automatized manner. Links to part 1 and part2 of the article. The functions they provide (exportfig, previewfig, applytofig, restorefig) are now installed on koko too. The Technical Support Guide to Printing is a good resource too.

LaTeX in Matlab

Matlab already handles naturally simple LaTeX encodings that allow introducing Greek lettters or modifying the font size and appearance in plots. The function teximage (now installed on ashland too) converts any LaTeX string to images and displays them in Matlab figures.

Adding noise to an image

The function noise.m, now installed on ashland too, adds Gaussian, uniform, salt and pepper, additive or multiplicative noise to an image.

Running Matlab without graphics

Sometimes you may want to run scripts which contain plotting commands without displaying the plots and without going into the script to comment out the commands. An example: if you're working from home and it's too slow to run graphics over the network. You can play a simple UNIX trick:

% setenv DISPLAY /dev/null
% matlab



© 2007 , Stanford Exploration Project
Department of Geophysics
Stanford University

Modified: 10/25/07, 15:05:10 PDT , by bill
Page Maintainer: lomask `AT' sep.stanford.edu