SSH Matlab Julia Sagemath Maple Mathematica
Zur Zeit lassen sich folgende Programme per SSH auf dem Server der Mathematik nutzen:
-
Matlab
-
Julia
-
Sagemath
-
Maple
-
Mathematica
Weiter Programme werden folgen.
Bei allem Folgendem gilt: Ihr arbeitet vermutlich nicht alleine auf diesem Rechner. Darum bitten wir euch, die Rechenlast gering zu halten !!!
Weiterhin beachtet bitte: dass einmal in den Morgenstunden pauschal alle SSH-Verbindungen terminiert werden.
ACHTUNG: Fuer die Nutzung des Servers ist zwingen eine funktionierender Mathe-Cip-Pool-Account nötig !!! (Einen Cip-Pool-Account bekommen nur Mathematik Stundenten.)
Externe Nutzung von Matlab
Erste Schritte
Da die Studierenden aufgrund der momentanen Umstände keinen Zutritt zu den CIP-Pools haben, gibt es die Möglichkeit, Matlab extern zu nutzen. Dazu geht man vor wie folgt:
1. VPN-Verbindung mit dem Uninetzwerk herstellen.
Ausführliche Anleitung vom RRZE findet man unter https://www.anleitungen.rrze.fau.de/internet-zugang/vpn/.
2. Per SSH am Server des CIP anmelden.
Dazu, wenn noch nicht vorhanden, SSH-Client installieren. Für Windows: PuTTY (https://putty.org/)
Verbindung mit folgenden Informationen herstellen:
Host-Adresse: 131.188.54.22
Benutzername: IDM-Kennung (z.B. ab01cdef)
Passwort: CIP-Passwort (Standardmäßig identisch mit IDM Kennwort)
Eine genaue Anleitung zum Nutzen der SSH-Verbindung gibt es hier. Jetzt ist man mit dem Server des CIP verbunden und in einem Terminalfenster im eigenen Home-Verzeichnis.
3. Optional: Texteditor nano „MATLAB-freundlich“ einrichten
Dazu lädt/kopiert man sich die Konfigurationsdatei mit diesem Befehl in seine .nanorc
mkdir -p ~/.nano && wget -O ~/.nano/octave.nanorc https://www.math.fau.de/download/colorcodes --no-check-certificate&& echo "include ~/.nano/octave.nanorc" >> ~/.nanorc
4. MATLAB starten
Mit folgendem Befehl kann man dann MATLAB ohne grafische Oberflaeche und mit nano als Texteditor starten:
matlab -nodisplay -r "setenv('EDITOR','nano')"
ggf.: Nano nochmal setzten: setenv(‚EDITOR‘,’nano‘)
Nach Ausführen des Befehls ist man in der MATLAB-Konsole. Zunächst sollte man für die Benutzung von Skript-Dateien, wie in der Desktop-Version auch, den aktuellen Pfad setzen, relativ zu welchem alle eingegebenen Dateinamen interpretiert werden. Mit pwd bekommt man den aktuellen Pfad angezeigt und durch cd kann man ihn verändern.
Skript ausfuehren
MATLAB zunächst wie oben beschrieben starten. Es sollte so etwas in der Art kommen:
MATLAB is selecting SOFTWARE OPENGL rendering. < M A T L A B (R) > Copyright 1984-2019 The MathWorks, Inc. R2019a (9.6.0.1072779) 64-bit (glnxa64) March 8, 2019 To get started, type doc. For product information, visit www.mathworks.com. Classroom License -- for classroom instructional use only. >>
Nun kann man Matlabskripte ganz normal laufen lassen, indem man
>> run NameDerDatei.m
eingibt. Wichtig hierbei ist, dass man Matlab im Ordner der Datei gestartet hat.
Um Skripte zu bearbeiten, beachte die obigen Erläuterungen unter Erste Schritte. Dann können Skripte mit
>>edit NameDerDatei.m
bearbeitet werden.
Das Plotten ist ohne graphische Oberfläche ein bisschen umständlicher als sonst. Man kann wie gewohnt den plot-Befehl ausführen und dieser verhält sich auch im Hintergrund wie ein gewöhnlicher plot-Aufruf, es wird nur nichts angezeigt. Deswegen speichert man zunächst mit
print('meinDateiNameOhneEndung','-dsvg')
die aktuelle figure als svg-Datei in das momentane Verzeichnis ab. Andere Dateiendungen wie ‚-dpng‘ sind auch möglich. Für weitere Erklärungen und feinere Kontrolle siehe die print-Dokumentation von MATLAB (https://www.mathworks.com/help/matlab/ref/print.html). Anschließend kann man sich diese Datei auf seinen heimischen Rechner zum Betrachten kopieren. PuTTY stellt dafür das Tool pscp zur Verfügung. https://the.earth.li/~sgtatham/putty/0.73/htmldoc/Chapter5.html#pscp , auf Linux kann man scp verwenden. Der Pfad auf dem Server ist dabei meist von der Form
ab12cdef@131.188.54.22:/home/stud/ab12cdef/OftHierZwischenordner/meineDateiOhneEndung.svg
Man verlässt MATLAB mit dem exit-Befehl.
Dateien aus dem CIP auf den eigenen Rechner kopieren
Man geht davon aus, dass die m-files auf dem privaten Computer sind. Für folgende Anleitung muss man ’scp‘ nutzen können. Auf Mac und Linux ist dieses im Betriebssystem integriert.
(Windows) Unter Windows kann das Programm WinSCP verwendet werden. Um sich anzumelden, muss zuerst als Übertragungsprotokoll scp auswählen, zweitens in der Serveradresse „131.188.54.22“ eingeben (ohne “ „) und drittens kann als Port Port 22 benutzt werden. Der Benutzernahme ist die IdM-Kennung (ab01cdef) und das Passwort euer IdM-Passwort.
Nach Aufsetzen des Programmes kann man Dateien mittels Drag and Drop zwischen seinem Computer und dem Server bewegen
(Mac/Linux) Man kann die eigenen Dateien auf seinen Rechner bewegen, indem man
scp /Ordner/Filename ab01cdef@131.188.54.22:~/Ordner
eingibt. Bitte beachtet dabei, dass die Pfade absolut sein müssen.
MATLAB im CIP von der Shell Starten
Um MATLAB von der Shell zu starten empfiehlt sich der folgende Befehl:
matlab -nojvm -nodisplay -r
Die Optionen zum Befehl machen folgendes (zusammen mit einigen anderen nützlichen Optionen):
Option Resultat -nojvm Startet MATLAB ohne die Java® Virtual Machine (JVM™) Software. Dies reduziert die Startzeit und die RAM last. -nodisplay Startet die JVM Software ohne den MATLAB Desktop. -logfile filename Schreibt die komplette Ausgabe auch in das File filename. (auch die Fehler Berichte) -r Verwende diese Option für interaktives Arbeiteten. -h Zeigt die Startoptionen an.
Um ein Skript auszuführen nutzen sie folgenden Befehl:
matlab -nodisplay -nosplash -nodesktop -r "run('/path/to/file/example.m');exit;"
nano Editor:
Externe Nutzung von Julia
Um Julia von der Shell zu starten empfiehlt sich der folgende Befehl:
Eine Anleitung zur Nutzung von Julia:
Julia am Department Mathematik
Externe Nutzung von Sagemath
Eine Anleitung zur Nutzung von Sagemath:
Sagemath am Department Mathematik
Externe Nutzung von Maple
Um Maple von der Shell zu starten empfiehlt sich der folgende Befehl:
Eine Anleitung zur Nutzung von Maple:
Maple am Department Mathematik
Externe Nutzung von Mathematica
Um Maple von der Shell zu starten empfiehlt sich der folgende Befehl:
Eine Anleitung zur Nutzung von mathematica:
Wolfram Mathematica: Using a Text‐Based Interface
Glossar
Account
Ein Benutzerkonto auf einem „UNIX“-System. Es besteht mindestens aus dem Paar Benutzername/Benutzer-ID, auch bezeichnet als Login und UID.
BSD
Berkeley Software Distribution
Familie von meist freien Unix-Derivaten wie FreeBSD, OpenBSD oder NetBSD.
Bash
(Bourne-again shell) ist die Standard-Shell in vielen Unix- und Linux-Systemen.
Anders als die PowerShell/PowerShell Core ist die bash nicht objektorientiert, sondern rein textbasiert.
C
ist die Programmiersprache, in der der plattformunabhängige Anteil des Linux-Kernels und ein Großteil der Applikationen entwickelt wurden.
CLI
(Command Line Interface). Ein Programm, das dem Benutzer die Möglichkeit bietet, dem Betriebssystem Anweisungen zu erteilen. Unter Linux findet sich das CLI in Form der verschiedenen Shell-Implementierungen wieder.
Compiler
Ein Compiler dient zur Erstellung von Programmen, genauer, zur Übersetzung von Quelltext in Objektdateien.
Copy-On-Write
beschreibt die Funktion von Dateisystemen, Blöcke nicht direkt zu überschreiben, sondern eine Kopie der neuen Daten in einem anderen freien Block abzulegen. Nachdem ein neuer Block erfolgreich abgespeichert wurde, wird der entsprechende Zeiger angepasst. Sollte das System während eines Schreibvorgangs abstürzen, entsteht somit kein inkonsistenter Zustand des Dateisystems. Ausschließlich die in dem Moment geschriebenen Daten gehen verloren, währenddessen die vorherige Version des Blocks noch unverändert ist. Darüber hinaus ermöglicht dieses Konzept das schnelle und einfache Anlegen von Snapshots.
CPU
(Central Processing Unit). Der primäre Mikroprozessor. Ein Prozessor ist ein (meist sehr stark verkleinertes und meist frei) programmierbares Rechenwerk, also eine Maschine oder eine elektronische Schaltung, die gemäß übergebenen Befehlen andere Maschinen oder elektrische Schaltungen steuert.
Dataset
bezeichnet ZFS-Dateisysteme, Volumes und Snapshots. Datasets sind in einer Vererbungshierarchie organisiert und immer einem bestimmten zpool zugeordnet. Sie dienen der Strukturierung von Pools und ermöglichen eine Anpassung an verschiedene Anforderungen. Durch das Setzen von Parametern können die Komprimierung, der Prüfsummenalgorithmus, die logische Blockgröße und viele weitere Funktionen und Eigenschaften für jedes Dataset einzeln verändert werden. Alle Datasets teilen sich den Speicher des gesamten Pools und sind deshalb nicht als Partition mit eigenem Speicherbereich anzusehen.
Dämonprozesse
Prozesse, die im Hintergrund ablaufen und in den meisten Fällen spezielle Dienste verrichten.
Device
Eine Geräteschnittstelle, die unter Linux als Gerätedatei im virtuellen Dateisystem vorhanden ist. Diese Dateien liegen unterhalb des Verzeichnisses /dev.
Debian
Auch Debian Linux ist ein gemeinschaftlich entwickeltes freies Betriebssystem. Debian GNU/Linux basiert auf den grundlegenden Systemwerkzeugen des GNU-Projektes sowie dem Linux-Kernel.
ext2/ext3/ext4
Die primär unter Linux eingesetzten Dateisysteme. Das neuere ext3 unterstützt dabei, im Gegensatz zu ext2, Journaling, ist aber abwärtskompatibel. Man kann mit einem ext2-Treiber also immer noch auf eine ext3-Partition zugreifen. ext4 ist eine Weiterentwicklung von ext3.
FIFO
(First-In-First-Out). Eine FIFO ist eine Warteschlange. In sie werden Daten hineingeschrieben, die in derselben Reihenfolge wieder ausgelesen werden müssen.
Firewall
Ein Rechner, oder Anwendung die das lokale Netz vor Angriffen aus dem Internet schützt.
FQDN
(Fully Qualified Domain Name). Der volle Domainname eines Systems, bestehend aus Hostname und Domäne. Der vollständige Name einer Domain wird als Fully Qualified Domain Name (FQDN) bezeichnet. Der Domain-Name ist in diesem Fall eine absolute Adresse.
Der FQDN www.example.com. ergibt sich durch: 3rd-level-label. 2nd-level-label. Top-Level-Domain(com).
und lautet damit: www.example.com
FTP
(File Transfer Protocol). Ein Protokoll für die Kommunikation mit Dateiservern.
GPL
(GNU General Public License). Lizenz, unter der Linux und viele andere freie Software vertrieben wird.
HTTP (HyperText Transfer Protocol).
Ein Protokoll, das die Interaktion mit Webservern beschreibt.
HTTPS
HTTPS (HTTP Secure) ist eine verschlüsselte Version des HTTP-Protokolls. Meistens nutzt es SSL (en-US) oder TLS, um die gesamte Kommunikation zwischen einem Client und einem Server zu verschlüsseln. Diese sichere Verbindung erlaubt Clients, sicher sensible Daten mit dem Server auszutauschen, zum Beispiel Banking-Aktivitäten oder Online-Shopping.
Interpreter
Ein Interpreter führt ein in einer Programmiersprache geschriebenes Skript aus, ohne dass es vorher explizit kompiliert werden müsste.
ISO 9660
Dieser Standard beschreibt ein Dateisystem für CD-ROMs und DVDs. Typische Merkmale des Standards sind zum Beispiel Beschränkungen in der Länge von Dateinamen. Außerdem gibt es keine Informationen zu Dateieigentümern und Rechten.
Journaling
Bei Journaling-Dateisystemen wird jede Transaktion protokolliert, so dass nach einem Crash die oft aufwendige Reparatur des Dateisystems entfallen kann.
Kernel
Der Kernel ist die Kernkomponente des Betriebssystems und für wichtige Aufgaben wie die Prozess- und Speicherverwaltung oder die Hardwareunterstützung zuständig.
Kernel-Modul
Ladbare Kernel-Module (LKM) sind dynamisch in den Kernel integrierbare Komponenten, die oft einen Treibercode zur Verfügung stellen. Dank solcher LKMs kann oftmals auf die Rekompilierung des Kernels verzichtet werden.
Kernelspace
Speicherbereich im RAM für den Kernel und alle Kernel-Module, wie beispielsweise Hardwaretreiber.
LKM
(Ladbares Kernel-Modul). Siehe Kernel-Modul.
Linux
ist ein Open-Source-Betriebssystem, welches auf dem Linux-Kernel (Betriebssystemkern) und einer freien GNU-Software basiert. Linux wurde 1991 von dem Finnen Linus Torvalds auf Basis des Betriebssystems UNIX entwickelt.
Multitasking
Mehrprozessfähigkeit. Es können mehrere Programme parallel ausgeführt werden.
Multiuser
Ein Mehrbenutzersystem oder Multiuser-System ist ein Betriebssystem, das die Möglichkeit bietet, Arbeitsumgebungen für verschiedene Benutzer bereitzustellen und voneinander abzugrenzen.
NFS
Das Network File System (NFS, auch Network File Service) – ist ein von Sun Microsystems entwickeltes Protokoll, das den Zugriff auf Dateien über ein Netzwerk ermöglicht.
NNTP
NNTP (Network News Transfer Protocol) ist ein Übertragungsprotokoll für Nachrichten in Newsgroups. Das Protokoll, das z.B. im Usenet verwendet wird.
NTP
Das Network Time Protocol (NTP) ist ein Standard zur Synchronisierung von Uhren in Computersystemen über paketbasierte Kommunikationsnetze. NTP verwendet das verbindungslose Transportprotokoll UDP oder das verbindungsbezogene TCP. Es wurde speziell entwickelt, um eine zuverlässige Zeitangabe über Netzwerke mit variabler Paketlaufzeit zu ermöglichen.
Open Source
Bewegung zur Förderung freier Software. Freie Software definiert sich durch ihre freie Nutzung sowie durch die Verfügbarkeit der Quelltexte.
Proxyserver
Ein Proxyserver ist ein Rechner zwischen vielen Clients und einem Server. Im Allgemeinen hat er die Aufgabe, Anfragen zu puffern, damit der Server nicht überlastet wird.
Prozess
Ein Prozess repräsentiert unter Linux idealerweise ein laufendes Programm. Hierzu gehört neben dem auszuführenden Programmcode auch eine Umgebung, die unter anderem Shellvariablen und Ähnliches enthält.
Pseudo-Dateisystem
Ein Dateisystem, das in der Regel in den Hauptspeicher ausgelagert wird und über eine Pseudo-Schnittstelle zu benutzen ist. Beispiele hierfür sind procfs und swapfs.
Quota
Disk Quota (englisch disk ‚Festplatte‘ und quota ‚Anteil‘, ‚Kontingent‘) wird die Begrenzung des Speicherplatzes auf Speichermedien, wie etwa Festplatten, für einen einzelnen Benutzer oder eine Gruppe von Benutzern genannt. Speicherplatzbegrenzung für Benutzer
RAM
(Random Access Memory). Der Hauptspeicher.
ROM
(Read Only Memory). Ein Speicher, der in der Regel nur einmal beschrieben wird und beispielsweise für die Unterbringung des BIOS auf dem Mainboard installiert ist.
SMB
Ein Protokoll für Dateifreigaben in einem Netzwerk, das hauptsächlich in der Windows-Welt genutzt wird.
SMTP
(Simple Mail Transfer Protocol). Das Standardprotokoll, um E-Mails zu verschicken.
Snapshot
hält den Zustand eines Dateisystems zu einem bestimmten Zeitpunkt fest. Werden Daten im Dateisystem verändert, so wird sowohl die aktuelle, als auch die Version des Snapshots aufgehoben. Zu einem späteren Zeitpunkt kann entweder der Zustand des Snapshots wiederhergestellt oder auf einzelne Daten des Snapshots zugegriffen werden.
Secure Shell (SSH)
ist ein Protokoll und zugehörige Client- und Serverprogramme zur Herstellung einer verschlüsselten Netzwerkverbindung. SSH ermöglicht die gegenseitige Authentifizierung und eine verschlüsselte Datenübertragung. SSH war ursprünglich für Unix-basierte System; inzwischen gibt es auch Implementierungen für Windows u.a.
Swap
Auf die Festplatte ausgelagerter Hauptspeicher
Syscall
Ein System-Call, also ein Aufruf von speziellen Kernel-Funktionen durch ein Programm, das im Userspace läuft.
TCP/IP
Transmission Control Protocol/Internet Protocol
Die „TCP/IP“-Protokollfamilie beinhaltet eine Reihe wichtiger Protokolle zur Netzwerkkommunikation.
Das Transmission Control Protocol (TCP, deutsch Übertragungssteuerungsprotokoll) ist ein Netzwerkprotokoll, das definiert, auf welche Art und Weise Daten zwischen Netzwerkkomponenten ausgetauscht werden sollen.
Im Unterschied zum verbindungslosen UDP (englisch User Datagram Protocol) stellt TCP eine Verbindung zwischen zwei Endpunkten einer Netzverbindung (Sockets) her. Auf dieser Verbindung können in beide Richtungen Daten übertragen werden. TCP setzt in den meisten Fällen auf das IP (Internet-Protokoll) auf, weshalb häufig (und oft nicht ganz korrekt) auch vom „TCP/IP-Protokoll“ die Rede ist.
Ubuntu
auch Ubuntu Linux, ist eine Linux-Distribution, die auf Debian basiert. Der Name Ubuntu bedeutet auf Zulu etwa „Menschlichkeit“ und bezeichnet eine afrikanische Philosophie. Die Entwickler verfolgen mit dem System das Ziel, ein einfach zu installierendes und leicht zu bedienendes Betriebssystem mit aufeinander abgestimmter Software zu schaffen.
Userspace
Speicherbereich im RAM, der für alle Programme und Daten genutzt wird, die nichts direkt mit dem Kernel zu tun haben. Diese Programme haben damit keinen Zugriff auf den Speicherbereich des Kernels.
VFS
(Virtual File System). Das virtuelle Dateisystem stellt das Grundsystem zur Dateisystemverwaltung dar. Alle anderen Dateisysteme werden an sogenannten Mountpoints integriert und sind somit transparent für den Benutzer.
WLAN
(Wireless LAN). Stellt Netzwerke über Funkverbindungen her.
X11
Das X-Window-System 11 Release 7 (X11R7) stellt eine grafische Oberfläche für Unix-Systeme bereit.
Zombie-Prozess
Ein Prozess, der bereits beendet ist, aber trotzdem noch im Speicher vorgehalten wird. Der Elternprozess kann so später immer noch das versäumte Auswerten des Rückgabestatus des Zombies vornehmen.
ZFS
ZFS ist ein von Sun Microsystems entwickeltes transaktionales Dateisystem.
zpool
ZFS zpool – In der Praxis werden zunächst aus physischen Datenträgern (eigentlich Datenspeicher-Geräten) logische Einheiten – sogenannte Pools (bzw. zPools) – gebildet, welche optional auch ausfallsicher ausgelegt sein können. Um einen Pool über mehrere Festplatten zu erzeugen und auf diesem eine Partition anzulegen, werden lediglich zwei einfach strukturierte Befehle benötigt. Das Partitionieren, Aufbauen des logischen Volumens und schließlich das Einhängen ins bestehende Dateisystem werden automatisch erledigt.