ALIs

kommt noch

MATLAB

MATLAB (der Name kommt von Matrix Laboratory) ist ein Programmpaket für die interaktive numerische Mathematik. Es wendet sich hautptsächlich an Ingenieure, die praktische Probleme zu lösen haben, es kann jedoch durch die Verbindung mit MAPLE auch zur symbolischen Problemlösung eingesetzt werden. Weiterhin können mit MATLAB auch Simulationsmodelle programmiert werden, die über die grafische Oberfläche sogar interaktiv reagieren können.


Inhalt


Bezug von MATLAB

Das LRZ hat MATLAB- und Simulink-Lizenzen, Toolboxen und Blocksets nachbestellt. Ausserdem sind neue Toolboxen in den Lieferumfang mit augenommen worden (z.B. Bioinformatics Toolbox). Sie können im Rahmen des bestenden Angebotes günstige Lizenzen für Institute erwerben. Module, die in unserer Preisliste nicht aufgeführt sind, können gegenwärtig nicht über das LRZ erworben werden. Melden Sie aber in jedem Fall Ihren Bedarf, damit er bei einer möglichen nächsten Sammelbestellung berücksichtigt werden kann.

Zur Seite Bestellung von MATLAB

MATLAB-Lizenzen auf den LRZ HPC-Systemen

Aufgrund der Lizenzbestimmungen der Firma Mathworks können wir als Hochschulrechenzentrum der Münchner Hochschulen (Ludwig-Maximilians-Universität München, TU München und Hochschule München) nur diese mit MATLAB-Lizenzen versorgen. Es ist uns also momentan nicht gestattet, Angehörigen anderer bayerischer Hochschulen MATLAB am Linux-Cluster zugänglich zu machen. Wenn Sie mittel- oder längerfristigen Bedarf für eine (mehr als marginale) Nutzung von MATLAB am Cluster haben, geben Sie uns bitte Bescheid. Wir setzen uns dann mit Mathworks in Verbindung, um zu sehen, welche Lizenzierung zu welchen Konditionen möglich ist.

Das LRZ hat auf den HPC-Systemen nur eine begrenzte Anzahl von MATLAB Lizenzen zur freien Nutzung zur Verfügung gestellt. Diese Lizenzen müssen sich alle berechtigten User teilen. Wir bitten deshalb die User um gegenseitige Rücksichtnahme, d. h. ein einzelner User sollte nicht mehr als maximal 20 parallele MATLAB Jobs ausführen. Aus dem oben genannten Grund (MATLAB-Jobs < 20), ist MATLAB auf dem SuperMUC nur auf den Login-Nodes verfügbar, da dies mit der Accounting-Policy des SuperMUC unvereinbar ist.

Ferner sind auch die einzelnen MATLAB Toolboxen auf den HPC-Systemen auch nur in begrenzter Anzahl vorhanden. Sollten Sie eine Toolbox auf den HPC-Systemen vermissen, wenden Sie sich bitte an lizenzen(at)lrz(dot)de.

Zugriff auf MATLAB an LRZ-Rechnern

Am LRZ ist MATLAB auf den Mac OS X Workstations, dem Linux-Cluster (nicht jedoch auf den Itanium-Knoten) und auf dem SuperMUC (hier nur auf den Login-Nodes) verfügbar.

Der Aufruf erfolgt einfach durch Eingabe von

   module load matlab
   matlab

Dabei sollte die $DISPLAY Variable auf den Rechner gesetzt sein, an dem Sie sitzen, damit die grafischen Fenster dann auch auf Ihrem Bildschirm erscheinen (da Sie vermutlich ssh zum login auf die LRZ-Rechner benutzen, müssen Sie weiter nichts tun, da ssh meistens automatisch $DISPLAY für Sie richtig definiert. Probieren Sie es einfach erst mal aus.). Am Linux-cluster müssen Sie einmalig nach dem einloggen mit module load matlab die MATLAB Umgebung bereitstellen.

MATLAB als Batchjob

