Matlab: Różnice pomiędzy wersjami

Z KdmWiki
Przejdź do nawigacji Przejdź do wyszukiwania
m
(aktualizacja adresu serwera licencji)
 
(Nie pokazano 16 wersji utworzonych przez 7 użytkowników)
Linia 2: Linia 2:
 
<small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Matlab</small>
 
<small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Matlab</small>
 
{{uwaga|'''Licencja WCSS jest przeznaczona dla użytkowników WCSS, do celów badawczych.''' Pracownicy i doktoranci PWr mogą korzystać z licencji badawczej Politechniki. Studenci i prowadzący zajęcia dydaktyczne na PWr powinni korzystać z licencji dydaktycznej Politechniki. W celu uzyskania licencji i nośników instalacyjnych należy kontaktować się z administratorami '''wydziałowymi''' lub Działem Informatyzacji PWr. WCSS nie dysponuje informacjami o administratorach wydziałowych.}}
 
{{uwaga|'''Licencja WCSS jest przeznaczona dla użytkowników WCSS, do celów badawczych.''' Pracownicy i doktoranci PWr mogą korzystać z licencji badawczej Politechniki. Studenci i prowadzący zajęcia dydaktyczne na PWr powinni korzystać z licencji dydaktycznej Politechniki. W celu uzyskania licencji i nośników instalacyjnych należy kontaktować się z administratorami '''wydziałowymi''' lub Działem Informatyzacji PWr. WCSS nie dysponuje informacjami o administratorach wydziałowych.}}
{{aplikacja|nazwa=Matlab|logo=[[Grafika:Matlab1.png]]|serwer=[[Supernova]]|wersja=R2013a|wersja2=R2012a|serwer2=[[Klaster kampusowy]]|wersja21=R2013a}}
+
{{aplikacja|nazwa=Matlab|logo=[[Grafika:Matlab1.png]]|serwer=[[Bem]]|wersja='''R2017b'''|wersja2=R2016a|serwer2=[[Klaster kampusowy]]|wersja21=R2015a}}
 
'''MATLAB''' jest środowiskiem obliczeniowym przeznaczonym dla inżynierów i naukowców, umożliwiającym przeprowadzanie obliczeń matematycznych, analizy numerycznej, wizualizacji otrzymanych wyników (2D, 3D), jak również tworzenie algorytmów i programów. Język MATLAB-a jest intuicyjny i wygodny w użyciu, co sprawia, że opracowanie algorytmów jest prostsze niż w przypadku takich języków programowania jak C czy Fortran.
 
'''MATLAB''' jest środowiskiem obliczeniowym przeznaczonym dla inżynierów i naukowców, umożliwiającym przeprowadzanie obliczeń matematycznych, analizy numerycznej, wizualizacji otrzymanych wyników (2D, 3D), jak również tworzenie algorytmów i programów. Język MATLAB-a jest intuicyjny i wygodny w użyciu, co sprawia, że opracowanie algorytmów jest prostsze niż w przypadku takich języków programowania jak C czy Fortran.
  
Linia 16: Linia 16:
  
 
== Licencja udostępniana przez WCSS ==
 
== Licencja udostępniana przez WCSS ==
Aktualnie dostępna wersja to '''R2013a''' dla systemów Linux (x86, x86_64), Mac (Intel) i Windows (Server 2008, Server 2008R2, XP SP3, Vista, 7). Prosimy o [[kontakt]] z administratorami w celu wypożyczenia płyt instalacyjnych (tylko DVD). Wymagania pakietu: http://www.mathworks.com/support/sysreq/
+
Aktualnie dostępna wersja to '''R2017b''' dla systemów Linux (x86, x86_64), Mac (Intel) i Windows (Server 2008, Server 2008R2, XP SP3, Vista, 7). Wymagania pakietu: http://www.mathworks.com/support/sysreq/
 +
Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]].
  
 
W skład pakietu wchodzi szereg dodatkowych narzędzi rozszerzających jego możliwości, ukierunkowanych na rozwiązywanie zadań z danego obszaru. WCSS udostępnia licencję obejmującą szereg pakietów, są to:
 
W skład pakietu wchodzi szereg dodatkowych narzędzi rozszerzających jego możliwości, ukierunkowanych na rozwiązywanie zadań z danego obszaru. WCSS udostępnia licencję obejmującą szereg pakietów, są to:
Linia 41: Linia 42:
 
* '''Matlab Coder''' (1)  
 
* '''Matlab Coder''' (1)  
 
* '''Matlab Compiler''' (1)
 
* '''Matlab Compiler''' (1)
 +
* '''Matlab Compiler SDK''' (1)
 
* '''Statistics Toolbox''' (1)
 
* '''Statistics Toolbox''' (1)
 
* '''Wavelet Toolbox''' (1)
 
* '''Wavelet Toolbox''' (1)
Linia 49: Linia 51:
 
