Matlab installasjonsveiledning

Nyeste tilgjengelig versjon er 2019b, for nyheter i siste versjon se whatsnew.

Vi har ny Matlab lisens, fra og med 2019-02-14 kan alle studenter og ansatte installere Matlab på egen privat PC og benytte Matlab utenfor UiS. For installasjon, se MATLAB for Students and EmployeesMatlab-siden. Informasjonen nedenfor skal kun benyttes for stasjonære PCer på UiS.

Installasjons-mediet, ISO filer og installasjonsprogram er tilgjengelig her, velg den versjonen du trenger og tilhørende installasjons-kode.

I Windows 10 kan man dobbelklikke på ISO-fila for å mounte den, men i eldre Windows versjoner må man installere et program for å få samme funksjonalitet, se da VirtuellDVDStasjon.

Mathworks Matlab installasjon

Merk at bildene under er fra installasjon av en eldre versjon av Matlab, men det er liten eller ingen endring ift. nyeste versjon, bortsett fra selve versjonsnummeret da.

bilde 1

bilde 2

bilde 3

Koden finner du nede på denne siden.

bilde 4

bilde 5

Path i bilde over er for versjon 2009b, for nyere versjoner er, selvsagt, versjonsdelen av path en annen. Du gjør lurt i å bruke standard installasjons-katalog.

bilde 6

Igjen, path i bilde over er for verson 2009b, du installerer en nyere versjon og har derfor en litt annen path.

bilde 7

Velg riktig lisens under og lagre den i en fil, license.txt

Lisensfil for bruk i pc-stuer og undervisningsrom

SERVER matlabk.lm.ux.uis.no ANY 27007
USE_SERVER

Lisensfil for alle andre steder internt på UiS

SERVER matlab.lm.ux.uis.no ANY 27007
USE_SERVER

bilde 8

bilde 9

bilde 10

bilde 11

bilde 12

Nå har du fått et Matlab icon på desktopen din, slik som på dette bilde (over).

bilde 13

Dersom du ikke har tilgang til lisens-serveren, vil det tilsynelatende ikke skje noe som helst i ca 20-30 sekunder etter at du dobbelklikker på Matlab icon'et, så vil meldingen over dukke opp. For å fikse dette, se Tilgang til lisensserver nedenfor.

bilde 14

Når alt er i orden og Matlab kan snakke med lisensserveren, dukker dette bilde raskt opp når du starter Matlab.

Kjørte Matlab beregninger på Unix-anlegget

Dette er spesiellt nyttig om man ønsker å kjøre flere beregninger samtidig, men også nyttig ifm. tid- og/eller minne-krevende beregninger, eller om man bare ønsker å frigjøre egen PC.

Unix-bruker

Du trenger en Unix-bruker for å logge deg inn på Unix-serverne, har du ikke fått bruker? se UnixUserReg.

SSH til Unix-server

Det er en fordel å bruke tekstbasert innlogging og starte Matlab-jobben i et tekst shell, da kan man enkelt kjøre den i bakgrunnen, logge av og seinere sjekke status ved å følge med på en log fil. Det er da også enklere å kjøre flere parallelle Matlab-jobber, enn om man skulle startet Matlab GUI.

SSH til en av serverne i server-clusteret (gorina maskinene skal benyttes til tunge kjøring, velg den som er minst belastet, merk at noen av serverne er reservert for spesielt behov).

Starte Matlab jobb i virtuell terminal

Det anbefales å bruke virtuell terminal for jobbing mot Unix-server via SSH, mister du forbinndelsen, vil ingen av prosessene dine stoppe og du kan koble deg opp igjen og fortsette der du var da forbinndelsen ble bruddt :-). En kort og god innføring i screen.

Det er normalt ikke nødvendig å kjøre men enn en instans av screen, så ikke kjør screen kommandoen om du allerede har en screen prosess kjørende, du vil ikke kunne se dine virtuelle terminaler i screen 1 fra screen 2.

En god regel er da å alltid først prøve -r (reattach) for å koble til en eksisterende screen:
screen -r

Får en feilmeldingen There is no screen to be resumed., er det bare å starte screen:
screen