Längere Jobs rechnen Sie bitte auf dem Linux-Cluster im Batch-Verfahren. Sie verwenden im Batch-Verfahren die Komandozeilenversion matlab -nodesktop -nosplash -nodisplay und ein MATLAB-Script. Darin können sie alle Arten von MATLAB-Operationen verwenden (siehe Mathworks' MATLAB Dokumentation), mit Ausnahme von Graphik-Operationen. Diese Funktionalität steht, wegen des nicht vorhanden seins eines X-Servers, auf den Compute-Knoten nicht zur Verfügung. Ein Skript kann auch die Parallel-Computing-Möglichkeiten von MATLAB nutzen (siehe Absatz: MATLAB Parallel Computing).

Im Folgenden finden Sie ein Beispiel-Batch-Script für einen seriellen SGE-Job auf dem Linux-Cluster. Dieses führt das Beispiel-MATLAB-Script matlab_example.m als serielles Beispiel aus.

#!/bin/bash      
#$-o $HOME/my_matlab_dir/matlab_job.$JOB_ID.out -j y      
#$-N matlab_batchjob_name      
#$-S /bin/bash      
#$-M my_email_address@my_domain      
#$-l h_rt=01:00:00             (Serial queue max. 240h)
#$-l march=x86_64      
#$-l mf=6gb

. /etc/profile      
module load matlab      

cd my_matlab_dir      
matlab -nodesktop -nosplash -nodisplay -r matlab_example  (!!! Angabe des MATLAB-Skript 
                                                          in der -r Option ohne die Endung .m !!!)

Das folgende Jobfile ist ein Beispiel-Batch-Script für einen parallelen Job auf dem Linux-Cluster unter SLURM. Es führt das Beispiel-MATLAB-Script matlab_example.m als gemischtes serielles/paralleles Beispiel aus.

#!/bin/bash
#SBATCH -o $HOME/my_matlab_dir/matlab_job.%j.%N.out
#SBATCH -D $HOME/my_matlab_dir/matlab_job
#SBATCH -J matlab_batchjob_name
#SBATCH --get-user-env
#SBATCH --export=NONE
#SBATCH --nodes=1-1
#SBATCH --cpus-per-task=8
#SBATCH --clusters myri
#SBATCH --partition=myri_std
#SBATCH --mail-type=all
#SBATCH --mail-user=my_email_address@my_domain
#SBATCH --time=01:00:00

. /etc/profile.d/modules.sh
module add matlab

cd my_matlab_dir
export MATLAB_POOL_SIZE=8

matlab -nodesktop -nosplash -nodisplay -r matlab_example  (!!! Angabe des MATLAB-Skript 
                                                          in der -r Option ohne die Endung .m !!!)

Weitere Job-Beispiele finden sie hier: serielle SGE-Jobs und SLURM-Jobs. Bitte beachten sie bei der Auswahl der Queues, die jeweils zur Verfügung stehenden Resourcen im Vergleichen zu den Parallel-Computing-Möglichkeiten von MATLAB ( siehe Absatz: MATLAB Parallel Computing) und wählen sie die passende Queue für ihren Job!

MATLAB Parallel Computing

Sie haben die Möglichkeit mit einem lokalem Matlabpool bis zu maximal 8 Threads zu nutzen, sofern entsprechende Resourcen zur Verfügung stehen. Eine kurze Einführung wie man die Parallel Computing Toolbox am LRZ Linux-Cluster nutzen kann finden sie hier: matlabp_interactive.pdf, eine detailierte Darstellung findet man unter Parallel Code Execution in der Mathworks' MATLAB Dokumentation.

Da der MATLAB Distributed Compute Server (DCS) das am LRZ verwendeten SLURM Batch-System im Moment nicht unterstützt, gibt es am LRZ keinen Support für den DCS. Ferner wird der vom DCS unterstützte Sun Grid Engine (SGE), in der näheren Zukunft ausser Betrieb gehen. User dürfen gerne selbst Versuchen, die Möglichkeiten dieser Matlabpakete zu nutzen (siehe dazu Scheduler in Mathworks' MATLAB Dokumentation), sollten aber bitte bedenken, das der DCS für jeden MATLAB-Worker, d.h. für jeden Prozess eine eigene Lizenz anfordert (siehe MATLAB-Lizenzen auf den LRZ HPC-Systemen).

MATLAB Compiler Runtime (MCR)

Mit dem MATLAB-Compiler übersetzte MATLAB-Programme können auf dem Linux-Cluster ausgeführt werden ohne das eine MATLAB-Lizenz benötigt wird. Zum compilieren wird eine Lizenz benötigt, dies kann aber prinzipiell auch auf einem externen System erfolgen, sofern dort eine entsprechende MATALB-Version installiert ist.

Zum ausführen übersetzter MATLAB-Programme wird das MATLAB-Compiler-Runtime (MCR) Environment benötigt, das entsprechende Module wird mit dem Kommando

module load matlab/<Version>_MCR

geladen, wobei <Version> die Version der zugehörigen MATLAB-Installation (z.B. R2011a) bezeichnet. Die auf den LRZ HPC-Systemen verfügbaren Versionen des MCR-Environments können mit

module avail matlab

angezeigt werden.

Das laden des MATLAB-Compiler-Runtime-Modules konfiguriert das Environment so, dass das executable direkt ausgeführt werden kann (./executable)! Alternativ kann das executable auch mit dem, vom MATLAB-Compiler ebenfalls generierten Run-Skript, ausgeführt werden. Diesem muss der Basispfad des MCR als Argument angeben werden (./run_executable.sh $MATLAB_MCR_BASE). Der Basispfad kann mit dem Kommando

module show matlab/<Version>_MCR

angezeigt werden (siehe $MATLAB_MCR_BASE oder $MCRROOT).

Octave als freie Alternative

Eine kostenlose Alternative zu MATLAB kann Octave sein. Octave ist auf dem 64bit Linux cluster installiert und kann interaktiv auf lx64ia1 benutzt werden:

   module load octave
   octave

Auch hier müssen Sie einmalig nach dem einloggen mit module load octave die Octave Umgebung bereitstellen.

Fragen?

Wenn Sie technische Probleme haben, so wenden Sie sich bitte an Dr. Nicolay J. Hammer ( Hammer(at)lrz(dot)de ).
Bei Fragen und Problemen im Zusammenhang mit der Lizensierung, Finanzierung, neue Produkte, Sammelbestellung, etc., wenden Sie sich bitte an Herrn Max Diehn ( Diehn(at)lrz(dot)de ).

Informationen zu MATLAB im Internet

  • Es gibt am LRZ ein e Mailinglliste zu MATLAB. Sie können sich selbst eintragen, indem Sie folgende Seite aufrufen: https://lists.lrz.de/mailman/listinfo/matlab
    Auf dieser Liste werden Fragen zu MATLAB am LRZ diskutiert und neue Entwicklungen frühzeitig angekündigt.
    Die Nachrichten der Liste werden archiviert. Schauen Sie also auch mal ins Archiv, bevor Sie eine neue Frage posten.
  • The MathWorks ist die Firma, die MATLAB vertreibt.

    Der URL in Deutschland lautet http://www.mathworks.de (ehemals Scientific Computers).

    Die Adresse ist:

    The MathWorks GmbH
    Adalperostr. 45
    D - 85737 Ismaning

    Tel.: 089 - 45235-6700
    Fax : 089 - 45235-6710

    Auf dem WWW-Server von The MathWorks finden Sie auch Seminar- und Trainingsangebote.