* '''Communications Blockset''' (5) - rozszerza pakiet Simulink o bibliotekę elementów konstrukcyjnych służących do budowy i symulacji fizycznej warstwy systemów i komponentów komunikacji.
 
* '''Communications Blockset''' (5) - rozszerza pakiet Simulink o bibliotekę elementów konstrukcyjnych służących do budowy i symulacji fizycznej warstwy systemów i komponentów komunikacji.
 
* '''Filter Design Toolbox''' (1)
 
* '''Filter Design Toolbox''' (1)
 +
=== Informacje o wykorzystaniu ===
 +
{{Podziękowanie_WCSS}}
  
== Uruchamianie na klastrze Supernova ==
+
== Uruchamianie na klastrze Bem ==
MATLAB dostępny jest na klastrze [[Supernova]] (katalog instalacji odpowiednio: /usr/local/matlab-WERSJA).  
+
MATLAB dostępny jest na klastrze [[Bem]] (katalog instalacji odpowiednio: /usr/local/matlab/WERSJA).  
  
 
=== Praca interaktywna na klastrze ===
 
=== Praca interaktywna na klastrze ===
Przed zdalnym uruchomieniem aplikacji w trybie graficznym należy pamiętać o [[Przekierowanie wyświetlania|przekierowaniu wyświetlania]] z klastra na swój komputer. Następnie w celu pracy interaktywnej z aplikacją należy uruchomić zadanie interaktywne w kolejce, z opcją <code>-X</code>, np.:
+
*Przed zdalnym uruchomieniem aplikacji w trybie graficznym należy połączyć się ze zdalnym pulpitem za pomocą programu NoMachine [http://kdm.wcss.wroc.pl/wiki/Jak_korzysta%C4%87_z_NoMachine Instrukcja]
  
  > '''qsub -I -X -q short6h'''
+
*Następnie w celu pracy interaktywnej z aplikacją należy uruchomić zadanie interaktywne w kolejce, z opcją <code>-X</code>, np.:
 +
 
 +
  > '''qsub -I -X -l walltime=6:00:00'''
  
 
;Środowisko aplikacji
 
;Środowisko aplikacji
  
MATLAB pobiera ustawienia środowiska z pliku <code>.matlab7rc.sh</code>. Przed uruchomieniem pobiera plik z pierwszej lokalizacji, kolejno przeszukuje: <code>./</code> (kat. bieżący), <code>$HOME</code> (kat. domowy użytkownika), <code>$MATLAB/bin</code> (kat. domyślny). Wzorcowy plik <code>.matlabXrc.sh</code> znajduje się w katalogu instalacji danej wersji MATLAB-a <code>$MATLAB/bin/</code>. Użytkownik może skopiować ten plik do swojego katalogu domowego i zmienić w razie potrzeby ustawione wartości zmiennych: <code>ARCH, LD_LIBRARY_PATH, LM_LICENCE_FILE, MATLAB</code> (wskazuje na katalog instalacji) i kilku innych.
+
MATLAB pobiera ustawienia środowiska z pliku <code>.matlab7rc.sh</code>. Przed uruchomieniem pobiera plik z pierwszej lokalizacji, kolejno przeszukuje: <code>./</code> (kat. bieżący), <code>$HOME</code> (kat. domowy użytkownika), <code>$MATLAB/bin</code> (kat. domyślny). Wzorcowy plik <code>.matlabXrc.sh</code> znajduje się w katalogu instalacji danej wersji MATLAB-a <code>$MATLAB_TOP/bin/</code>. Użytkownik może skopiować ten plik do swojego katalogu domowego i zmienić w razie potrzeby ustawione wartości zmiennych: <code>ARCH, LD_LIBRARY_PATH, LM_LICENCE_FILE, MATLAB</code> (wskazuje na katalog instalacji) i kilku innych.
  
 
Przed użyciem MATLABa należy załadować odpowiedni moduł.
 
Przed użyciem MATLABa należy załadować odpowiedni moduł.
Linia 66: Linia 72:
 
  > '''module load matlab'''
 
  > '''module load matlab'''
  
Powyższe polecenie wczyta najnowszą wersję. Można też wybrać starszą wersję wydając polecenie:
+
Powyższe polecenie wczyta domyślną wersję. Można też wybrać konkretną wersję modułu wydając polecenie:
  
  > '''module load matlab/R2012a'''
+
  > '''module load matlab/R2015a'''
 +
> '''module load matlab/R2014b'''
  
 
Aby sprawdzić ustawienia przesyłane do MATLAB-a podczas uruchamiania wystarczy wydać polecenie:
 
Aby sprawdzić ustawienia przesyłane do MATLAB-a podczas uruchamiania wystarczy wydać polecenie:
Linia 84: Linia 91:
 
=== Wstawianie zadań wsadowych do kolejki ===
 
=== Wstawianie zadań wsadowych do kolejki ===
  
Aby wstawić zadanie MATLAB-a do kolejki PBS na klastrze Supernova należy [[kopiowanie|przesłać na klaster]] pliki wejściowe zadania (lub przygotować je na klastrze pracując interaktywnie, jak opisane powyżej), [[logowanie|zalogować się na klaster]] i następnie posłużyć poleceniem '''<code>qsub</code>''' lub skorzystać z gotowego skryptu:
+
Aby wstawić zadanie MATLAB-a do kolejki PBS na klastrze Bem należy [[kopiowanie|przesłać na klaster]] pliki wejściowe zadania (lub przygotować je na klastrze pracując interaktywnie, jak opisane powyżej), [[logowanie|zalogować się na klaster]] i następnie posłużyć poleceniem '''<code>qsub</code>''' lub skorzystać z gotowego skryptu sub-matlab (uruchamia domyślną wersję programu)
  
> '''sub-matlab''' <plik_wej.inp>
+
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:
  
Więcej o składni polecenia <code>qsub</code> w artykule: [[Jak korzystać z kolejek PBS]]?
+
> sub-matlab
 +
Usage: /usr/local/bin/sub-matlab input_file [parameters]
 +
Parameters:
 +
-q queue (default - main)
 +
-p cores (default - 1)
 +
-m memory (in MB, default - 2000)
 +
-w walltime (in hours, default - 504)
  
== Uruchamianie na infrastrukturze PLATON-U3 ==
 
Chcąc pracować interaktywnie z MATLAB-em można skorzystać z infrastruktury PLATON-U3 ([[klaster kampusowy]]). Należy w tym celu zarejestrować się w portalu usługi jako użytkownik w WCSS (https://wcss.cloud.pionier.net.pl) i następnie założyć w portalu odpowiednią rezerwację na maszynę wirtualną z zainstalowanym MATLAB-em (szczegółowe instrukcje na stronie usługi).
 
  
Jak użyć takiego MATLAB-a do zlecania zadań zdalnych na klaster Supernowa opisane jest poniżej: [[Matlab#Uruchamianie zadań zdalnie na klastrze Supernova|Uruchamianie zadań zdalnie na klastrze Supernova]].
+
Na przykład
  
== Uruchamianie na własnych komputerach ==
+
> sub-matlab test.inp -q main -p 2 -m 4000 -w 2
KDM WCSS umożliwia uruchamianie Matlaba na własnych komputerach. Wymaga to zainstalowania Matlaba w trybie [http://www.mathworks.com/access/helpdesk/help/base/install/pc/ch2_con4.html network installation] z wykorzystaniem serwera licencji zainstalowanego w KDM WCSS. Dostęp do serwera licencji możliwy jest z adresów klasy B '''<code>156.17.0.0/16</code>'''. Inne adresy/klasy dodawane są po indywidualnych konsultacjach z [[Administratorzy KDM|administratorami KDM]] WCSS.
 
  
W celu uzyskania płyt instalacyjnych należy zgłosić się do [[Administratorzy KDM|kierownika]] działu KDM.
+
Zadanie uruchomione zostanie na 2 rdzeniach (w obrębie jednego węzła), wymaga 4000 MB RAM  (po 2000 MB na proces), walltime zadania jest równy 2 godziny.
  
==== Instalacja na systemach z rodziny Windows ====
 
Przed instalacją należy zgłosić się do WCSS po pobranie kodu PLP wymaganego do instalacji. Następnie należy utworzyć i zapisać na dysku plik licencji o dowolnej nazwie i zawierający wiersze:
 
  
'''SERVER menkar.wcss.pl 0007e905907d 27002'''
+
'''Uwaga'''
'''USE_SERVER'''
 
  
Następnie należy uruchomić instalację i podać kod PLP oraz ścieżkę do pliku licencji na kolejnych etapach instalacji.
+
Na klastrze Bem zadania należy zlecać do kolejki main. Jest to kolejka przekierowująca - na podstawie podanego limitu czasu (walltime) zadania będą przenoszone do odpowiednich kolejek (np. normal, infinity).
  
Jak użyć takiego MATLAB-a do zlecania zadań zdalnych na klaster Supernowa opisane jest poniżej: [[Matlab#Uruchamianie zadań zdalnie na klastrze Supernova|Uruchamianie zadań zdalnie na klastrze Supernova]].
+
'''Zobacz też:''' [[Jak korzystać z kolejek PBS]]?
  
==== Instalacja na systemach z rodziny Linux/UNIX ====
+
== Uruchamianie na infrastrukturze PLATON-U3 ==
Przed instalacją należy zgłosić się do WCSS po pobranie kodu PLP wymaganego do instalacji. Przed uruchomieniem aplikacji należy ustawić zmienną środowiskową <code>LM_LICENSE_FILE</code> na wartość <code>"27002@menkar.wcss.pl"</code>:
+
Chcąc pracować interaktywnie z MATLAB-em można skorzystać z infrastruktury PLATON-U3 ([[klaster kampusowy]]). Należy w tym celu zarejestrować się w portalu usługi jako użytkownik w WCSS (https://wcss.cloud.pionier.net.pl) i następnie założyć w portalu odpowiednią rezerwację na maszynę wirtualną z zainstalowanym MATLAB-em (szczegółowe instrukcje na stronie usługi).
  
Shell typu csh (csh, tcsh):
+
== Uruchamianie na własnych komputerach ==
> '''setenv LM_LICENSE_FILE "27002@menkar.wcss.pl" '''
 
  
Shell typu sh (sh, bsh, bash, ksh, ...):
+
KDM WCSS umożliwia uruchamianie Matlaba na własnych komputerach przy zdalnym wykorzystaniu licencji udostępnianej przez WCSS. Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]].  
> '''export LM_LICENSE_FILE="27002@menkar.wcss.pl"'''
+
Dostęp do serwera licencji możliwy jest poprzez system [[Korzystanie z VPN|VPN]].
  
Rodzaj shella sprawdzamy przez:
+
Przed uruchomieniem instalacji należy stworzyć tekstowy plik licencji o dowolnej nazwie i zawartości:
> '''echo $SHELL'''
 
  
Ewentualny test licencji:
+
  SERVER licencje.kdm.wcss.pl 0007e905907d 27002
  > '''scieżka/do/katalogu/instalacji/matlab/etc/lmstat -a -c 27002@menkar.wcss.pl'''
+
USE_SERVER
  
== Uruchamianie zadań zdalnie na klastrze Supernova ==
+
==== Instalacja na systemach z rodziny Windows ====
WCSS umożliwia zlecanie zdalnie zadań obliczeniowych na klaster Supernova. Jest to możliwe na dwa sposoby:
 
# korzystając ze środowiska MATLAB-a dostępnego na infrastrukturze [[Klaster kampusowy|PLATON-U3]],
 
# korzystając ze środowiska MATLAB-a zainstalowanego na własnym komputerze.
 
  
W obydwu przypadkach, aby zlecić zadanie zdalne korzystając z interfejsu Matlaba należy wcześniej odpowiednio go skonfigurować:
+
Przed instalacją należy zgłosić się do WCSS po pobranie kodu PLP wymaganego do instalacji.
* pobrać plik [[http://kdm.wcss.wroc.pl/w/images/matlab_wcss.zip zip]] i rozpakować w lokalizacji przeszukiwanej przez Matlaba (listę tych miejsc można znaleźć klikając przycisk '''Set Path''' w polu '''Environment'''),
 
* pobrać plik [[http://kdm.wcss.wroc.pl/w/images/Supernova.zip zip]] i rozpakować w dowolnej lokalizacji (plik '''Supernova.settings''', który jest w archiwum będzie potrzebny w następnym kroku),
 
* w polu '''Environment''' kliknąć na przycisk '''Parallel''' i wybrać pozycję '''Manage Cluster Profiles''',
 
* w oknie które się pojawi kliknąć na przycisk '''Add''' i wybrać pozycję '''Import''',
 
* wskazać lokalizację pliku '''Supernova.settings''' wypakowanego z archiwum,
 
* zaznaczyć pozycję '''Supernova''' na liście '''Cluster Profile''' i kliknąć przycisk '''Edit''',
 
* w części SubmitFunctions należy zmienić 3. parametr funkcji ('''/home/tyciu'''), tak aby wskazywał lokalizację '''własnego katalogu domowego''' na klastrze,
 
* po kliknięciu przycisku '''Done''' można już korzystać ze zdalnego zlecania zadań.
 
  
=== Uruchamianie zdalne z infrastruktury PLATON-U3 ===
+
Następnie należy uruchomić instalację i podać kod PLP oraz ścieżkę do pliku licencji na kolejnych etapach instalacji.
Chcąc korzystać z MATLAB-a na Supernovej poprzez infrastrukturę PLATON-U3, należy zarejestrować się jako użytkownik PLATON-U3 w WCSS i założyć odpowiednią rezerwację. Po uzyskaniu dostępu do aplikacji należy ją skonfigurować (jak opisane powyżej) i zweryfikować, czy aplikacja działa poprawnie.
 
  
==== Weryfikacja poprawności konfiguracji ====
+
W trakcie instalacji, na etapie wyboru pakietów, warto jest zaznaczyć pakiet "License Manager". Pozwala to przetestować dostępność serwera licencji.
W celu przeprowadzenia weryfikacji trzeba wykonać kilka, wymienionych poniżej, kroków:
 
# W zakładce <code>ENVIRONMENT > Set Path</code> sprawdzić listę ścieżek. Ścieżka rozpoczynająca się od <code>\\wcss-sts</code> znajduje się na dysku Z.
 
# W pasku wyboru ścieżki wybrać katalog znajdujący się na dysku Z, w którym zapisywane będą pliki związane ze zleceniami.
 
# W zakładce <code>ENVIRONMENT > Parallel > Manage Cluster Profiles > Cluster Profile</code> wybrać profil <code>Supernova</code>.
 
# W profilu <code>Supernova</code> wybrać zakładkę <code>Validation Results</code>, a następnie przeprowadzić weryfikację poprawności działania za pomocą przycisku <code>Validate</code>.
 
  
==== Tworzenie nowego skryptu ====
+
==== Instalacja na systemach z rodziny Linux/UNIX ====
Nowy skrypt Matlaba tworzy się za pomocą przycisku <code>New Script</code>:
 
# W pasku wyboru ścieżki wybrać katalog znajdujący się na dysku Z, w którym zapisywane będą pliki związane z obliczeniami.
 
# W menu, w zakładce <code>HOME</code> użyć przycisku <code>New Script</code>.
 
# Po podaniu programowi poleceń w postaci skryptu, należy ów skrypt zapisać w katalogu wybranym w podpunkcie 1.
 
# W celu uruchomienia skryptu należy kliknąć na niego (powinien być widoczny w polu <code>Current Folder</code>) prawym przyciskiem myszy (PPM), a następnie użyć polecenia <code>Run</code>.
 
  
==== Testowanie poprawności zlecania zadań ====
+
Przed instalacją należy zgłosić się do WCSS po pobranie kodu PLP wymaganego do instalacji.  Przed uruchomieniem aplikacji należy ustawić zmienną środowiskową <code>LM_LICENSE_FILE</code> na wartość <code>"27002@licencje.kdm.wcss.pl"</code>:
W celu przetestowania poprawności działania własnych skryptów do zlecania zadań należy:
 
# Otworzyć nowy skrypt przyciskiem <code>New Script</code>.
 
# Wkleić poniższy kod (*).
 
# Zapisać skrypt pod dowolną nazwą w wybranym katalogu znajdującym się w ścieżkach Matlaba.
 
# Zlecić zadanie za pomocą <code>PPM > Run</code>.
 
(*)
 
'''c = parcluster('Supernova');'''
 
'''job1 = createJob(c);'''
 
'''createTask(job1, @rand, 1, {3,3});'''
 
'''createTask(job1, @rand, 1, {3,3});'''
 
'''createTask(job1, @rand, 1, {3,3});'''
 
'''createTask(job1, @rand, 1, {3,3});'''
 
'''createTask(job1, @rand, 1, {3,3});'''
 
'''submit(job1);'''
 
'''wait(job1);'''
 
'''results = fetchOutputs(job1);'''
 
'''results{1:5};'''
 
  
Kod zleca wygenerowanie 5 macierzy 3 na 3  zawierających losowe liczby zmiennoprzecinkowe o wartościach zawierających się między 0 a 1 - każda macierz generowana jest w osobnym tasku.
+
Powłoka (shell) typu csh (csh, tcsh):
Polecenie <code>'parcluster'</code> służy do wyboru profilu z listy znajdującej się w <code>ENVIRONMENT > Parallel > Manage Cluster Profiles > Cluster Profile</code>.
+
setenv LM_LICENSE_FILE "27002@licencje.kdm.wcss.pl"
Polecenie <code>'createJob'</code> tworzy zadanie, a polecenie <code>'createTask'</code> - podzadanie. Polecenie <code>'submit'</code> zleca zadanie do systemu kolejkowego (PBS) na klastrze zdefiniowanym w profilu,
 
a polecenie <code>'wait'</code> wymusza oczekiwanie na zakończenie zadania przed kontynuowaniem postępowania zawartego w skrypcie.
 
  
W celu sprawdzenia wyników należy w oknie <code>Command Window</code> wprowadzić kolejno następujące komendy:
+
Powłoka typu sh (sh, bsh, bash, ksh, ...):
 +
export LM_LICENSE_FILE="27002@licencje.kdm.wcss.pl"
  
'''c = parcluster('Supernova')'''
+
Rodzaj powłoki można sprawdzić poleceniem:
  '''finished_jobs = findJob(c,'State','finished')'''
+
  echo $SHELL
  
Wyświetli się lista zakończonych zadań na profilu <code>Supernova</code>. Należy wybrać zadanie, którego wyniki chcemy przejrzeć (np. 5.) i postępować według poniższych kroków:
+
W trakcie instalacji program może poprosić o przygotowany wcześniej plik licencji.
  
  '''finished_jobs = findJob(c,'State','finished', 'ID', 5)'''
+
Ewentualny test licencji po zakończonej instalacji:
'''results = fetchOutputs(finished_jobs)'''
+
  /ścieżka/do/katalogu/instalacji/matlab/etc/glnxa64/lmstat -a -c 27002@licencje.kdm.wcss.pl
'''results{1:numel(results)}'''
+
W przypadku Ubuntu 18.04 lub innych dystrybucji linuksa, może być konieczne doinstalowanie pakietu '''lsb'''.
  
 
== Dokumentacja ==
 
== Dokumentacja ==
Linia 222: Linia 187:
 
;MATLAB w sieci
 
;MATLAB w sieci
 
* [http://www.mathworks.com/products/matlab/ Strona domowa MATLABa]
 
* [http://www.mathworks.com/products/matlab/ Strona domowa MATLABa]
* [http://vistula.wis.pk.edu.pl/~sciezor/matlab.pdff Podstawy programowania w języku Matlab]
 
 
* [http://www.mathworks.com/company/newsletters/articles/gpu-programming-in-matlab.html?s_v1=48010423_1-AUVSR GPU Programming in MATLAB]
 
* [http://www.mathworks.com/company/newsletters/articles/gpu-programming-in-matlab.html?s_v1=48010423_1-AUVSR GPU Programming in MATLAB]
  

Aktualna wersja na dzień 10:54, 10 lip 2020

en.jpg

< Podręcznik użytkownika KDM < Oprogramowanie KDM < Oprogramowanie naukowe < Matlab

Matlab
Matlab1.png
Serwer Wersja
Bem R2017b
R2016a
Klaster kampusowy R2015a
Kontakt
kdm@wcss.pl

MATLAB jest środowiskiem obliczeniowym przeznaczonym dla inżynierów i naukowców, umożliwiającym przeprowadzanie obliczeń matematycznych, analizy numerycznej, wizualizacji otrzymanych wyników (2D, 3D), jak również tworzenie algorytmów i programów. Język MATLAB-a jest intuicyjny i wygodny w użyciu, co sprawia, że opracowanie algorytmów jest prostsze niż w przypadku takich języków programowania jak C czy Fortran.

Informacje ogólne

Główne funkcjonalności MATLAB-a:

  • obliczenia numeryczne do szybkiego generowania wyników
  • grafika do wizualizacji i analizy danych
  • interaktywny język i środowisko programistyczne
  • narzędzia do budowy własnego GUI
  • integracja z zewnętrznymi aplikacjami składającymi się z komponentów C, C++, Fortran, Java, COM, Excel.
  • import danych z plików i urządzeń zewnętrznych (dodatkowo dostęp do baz danych i kolejnych urządzeń)
  • konwersja aplikacji MATLAB-a na C i C++ przy użyciu kompilatora.

Licencja udostępniana przez WCSS

Aktualnie dostępna wersja to R2017b dla systemów Linux (x86, x86_64), Mac (Intel) i Windows (Server 2008, Server 2008R2, XP SP3, Vista, 7). Wymagania pakietu: http://www.mathworks.com/support/sysreq/ Pliki instalacyjne można pobrać z serwera FTP.

W skład pakietu wchodzi szereg dodatkowych narzędzi rozszerzających jego możliwości, ukierunkowanych na rozwiązywanie zadań z danego obszaru. WCSS udostępnia licencję obejmującą szereg pakietów, są to:

  • Matlab (30) - pakiet główny
  • Bioinformatics Toolbox (1)
  • Communications System Toolbox (5) - rozszerza środowisko Matlab o funkcje, wykresy i graficzny interfejs użytkownika stosowane do badania, projektowania, analizy i symulacji algorytmów warstwy fizycznej systemów komunikacji (np. systemy wireless, wireline). Stosowany głównie do pre- i post-processingu.
  • Curve Fitting Toolbox (1) - poprzez interfejs graficzny i command-line udostępnia funkcje dla różnych aplikacji typu curve-fitting.
  • Data Acquisition Toolbox (1) - zestaw funkcji M-file i dynamicznych bibliotek (DLL) MEX-file napisanych w oparciu o środowisko obliczeniowe MATLABa.
  • Spreadsheet Link EX (2) - pakiet pozwala na integrację Matlaba z programem Microsoft Excel.
  • Filter Design HDL Coder (1)
  • Fixed-Point Toolbox (1)
  • Fuzzy Logic Toolbox (1) - rozszerza środowisko MATLABa o narzędzia do projektowania systemów opartych o logikę rozmytą.
  • Global Optimization Toolbox (1)
  • Image Processing Toolbox (1) - przetwarzanie obrazów
  • Neural Network Toolbox (10) - projektowanie i symulacja sieci neuronowych
  • Optimization Toolbox (10) - rozszerza środowisko Matlaba o narzędzia i algorytmy do optymalizacji.
  • Signal Processing Toolbox (10) - przetwarzanie sygnałów
  • DSP System Toolbox (6)- symulacja procesów cyfrowej obróbki sygnałów
  • Simulink (30) - interaktywne środowisko przeznaczone do modelowania, symulacji i analizy dynamicznych systemów.
    • Simulink Design Optimization (1) - zawiera także Simulink Response Optimization, interfejs graficzny (GUI) do dostrajania i optymalizowania systemów sterowania i fizycznych.
    • Simulink Fixed-Point (1)
  • HDL Coder, dawniej Simulink HDL Coder (1)
  • Matlab Coder (1)
  • Matlab Compiler (1)
  • Matlab Compiler SDK (1)
  • Statistics Toolbox (1)
  • Wavelet Toolbox (1)
  • Parallel Computing Toolbox (5)
  • Distributed Computing Engine (32)

Licencje zdezaktualizowane:

  • Communications Blockset (5) - rozszerza pakiet Simulink o bibliotekę elementów konstrukcyjnych służących do budowy i symulacji fizycznej warstwy systemów i komponentów komunikacji.
  • Filter Design Toolbox (1)

Informacje o wykorzystaniu

Wszelkie publikacje, (w tym prace doktorskie i dyplomowe) wykorzystujące wyniki obliczeń wykonanych na komputerach WCSS, powinny zawierać podziękowania postaci (odpowiednio do języka publikacji):

"Obliczenia wykonano na komputerach Wrocławskiego Centrum Sieciowo-Superkomputerowego (http://www.wcss.pl), grant obliczeniowy Nr ... "

"Calculations have been carried out in Wroclaw Centre for Networking and Supercomputing (http://www.wcss.pl), grant No. ..."

Uruchamianie na klastrze Bem

MATLAB dostępny jest na klastrze Bem (katalog instalacji odpowiednio: /usr/local/matlab/WERSJA).

Praca interaktywna na klastrze

  • Przed zdalnym uruchomieniem aplikacji w trybie graficznym należy połączyć się ze zdalnym pulpitem za pomocą programu NoMachine Instrukcja
  • Następnie w celu pracy interaktywnej z aplikacją należy uruchomić zadanie interaktywne w kolejce, z opcją -X, np.:
> qsub -I -X -l walltime=6:00:00
Środowisko aplikacji

MATLAB pobiera ustawienia środowiska z pliku .matlab7rc.sh. Przed uruchomieniem pobiera plik z pierwszej lokalizacji, kolejno przeszukuje: ./ (kat. bieżący), $HOME (kat. domowy użytkownika), $MATLAB/bin (kat. domyślny). Wzorcowy plik .matlabXrc.sh znajduje się w katalogu instalacji danej wersji MATLAB-a $MATLAB_TOP/bin/. Użytkownik może skopiować ten plik do swojego katalogu domowego i zmienić w razie potrzeby ustawione wartości zmiennych: ARCH, LD_LIBRARY_PATH, LM_LICENCE_FILE, MATLAB (wskazuje na katalog instalacji) i kilku innych.

Przed użyciem MATLABa należy załadować odpowiedni moduł.

> module load matlab

Powyższe polecenie wczyta domyślną wersję. Można też wybrać konkretną wersję modułu wydając polecenie:

> module load matlab/R2015a
> module load matlab/R2014b

Aby sprawdzić ustawienia przesyłane do MATLAB-a podczas uruchamiania wystarczy wydać polecenie:

> matlab -n

Aplikacja nie zostanie przy tym uruchomiona.

Uruchamianie aplikacji

Do uruchamiania programu służy polecenie:

> matlab

Wstawianie zadań wsadowych do kolejki

Aby wstawić zadanie MATLAB-a do kolejki PBS na klastrze Bem należy przesłać na klaster pliki wejściowe zadania (lub przygotować je na klastrze pracując interaktywnie, jak opisane powyżej), zalogować się na klaster i następnie posłużyć poleceniem qsub lub skorzystać z gotowego skryptu sub-matlab (uruchamia domyślną wersję programu)

Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:

> sub-matlab
Usage: /usr/local/bin/sub-matlab input_file [parameters]
Parameters:
-q queue (default - main)
-p cores (default - 1)
-m memory (in MB, default - 2000)
-w walltime (in hours, default - 504)


Na przykład

> sub-matlab test.inp -q main -p 2 -m 4000 -w 2 

Zadanie uruchomione zostanie na 2 rdzeniach (w obrębie jednego węzła), wymaga 4000 MB RAM (po 2000 MB na proces), walltime zadania jest równy 2 godziny.


Uwaga

Na klastrze Bem zadania należy zlecać do kolejki main. Jest to kolejka przekierowująca - na podstawie podanego limitu czasu (walltime) zadania będą przenoszone do odpowiednich kolejek (np. normal, infinity).

Zobacz też: Jak korzystać z kolejek PBS?

Uruchamianie na infrastrukturze PLATON-U3

Chcąc pracować interaktywnie z MATLAB-em można skorzystać z infrastruktury PLATON-U3 (klaster kampusowy). Należy w tym celu zarejestrować się w portalu usługi jako użytkownik w WCSS (https://wcss.cloud.pionier.net.pl) i następnie założyć w portalu odpowiednią rezerwację na maszynę wirtualną z zainstalowanym MATLAB-em (szczegółowe instrukcje na stronie usługi).

Uruchamianie na własnych komputerach

KDM WCSS umożliwia uruchamianie Matlaba na własnych komputerach przy zdalnym wykorzystaniu licencji udostępnianej przez WCSS. Pliki instalacyjne można pobrać z serwera FTP. Dostęp do serwera licencji możliwy jest poprzez system VPN.

Przed uruchomieniem instalacji należy stworzyć tekstowy plik licencji o dowolnej nazwie i zawartości:

SERVER licencje.kdm.wcss.pl 0007e905907d 27002
USE_SERVER

Instalacja na systemach z rodziny Windows

Przed instalacją należy zgłosić się do WCSS po pobranie kodu PLP wymaganego do instalacji.

Następnie należy uruchomić instalację i podać kod PLP oraz ścieżkę do pliku licencji na kolejnych etapach instalacji.

W trakcie instalacji, na etapie wyboru pakietów, warto jest zaznaczyć pakiet "License Manager". Pozwala to przetestować dostępność serwera licencji.

Instalacja na systemach z rodziny Linux/UNIX

Przed instalacją należy zgłosić się do WCSS po pobranie kodu PLP wymaganego do instalacji. Przed uruchomieniem aplikacji należy ustawić zmienną środowiskową LM_LICENSE_FILE na wartość "27002@licencje.kdm.wcss.pl":

Powłoka (shell) typu csh (csh, tcsh):

setenv LM_LICENSE_FILE "27002@licencje.kdm.wcss.pl"

Powłoka typu sh (sh, bsh, bash, ksh, ...):

export LM_LICENSE_FILE="27002@licencje.kdm.wcss.pl"

Rodzaj powłoki można sprawdzić poleceniem:

echo $SHELL

W trakcie instalacji program może poprosić o przygotowany wcześniej plik licencji.

Ewentualny test licencji po zakończonej instalacji:

/ścieżka/do/katalogu/instalacji/matlab/etc/glnxa64/lmstat -a -c 27002@licencje.kdm.wcss.pl

W przypadku Ubuntu 18.04 lub innych dystrybucji linuksa, może być konieczne doinstalowanie pakietu lsb.

Dokumentacja

  • Dokumentacja on-line dostępna jest lokalnie po zalogowaniu się na klastrze i Nova i wydaniu polecenia doc z poziomu MATLAB-a.
  • "Komputerowa symulacja układów automatycznej regulacji w środowisku MATLAB/SIMULINK" s.132 rw.2005, Łysakowska B., Mzyk G., ISBN: 83-7085-854-6, Oficyna Wydawnicza PWr (Cena: 17,90)
    W książce rozważa się zagadnienie symulacji komputerowej liniowych systemów dynamicznych z czasem ciągłym i czasem dyskretnym. Analizuje się właściwości Układów Automatycznej Regulacji, podając jednocześnie przykłady praktycznych zastosowań. Badania prowadzone są z użyciem pakietu Control System Toolbox programu Matlab w środowisku graficznym Simulink. Prezentowane są również podstawy identyfikacji liniowych systemów dynamicznych w warunkach losowych. Podręcznik jest przeznaczony dla studentów uczelni technicznych na kierunkach automatyka i robotyka, elektronika i telekomunikacja oraz informatyka, a także dla wszystkich zainteresowanych zastosowaniami środowiska Matlab w obliczeniach inżynierskich w automatyce.
  • "Programowanie w Matlabie dla elektryków" s.215,rw. 2005, Sobierajski M., Łabuzek M., Oficyna Wydawnicza PWr (Cena: 22,00)
    Celem autorów jest nauczenie elektryków posługiwania się Matlabem do rozwiązywania praktycznych zadań inżynierskich. Główną uwagę skoncentrowano na skondensowanym wykorzystaniu Matlaba do rozwiązywania praktycznych zadań elektrotechnicznych i elektroenergetycznych.
    Spis treści
    Wstęp
    1. Pierwsze kroki w Matlabie
    2. Podstawowe operacje macierzowe i tablicowe
    3. Tworzenie skryptów i współpraca z plikami danych
    4. Tworzenie plików funkcyjnych
    5. Wykresy w Matlabie
    6. Interfejs graficzny użytkownika
    7. Rozwiązywanie zadań opisanych równaniami różniczkowymi
    8. Współpraca z plikami zewnętrznymi
    9. Rozwiązywanie zadań optymalizacji
    10. Analiza statystyczna pomiarów
    11. Analiza harmonicznych
    12. Równania różniczkowe
    13. Analiza stabilności lokalnej i globalnej
    14. Rozwiązywanie równań różniczkowych z elementami nieliniowymi
    15. Wprowadzenie do Simulinka
    16. Modelowanie równania różniczkowego
    17. Modelowanie układu równań różniczkowych
    18. Grupowanie i maskowanie bloków
    Literatura
MATLAB w sieci

Zobacz też: Oprogramowanie KDM