Matlab

Z KdmWiki
Skocz do: nawigacji, wyszukiwania
en.jpg

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

Matlab
Matlab1.png
Serwer Wersja
Bem R2016a
R2015b
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 R2016a 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).

Jak użyć takiego MATLAB-a do zlecania zadań zdalnych na klaster Supernowa opisane jest poniżej: Uruchamianie zadań zdalnie na klastrze Supernova.

Uruchamianie na własnych komputerach

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

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
USE_SERVER

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

Jak użyć takiego MATLAB-a do zlecania zadań zdalnych na klaster Supernowa opisane jest poniżej: Uruchamianie zadań zdalnie na klastrze Supernova.

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@menkar.wcss.pl":

Shell typu csh (csh, tcsh):

> setenv LM_LICENSE_FILE "27002@menkar.wcss.pl" 

Shell typu sh (sh, bsh, bash, ksh, ...):

> export LM_LICENSE_FILE="27002@menkar.wcss.pl"

Rodzaj shella sprawdzamy przez:

> echo $SHELL

Ewentualny test licencji:

> scieżka/do/katalogu/instalacji/matlab/etc/lmstat -a -c 27002@menkar.wcss.pl

Uruchamianie zadań zdalnie na klastrze Supernova

WCSS umożliwia zlecanie zdalnie zadań obliczeniowych na klaster Supernova. Jest to możliwe na dwa sposoby:

  1. korzystając ze środowiska MATLAB-a dostępnego na infrastrukturze PLATON-U3,
  2. 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ć:

  • pobrać plik [zip] i rozpakować w lokalizacji przeszukiwanej przez Matlaba (listę tych miejsc można znaleźć klikając przycisk Set Path w polu Environment),
  • pobrać plik [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

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 celu przeprowadzenia weryfikacji trzeba wykonać kilka, wymienionych poniżej, kroków:

  1. W zakładce ENVIRONMENT > Set Path sprawdzić listę ścieżek. Ścieżka rozpoczynająca się od \\wcss-sts znajduje się na dysku Z.
  2. W pasku wyboru ścieżki wybrać katalog znajdujący się na dysku Z, w którym zapisywane będą pliki związane ze zleceniami.
  3. W zakładce ENVIRONMENT > Parallel > Manage Cluster Profiles > Cluster Profile wybrać profil Supernova.
  4. W profilu Supernova wybrać zakładkę Validation Results, a następnie przeprowadzić weryfikację poprawności działania za pomocą przycisku Validate.

Tworzenie nowego skryptu

Nowy skrypt Matlaba tworzy się za pomocą przycisku New Script:

  1. W pasku wyboru ścieżki wybrać katalog znajdujący się na dysku Z, w którym zapisywane będą pliki związane z obliczeniami.
  2. W menu, w zakładce HOME użyć przycisku New Script.
  3. Po podaniu programowi poleceń w postaci skryptu, należy ów skrypt zapisać w katalogu wybranym w podpunkcie 1.
  4. W celu uruchomienia skryptu należy kliknąć na niego (powinien być widoczny w polu Current Folder) prawym przyciskiem myszy (PPM), a następnie użyć polecenia Run.

Testowanie poprawności zlecania zadań

W celu przetestowania poprawności działania własnych skryptów do zlecania zadań należy:

  1. Otworzyć nowy skrypt przyciskiem New Script.
  2. Wkleić poniższy kod (*).
  3. Zapisać skrypt pod dowolną nazwą w wybranym katalogu znajdującym się w ścieżkach Matlaba.
  4. Zlecić zadanie za pomocą PPM > Run.

(*)

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. Polecenie 'parcluster' służy do wyboru profilu z listy znajdującej się w ENVIRONMENT > Parallel > Manage Cluster Profiles > Cluster Profile. Polecenie 'createJob' tworzy zadanie, a polecenie 'createTask' - podzadanie. Polecenie 'submit' zleca zadanie do systemu kolejkowego (PBS) na klastrze zdefiniowanym w profilu, a polecenie 'wait' wymusza oczekiwanie na zakończenie zadania przed kontynuowaniem postępowania zawartego w skrypcie.

W celu sprawdzenia wyników należy w oknie Command Window wprowadzić kolejno następujące komendy:

c = parcluster('Supernova')
finished_jobs = findJob(c,'State','finished')

Wyświetli się lista zakończonych zadań na profilu Supernova. Należy wybrać zadanie, którego wyniki chcemy przejrzeć (np. 5.) i postępować według poniższych kroków:

finished_jobs = findJob(c,'State','finished', 'ID', 5)
results = fetchOutputs(finished_jobs)
results{1:numel(results)}

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