Nå som du er i en virtuell terminal, i screen, starter du matlab jobben som vanlig. Du velger selv om du vil kjøre jobben i bakgrunnen og benytte log-fil, eller bare kjøre den i forgrunnen, skal du kjøre en jobb til, opprette du bare en ny virtuell terminal. Kjøre matlab i forgrunnen:
matlab -nojvm -r job.m
# trykk "CTRL-a d" for å koble fra (detach) screen

Kjøre matlab i bakgrunnen:
matlab -nojvm -r job.m -logfile matlab.log &
# trykk "CTRL-a d" for å koble fra (detach) screen

Mulige argumenter til matlab ser du med:
matlab -h

Når du vil sjekke status på jobben din, logger du inn til serveren med SSH, og kobler deg opp mot din(e) virtuelle terminal(er):
screen -r

Har du en aktiv screen-forbinndelse på en annen klient, må denne først avsluttes før du kan koble deg opp på ny, det gjøres enkelt med -d (detach) slik:
screen -d -r

De viktigste screen kommandoene:
  • Trykk CTRL-a d for å avslutte screen-forbinndelsen (de virtuelle terminalene blir ikke avsluttet). (detach from screen)
  • Trykk CTRL-a c for å opprette en ny virtuell terminal (create window)
  • Trykk CTRL-a 0 for å hoppe til virtuell terminal nr 0
  • Trykk CTRL-a 1 for å hoppe til virtuell terminal nr 1
  • Trykk CTRL-a " for liste over alle dine virtuelle terminaler, du kan så velge med piltastene
  • Trykk CTRL-a n for å hoppe til neste virtuell terminal (jump to next window)
  • Trykk CTRL-a p for å hoppe til neste virtuell terminal (jump to previous window)
  • Trykk CTRL-a A sette navn på virtuell terminal, har man flere vinduer er det en stor fordel å ha forklarende navn på hvert enkelt vindu.
  • Skriv logout eller CTRL-d for å avslutte en virtuell terminal (samme kommando som i ekte terminaler)
  • kjør kommandoen screen -r for å koble deg til den/de virtuelle terminalene
  • kommandoen screen -ls lister ut alle screen prosessene du har kjørende, du trenger normalt ikke mer enn en pr server du bruker.
  • Trykk CTRL-a ? for å få hjelp, trykk "Enter" for å avslutte hjelpen.

Starte Matlab jobb uten screen

Start jobben din i bakgrunnen ("&") og omdiriger evt. meldinger/feilmeldinger til log filer (">" omdirigerer standard ut, "2>" omdirigerer standard error) slik:
nohup matlab -nojvm -r job.m -logfile matlab.log  > matlab.stdout 2> matlab.stderr &

Om programmet er feilfritt og kjører uten problemer, kan man droppe omdirigering av meldinger og feilmeldinger:
nohup matlab -nojvm -r job.m -logfile matlab.log &

Når man starter nohup matlab-jobber er det svært viktig at matlab programmet ditt avsluttes med en exit kommando, ellers risikerer man at matlab-prosessen går inn i en endeløs loop og fyller opp logfilen med etterhvert uendelig mange Warning: Error reading character from command line feilmeldinger... Se http://www.mathworks.in/matlabcentral/newsreader/view_thread/306488

Hvorfor nohup

Alle prosesser som startes fra en shell-prosess, vil være et "barn" til denne prosessen (du kan se barne-prosessene med kommandoen ps -f). Når et shell avsluttes, f.eks. fordi en logger ut eller lukker terminal-vinduet shellet kjører i, vil alle barne-prosesser motta et "hangup" signal ( SIGHUP), dvs. de får en beskjed om å avslutte.

Mao. alle kommandoer som kjøres, vil bli avsluttet når terminal-vinduet/shellet, de ble startet fra, avsluttes. Har en logget inn med SSH og startet en prosess (kjører en kommando i bakgrunnen), vil den normalt avslutte når en logger ut og avslutter SSH forbinndelsen.

Derfor bør man, når man skal kjøre tidkrevende beregningsjobber, alltid starte jobben med kommandoen nohup ... (no-hangup).

Forslag til forbedring

Har du spørsmål eller forslag til forbedring/endringer, ta gjerne kontakt med theo@ux.uis.no.
Topic revision: r24 - 2020-02-19, TheodorIvesdal
 

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback