Matlab

Z KdmWiki
Wersja z dnia 06:12, 29 maj 2014 autorstwa F (dyskusja | edycje) (Dodanie informacji o usłudze VPN.)
Przejdź do nawigacji Przejdź do wyszukiwania
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
en.jpg

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

Matlab
Matlab1.png
Serwer Wersja
Supernova R2013a
R2012a
Klaster kampusowy R2013a
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 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/

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)
  • 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)

Uruchamianie na klastrze Supernova

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

Praca interaktywna na klastrze

Przed zdalnym uruchomieniem aplikacji w trybie graficznym należy pamiętać o 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ą -X, np.:

> qsub -I -X -q short6h
Ś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/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 najnowszą wersję. Można też wybrać starszą wersję wydając polecenie:

> module load matlab/R2012a

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 Supernova 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 <plik_wej.inp>

Więcej o składni polecenia qsub w artykule: 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. Wymaga to zainstalowania Matlaba w trybie network installation z wykorzystaniem serwera licencji zainstalowanego w KDM WCSS. Dostęp do serwera licencji możliwy jest poprzez system VPN.

W celu uzyskania płyt instalacyjnych należy zgłosić się do kierownika działu KDM.

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