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.

Bezug von MATLAB

Das LRZ bietet für die Institute der LMU und der Hochschule München (HM) MATLAB- und Simulink-Lizenzen, Toolboxen und Blocksets an. Sie können im Rahmen des bestehenden 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.

Die TUM hat zum 1.Oktober 2011 eine Matlab Campuslizenz abgeschlossen. Die Versorgung der TUM mit Matlablizenzen geschieht ab 01. Januar 2012 über die RBG der TUM, nicht über das LRZ.
http://www.in.tum.de/rbg/beschaffung/rahmenvertraege/matlab.html

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.

Bitte beachten sie, dass die momentan vom LRZ gekauften MATLAB Lizenzen leider nicht auf dem nationalen Höchstleistungsrechner SuperMUC verwendet werden dürfen.

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.

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 und dem Linux-Cluster 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 -singleCompThread 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).

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_example2.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=16
#SBATCH --clusters mpp1
#SBATCH --partition=mpp1_batch
#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=16
matlab -nodesktop -nosplash -nodisplay -singleCompThread -r matlab_example2
#        !!! Angabe des MATLAB-Skript in der -r Option ohne die Endung .m !!!

Weitere Job-Beispiele finden sie hier: 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 einen lokalen Matlabpool mit mehreren Workern zu nutzen, sofern entsprechende Resourcen zur Verfügung stehen. Das gleiche gilt für die Multithreading-Option, hier ist zu Beachten, dass Matlab standardmäßig die Anzahl der Threads nach der Anzahl der Cores eines Systems setzt, deshalb unbedingt die Anzahl mit der maxNumCompThreads-Funktion passend zu den Resourcen und der Anzahl der Worker setzen! 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. 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. R2016a) 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 Linux Cluster und dem SuperMUC verfügbar und kann interaktiv auf den Login-Knoten 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, wenden sie sich bitte an den LRZ-Servicedesk. Bei Fragen und Problemen im Zusammenhang mit der Lizensierung, Finanzierung, Sammelbestellung, mit neuen Produkten, etc., wenden sie sich bitte an lizenzen(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.