https://kdm.wcss.pl/w/api.php?action=feedcontributions&user=Dzieko&feedformat=atomKdmWiki - Wkład użytkownika [pl]2024-03-29T00:01:51ZWkład użytkownikaMediaWiki 1.35.2https://kdm.wcss.pl/w/index.php?title=ADF&diff=5845ADF2018-07-25T13:42:55Z<p>Dzieko: /* Uruchamianie zadań w kolejce na klastrze Bem */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < ADF</small><br />
{{aplikacja|nazwa=ADF|logo= |serwer=[[Bem]] |wersja='''2014.10''', 2014.01 }}<br />
'''Amsterdam Density Functional''' ('''ADF''') jest oprogramowaniem służącym do obliczeń metodami wywodzącymi się z teorii funkcjonału gęstości (ang. ''Density Function Theory'', DFT). ADF rozwijany jest przez firmę SCM (Scientific Computing & Modelling).<br />
<br />
== Licencja ==<br />
Licencja WCSS (typu ''Academic computing center'') pozwala wykorzystać 64 rdzenie łącznie dla wszystkich użytkowników i obejmuje pakiet ADF i NBO (ang. ''Natural Bond Orbital''):<br />
*ADF<br />
*ADF BAND<br />
*REAXFF<br />
*COSMO-RS<br />
*DFTB<br />
*GENNBO (ponadto WCSS posiada licencję [[NBO]] 6).<br />
<br />
=== Informacja o wykorzystaniu ===<br />
Użytkownicy ADF mają obowiązek zamieszczania w publikacjach cytowania zgodnie z wymaganiami SCM:<br />
* [http://www.scm.com/Doc/Doc2014/Background/References/page1.html wersja 2014]<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Korzystanie w WCSS ==<br />
ADF zainstalowany jest na klastrze [[Bem]] w drzewie <code>/usr/local/adf/</code>.<br />
<br />
=== Uruchamianie GUI ADF-a ===<br />
Aby uzyskać dostęp do aplikacji graficznych (adfinput, adfview i in.) należy zalogować się za pomocą protokołu NX na maszynę ui.wcss.pl. Służy do tego<br />
[[Jak_korzystać_z_NoMachine|klient NoMachine]]. Można również zalogować się na maszynę ui.wcss.pl korzystając z klienta ssh<br />
> ssh -X login@ui.wcss.pl<br />
Innym sposobem jest uruchomienie aplikacji graficznych w [[Jak_korzystać_z_kolejek_PBS#Uruchomienie_zadania_interaktywnego|zadaniu interaktywnym]]<br />
> qsub -I -X -l walltime=6:00:00<br />
> module load adf<br />
> adfview<br />
Praca z aplikacjami graficznymi w zadaniu interaktywnym jak i po zalogowaniu się z użyciem klienta ssh jest wolniejsza niż z wykorzystaniem klienta NoMachine.<br />
<br />
=== Uruchamianie zadań w kolejce na klastrze [[Bem]] ===<br />
* liczba licencji: 64 rdzienie,<br />
* '''limit licencji per każdy użytkownik: maks. 32,'''<br />
* możliwe są obliczenia równoległe,<br />
* należy wcześniej przygotować pliki danych np. <code>woda.run</code>, przykładowa struktura pliku:<br />
#! /bin/sh<br />
$ADFBIN/adf << eor<br />
ATOMS<br />
O 0 0 0<br />
H 1 1 0<br />
H -1 1 0<br />
End<br />
Basis<br />
End<br />
Geometry<br />
End<br />
eor<br />
<br />
* aby rozpocząć obliczenia należy nadać skryptowi prawa wykonania:<br />
> chmod +x woda.run<br />
oraz wstawić zadanie do kolejki poleceniem '''sub-adf''', przykładowo na 4 węzły po 2 rdzenie i 500MB pamięci per węzeł w kolejce main:<br />
> sub-adf woda.run -q main -n 4 -p 2 -m 500 -w 6<br />
<br />
* ogólną składnię wywołania skryptu '''sub-adf''' można poznać uruchamiając skrypt bez żadnych argumentów:<br />
> sub-adf<br />
Usage: /usr/local//bin/sub-adf input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-n nodes (default - 1)<br />
-p cores (per node, default - 1)<br />
-m memory (per node, in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
<br />
'''Uwaga'''<br />
<br />
* 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);<br />
<br />
* pliki *.run, wygenerowane w ADF 2006, mogą nie działać poprawnie w nowszych wersjach pakietu. Dlatego należy wczytać odpowiadające im pliki *.adf do nowego adfinput i ponownie zapisać na dysk;<br />
<br />
* wykorzystanie '''sub-adf''' spowoduje załadowanie najwyższej zainstalowanej wersji modułu. Jeśli z jakiegoś powodu wymagane jest użycie innej wersji, to należy użyć skryptów '''sub-adf-WERSJA'''.<br />
<br />
== Dokumentacja ==<br />
* [http://www.scm.com/ Scientific Computing & Modelling]<br />
* [http://www.scm.com/Support/Faq/Welcome.html ADF FAQ]<br />
* [http://www.chemia.uj.edu.pl/~mazur/mm/prezentacje_studentow/adf.pdf Prezentacja UJ (w języku polskim)]<br />
* [[Szkolenie ADF]]<br />
* [[Szkolenie ADF 2]]<br />
* [http://www.scm.com/Doc/Teaching/BSc/page1.html Teaching in ADF - BSc exercises]<br />
<br />
== Zobacz też ==<br />
* [[Oprogramowanie KDM]]<br />
* system kolejkowania zadań [[PBS]]<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Virtualenv&diff=5844Virtualenv2018-07-12T13:25:38Z<p>Dzieko: /* Jak utworzyć i uruchomić środowisko wirtualne */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Virtualenv</small><br />
<br />
'''Virtualenv''' jest narzędziem umożliwiającym tworzenie i zarządzanie środowiskami Pythona. Można je stosować do instalacji pakietów Pythona we własnym katalogu domowym.<br />
<br />
== Jak utworzyć i uruchomić środowisko wirtualne ==<br />
<br />
Uruchom zadanie interaktywne i załaduj moduł Pythona w wymaganej wersji:<br />
<br />
qsub -I -l walltime=06:00:00 -l software=python -l select=1:ncpus=1:mem=1000mb<br />
module load python/MOJA-WYMAGANA-WERSJA<br />
<br />
Utwórz środowisko wirtualne w wybranym katalogu (w tym przykładzie będzie to katalog $HOME/projekt):<br />
<br />
virtualenv $HOME/projekt<br />
<br />
Uruchom utworzone środowisko wirtualne:<br />
<br />
source $HOME/projekt/bin/activate<br />
<br />
== Jak wyłączyć środowisko wirtualne ==<br />
<br />
Użyj polecenia<br />
<br />
deactivate<br />
<br />
== Przykład instalacji pakietu w środowisku wirtualnym ==<br />
<br />
Poniżej zaprezentowano procedurę instalacji pakietu cif2cell w środowisku wirtualnym Pythona.<br />
<br />
Uruchom zadanie interaktywne i załaduj moduł Pythona<br />
<br />
qsub -I -l walltime=06:00:00 -l software=python -l select=1:ncpus=1:mem=1000mb<br />
module load python<br />
<br />
Utwórz środowisko wirtualne w wybranym katalogu (w tym przykładzie będzie to katalog $HOME/cif2cell)<br />
<br />
virtualenv $HOME/cif2cell<br />
<br />
Uruchom utworzone środowisko wirtualne<br />
<br />
source $HOME/cif2cell/bin/activate<br />
<br />
Zainstaluj odpowiedni pakiet (w tym przypadku do instalacji cif2cell wymagany jest pakiet PyCIFRW)<br />
<br />
pip install PyCIFRW<br />
<br />
Zainstaluj oprogramowanie cif2cell w katalogu $HOME/cif2cell.<br />
<br />
W tym celu rozpakuj pobrane pliki oprogramowania cif2cell i przejdź do katalogu ze źródłami tego pakietu<br />
<br />
tar -xf cif2cell-1.2.10.tar.gz<br />
cd cif2cell-1.2.10<br />
<br />
oraz uruchom polecenie<br />
<br />
python setup.py install --prefix=$HOME/cif2cell<br />
<br />
W katalogu $HOME/cif2cell/bin utworzony zostanie plik wykonywalny cif2cell.<br />
<br />
Aby użyć zainstalowane oprogramowanie cif2cell należy wykonać polecenie<br />
<br />
$HOME/cif2cell/bin/cif2cell<br />
<br />
== Jak użyć oprogramowanie zainstalowane w środowisku wirtualnym - zadanie wsadowe ==<br />
<br />
Oprogramowanie, które zostało zainstalowane w środowisku wirtualnym można uruchomić w zadaniu wsadowym.<br />
<br />
W tym celu należy umieścić w skrypcie następujące polecenie<br />
<br />
$HOME/cif2cell/bin/cif2cell<br />
<br />
<br />
<br />
== Virtualenv w sieci ==<br />
* [https://virtualenv.pypa.io/en/stable/ Dokumentacja]<br />
<br />
<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]], [[Python]]<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Molpro&diff=5843Molpro2018-07-09T12:01:56Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Molpro</small><br />
{{aplikacja|nazwa=Molpro|logo=[[Plik:Molpro.png]]|serwer=[[Bem]]|wersja=2012.1.12}}<br />
'''MOLPRO''' jest całościowym pakietem do obliczeń w dziedzinie chemii kwantowej, oferującym zaawansowane jak i podstawowe metody ''ab initio'', ze szczególnym uwzględnieniem metod korelacyjnych. Twórcami pakietu są H.J. Werner, P.J. Knowles i wielu innych, którzy przyczynili się do jego rozwoju. <br />
<br />
== Informacje ogólne ==<br />
Główne cechy MOLPRO:<br />
* pełny zakres metod ''ab initio''<br />
* moduły <code>direct</code> i <code>local</code> dla obliczeń w trybie Direct SCF oraz Localized Moeller-Plesset<br />
* obliczenia przeprowadzane z utrzymaniem maksymalnej możliwej precyzji<br />
* możliwość generowania danych wsadowych dla [[Gaussian]]a, [[Molden]]a, formaty XYZ, i inne<br />
* przyjazna i bardzo elastyczna składnia danych wejściowych (proste słownictwo, wyrażenia, zmienne, pętle, warunki, procedury, itp.)<br />
<br />
Pakiet napisany jest głównie w języku Fortran90. Licencjonowaniem MOLPRO zajmuje się University College Cardiff Consultants Limited.<br />
<br />
== MOLPRO w WCSS ==<br />
<br />
Zadania obliczeniowe należy uruchamiać za pośrednictwem systemu kolejkowego. <br />
<br />
;Środowisko i praca interaktywna<br />
<br />
Testowe uruchomienia programu powinny być wykonywane jako [[PBS#Zadania_interaktywne|zadanie interaktywne]]:<br />
qsub -I -l walltime=06:00:00 -l software=Molpro_WERSJA<br />
<br />
Następnie program można uruchomić po wgraniu odpowiedniego [[modules|modułu]]:<br />
module load molpro (dla wersji domyślnej)<br />
<br />
Program można wywoływać poleceniem:<br />
molpro [opcje] plik.inp<br />
<br />
;Wstawianie zadań do kolejki<br />
<br />
Do wstawiania zadań równoległych do systemu kolejkowego służy polecenie sub-molpro (uruchamia domyślną wersję programu) <br />
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować: <br />
<br />
> sub-molpro<br />
Usage: /usr/local/bin/sub-molpro input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-n nodes (default - 1)<br />
-p cores (per node, default - 1)<br />
-m memory (per node, in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
<br />
Na przykład<br />
<br />
> sub-molpro test.inp -q main -n 1 -p 2 -m 4000 -w 2 <br />
<br />
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. <br />
<br />
;Uwaga<br />
<br />
Należy pamiętać o podaniu w pliku danych odpowiedniej karty '''memory'''. Wartość podawana w tej karcie musi być nieco mniejsza niż wartość pamięci podana jako argument dla skryptu '''sub-molpro''', tak aby system kolejkowy miał pewien bufor operacyjny.<br />
<br />
Ważne:<br />
* karta '''memory''' specyfikuje pamięć per każdy proces MOLPRO ! <br />
* jeden MEGA WORD = 8 MEGA BAJTÓW !<br />
* interesująca dyskusja na temat pamięci w MOLPRO: http://www.molpro.net/pipermail/molpro-user/2010-April/003723.html<br />
<br />
;Znane blędy:<br />
* nie należy używać polecenia "show" tuż przed "optg", gdyż powoduje to błąd i zakończenie działania aplikacji.<br />
<br />
== Informacje o wykorzystaniu ==<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Dokumentacja ==<br />
* [http://www.molpro.net/ Strona główna MOLPRO]<br />
* [http://ccmst.gatech.edu/wiki/index.php?title=Molpro#Parallel_Computations CCMST Wiki]<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]]<br />
<br />
{{oprogramowanie}}<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Matlab&diff=5842Matlab2018-06-22T12:53:24Z<p>Dzieko: /* Uruchamianie na własnych komputerach */</p>
<hr />
<div>[[Plik:en.jpg|right|link={{PAGENAME}}/en]]<br />
<small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Matlab</small><br />
{{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.}}<br />
{{aplikacja|nazwa=Matlab|logo=[[Grafika:Matlab1.png]]|serwer=[[Bem]]|wersja='''R2017b'''|wersja2=R2016a|serwer2=[[Klaster kampusowy]]|wersja21=R2015a}}<br />
'''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.<br />
<br />
== Informacje ogólne ==<br />
Główne funkcjonalności MATLAB-a:<br />
* obliczenia numeryczne do szybkiego generowania wyników<br />
* grafika do wizualizacji i analizy danych<br />
* interaktywny język i środowisko programistyczne<br />
* narzędzia do budowy własnego GUI<br />
* integracja z zewnętrznymi aplikacjami składającymi się z komponentów C, C++, Fortran, Java, COM, Excel.<br />
* import danych z plików i urządzeń zewnętrznych (dodatkowo dostęp do baz danych i kolejnych urządzeń)<br />
* konwersja aplikacji MATLAB-a na C i C++ przy użyciu kompilatora.<br />
<br />
== Licencja udostępniana przez WCSS ==<br />
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/<br />
Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]]. <br />
<br />
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:<br />
<br />
* '''Matlab''' (30) - pakiet główny<br />
* '''Bioinformatics Toolbox''' (1)<br />
* '''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.<br />
*'''Curve Fitting Toolbox''' (1) - poprzez interfejs graficzny i command-line udostępnia funkcje dla różnych aplikacji typu ''curve-fitting''.<br />
* '''Data Acquisition Toolbox''' (1) - zestaw funkcji M-file i dynamicznych bibliotek (DLL) MEX-file napisanych w oparciu o środowisko obliczeniowe MATLABa.<br />
* '''Spreadsheet Link EX''' (2) - pakiet pozwala na integrację Matlaba z programem Microsoft Excel.<br />
* '''Filter Design HDL Coder''' (1)<br />
* '''Fixed-Point Toolbox''' (1)<br />
* '''Fuzzy Logic Toolbox''' (1) - rozszerza środowisko MATLABa o narzędzia do projektowania systemów opartych o logikę rozmytą. <br />
* '''Global Optimization Toolbox''' (1)<br />
* '''Image Processing Toolbox''' (1) - przetwarzanie obrazów<br />
* '''Neural Network Toolbox''' (10) - projektowanie i symulacja sieci neuronowych<br />
* '''Optimization Toolbox''' (10) - rozszerza środowisko Matlaba o narzędzia i algorytmy do optymalizacji. <br />
* '''Signal Processing Toolbox''' (10) - przetwarzanie sygnałów<br />
* '''DSP System Toolbox''' (6)- symulacja procesów cyfrowej obróbki sygnałów<br />
* '''Simulink''' (30) - interaktywne środowisko przeznaczone do modelowania, symulacji i analizy dynamicznych systemów.<br />
** '''Simulink Design Optimization''' (1) - zawiera także Simulink Response Optimization, interfejs graficzny (GUI) do dostrajania i optymalizowania systemów sterowania i fizycznych.<br />
** '''Simulink Fixed-Point''' (1)<br />
* '''HDL Coder''', dawniej '''Simulink HDL Coder''' (1)<br />
* '''Matlab Coder''' (1) <br />
* '''Matlab Compiler''' (1)<br />
* '''Matlab Compiler SDK''' (1)<br />
* '''Statistics Toolbox''' (1)<br />
* '''Wavelet Toolbox''' (1)<br />
* '''Parallel Computing Toolbox''' (5)<br />
* '''Distributed Computing Engine''' (32)<br />
<br />
Licencje zdezaktualizowane:<br />
* '''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.<br />
* '''Filter Design Toolbox''' (1)<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Uruchamianie na klastrze Bem ==<br />
MATLAB dostępny jest na klastrze [[Bem]] (katalog instalacji odpowiednio: /usr/local/matlab/WERSJA). <br />
<br />
=== Praca interaktywna na klastrze ===<br />
*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]<br />
<br />
*Następnie w celu pracy interaktywnej z aplikacją należy uruchomić zadanie interaktywne w kolejce, z opcją <code>-X</code>, np.:<br />
<br />
> '''qsub -I -X -l walltime=6:00:00'''<br />
<br />
;Środowisko aplikacji<br />
<br />
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.<br />
<br />
Przed użyciem MATLABa należy załadować odpowiedni moduł.<br />
<br />
> '''module load matlab'''<br />
<br />
Powyższe polecenie wczyta domyślną wersję. Można też wybrać konkretną wersję modułu wydając polecenie:<br />
<br />
> '''module load matlab/R2015a'''<br />
> '''module load matlab/R2014b'''<br />
<br />
Aby sprawdzić ustawienia przesyłane do MATLAB-a podczas uruchamiania wystarczy wydać polecenie:<br />
<br />
> '''matlab -n'''<br />
<br />
Aplikacja nie zostanie przy tym uruchomiona.<br />
<br />
;Uruchamianie aplikacji<br />
<br />
Do uruchamiania programu służy polecenie:<br />
<br />
> '''matlab'''<br />
<br />
=== Wstawianie zadań wsadowych do kolejki ===<br />
<br />
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)<br />
<br />
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:<br />
<br />
> sub-matlab<br />
Usage: /usr/local/bin/sub-matlab input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-p cores (default - 1)<br />
-m memory (in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
<br />
<br />
Na przykład<br />
<br />
> sub-matlab test.inp -q main -p 2 -m 4000 -w 2 <br />
<br />
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.<br />
<br />
<br />
'''Uwaga'''<br />
<br />
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).<br />
<br />
'''Zobacz też:''' [[Jak korzystać z kolejek PBS]]?<br />
<br />
== Uruchamianie na infrastrukturze PLATON-U3 ==<br />
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). <br />
<br />
== Uruchamianie na własnych komputerach ==<br />
<br />
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]]. <br />
Dostęp do serwera licencji możliwy jest poprzez system [[Korzystanie z VPN|VPN]].<br />
<br />
Przed uruchomieniem instalacji należy stworzyć tekstowy plik licencji o dowolnej nazwie i zawartości:<br />
<br />
SERVER menkar.wcss.pl 0007e905907d 27002<br />
USE_SERVER<br />
<br />
==== Instalacja na systemach z rodziny Windows ====<br />
<br />
Przed instalacją należy zgłosić się do WCSS po pobranie kodu PLP wymaganego do instalacji.<br />
<br />
Następnie należy uruchomić instalację i podać kod PLP oraz ścieżkę do pliku licencji na kolejnych etapach instalacji.<br />
<br />
W trakcie instalacji, na etapie wyboru pakietów, warto jest zaznaczyć pakiet "License Manager". Pozwala to przetestować dostępność serwera licencji.<br />
<br />
==== Instalacja na systemach z rodziny Linux/UNIX ====<br />
<br />
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>:<br />
<br />
Powłoka (shell) typu csh (csh, tcsh):<br />
setenv LM_LICENSE_FILE "27002@menkar.wcss.pl"<br />
<br />
Powłoka typu sh (sh, bsh, bash, ksh, ...):<br />
export LM_LICENSE_FILE="27002@menkar.wcss.pl"<br />
<br />
Rodzaj powłoki można sprawdzić poleceniem:<br />
echo $SHELL<br />
<br />
W trakcie instalacji program może poprosić o przygotowany wcześniej plik licencji.<br />
<br />
Ewentualny test licencji po zakończonej instalacji:<br />
/ścieżka/do/katalogu/instalacji/matlab/etc/glnxa64/lmstat -a -c 27002@menkar.wcss.pl<br />
W przypadku Ubuntu 18.04 lub innych dystrybucji linuksa, może być konieczne doinstalowanie pakietu '''lsb'''.<br />
<br />
== Dokumentacja ==<br />
* Dokumentacja ''on-line'' dostępna jest lokalnie po zalogowaniu się na klastrze i [[Nova]] i wydaniu polecenia '''doc''' z poziomu MATLAB-a.<br />
* ''"Komputerowa symulacja układów automatycznej regulacji w środowisku MATLAB/SIMULINK"'' s.132 rw.2005, Łysakowska B., Mzyk G., ISBN: 83-7085-854-6, [http://www.oficyna.pwr.wroc.pl/ Oficyna Wydawnicza PWr] (Cena: 17,90)<br />
*: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.<br />
*''"Programowanie w Matlabie dla elektryków"'' s.215,rw. 2005, Sobierajski M., Łabuzek M., [http://www.oficyna.pwr.wroc.pl/ Oficyna Wydawnicza PWr] (Cena: 22,00) <br />
*: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.<br />
*:;Spis treści: <br />
*::Wstęp<br />
*:# Pierwsze kroki w Matlabie<br />
*:# Podstawowe operacje macierzowe i tablicowe<br />
*:# Tworzenie skryptów i współpraca z plikami danych<br />
*:# Tworzenie plików funkcyjnych<br />
*:# Wykresy w Matlabie<br />
*:# Interfejs graficzny użytkownika<br />
*:# Rozwiązywanie zadań opisanych równaniami różniczkowymi<br />
*:# Współpraca z plikami zewnętrznymi<br />
*:# Rozwiązywanie zadań optymalizacji<br />
*:# Analiza statystyczna pomiarów<br />
*:# Analiza harmonicznych<br />
*:# Równania różniczkowe<br />
*:# Analiza stabilności lokalnej i globalnej<br />
*:# Rozwiązywanie równań różniczkowych z elementami nieliniowymi<br />
*:# Wprowadzenie do Simulinka<br />
*:# Modelowanie równania różniczkowego<br />
*:# Modelowanie układu równań różniczkowych<br />
*:# Grupowanie i maskowanie bloków<br />
*::Literatura<br />
<br />
;MATLAB w sieci<br />
* [http://www.mathworks.com/products/matlab/ Strona domowa MATLABa]<br />
* [http://www.mathworks.com/company/newsletters/articles/gpu-programming-in-matlab.html?s_v1=48010423_1-AUVSR GPU Programming in MATLAB]<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]]<br />
<br />
{{oprogramowanie}}<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Gaussian&diff=5841Gaussian2018-06-20T09:18:52Z<p>Dzieko: /* Wstawianie zadań */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Gaussian</small><br />
<br />
{{aplikacja|nazwa=Gaussian|logo=[[Plik:Gausslogo.jpg|noframe|center]]|serwer=[[Bem]]|wersja=2016 B01, 2016 A03, 2009 E01, 2009 D01, 2009 B01, 2003 E01}}<br />
<br />
'''Gaussian''' jest jednym z najpopularniejszych programów do modelowania układów cząsteczkowych z wykorzystaniem mechaniki kwantowej. Stosowany jest przez chemików, fizyków i inżynierów w dziedzinie chemii teoretycznej i eksperymentalnej. Program jest szczególnie przydatny w obszarach, w których szybko zachodzące zmiany i krótko trwające stany pośrednie układów uniemożliwiają obserwację eksperymentalną zachodzących w nich procesów. Gaussian umożliwia badanie układów na poziomie ab initio oraz na poziomie bardziej uproszczonym (np. półempirycznym).<br />
<br />
== Informacje ogólne ==<br />
<br />
Pakiet Gaussian został pierwotnie opracowany przez zespół J.A. Pople'a. Pierwsza wersja pakietu udostępniona została w 1976 roku pod nazwą Gaussian-76. Kolejne wersje nazywano odpowiednio do roku, w którym były wydawane, Gaussian-80, -82, -86, -88, -90, -92, -94, -98, -03 -09 i wersja -16.<br />
<br />
Gaussian 98/03 posiada zdolność prognozowania wielu własności cząsteczek i reakcji, włączając:<br />
* energie i struktury molekularne,<br />
* energie i struktury stanów przejściowych,<br />
* częstości drgań,<br />
* widma IR i Raman'owskie,<br />
* własności termochemiczne,<br />
* energie wiązań i ścieżki reakcji,<br />
* orbitale molekularne,<br />
* ładunki atomowe,<br />
* momenty multipolowe,<br />
* stałe ekranowania i podatności magnetyczne NMR,<br />
* powinowactwo elektronowe i potencjały jonizacyjne,<br />
* polaryzowalności i hiperpolaryzowalności,<br />
* potencjały elektrostatyczne i gęstości elektronowe,<br />
* i wiele innych.<br />
<br />
Obliczenia dla danego układu cząsteczek mogą być wykonywane w fazie gazowej lub roztworze, w stanie podstawowym oraz w stanie wzbudzonym.<br />
<br />
Nowości Gaussiana 03 to m.in. poszerzona funkcjonalność metody ONIOM czy metody rozwiązywania PCM (ang.''Polarizable Continuum Model'').<br />
<br />
Program Gaussian można uruchamiać na większości z dostępnych platform sprzętowych i systemowych, począwszy od komputerów klasy PC/Macintosh z Windows, Linux lub MacOS, poprzez praktycznie wszystkie uniksowe stacje robocze, po superkomputery wszystkich producentów. Gaussian może być wykonywany równolegle w środowiskach SMP (oraz rozproszonych, po zakupieniu dodatkowego pakietu Linda).<br />
<br />
== GAUSSIAN w WCSS ==<br />
W [[WCSS]] pakiet GAUSSIAN jest dostępny na klastrze [[Bem]].<br />
<br />
=== Zalecenia ogólne ===<br />
<br />
* Podstawowe aspekty wydajności obliczeń Gaussianem zostały omówione częściowo na stronie producenta: http://gaussian.com/eff/ .<br />
<br />
* Oszacowanie wymaganej pamięci i wskazówki dot. wydajności obliczeń: http://gaussian.com/eff/<br />
:W szczególności należy zwrócić uwagę, że alokowanie bardzo dużej pamięci nie wpływa liniowo na wydajność obliczeń. Użycie zbyt dużej pamięci może wręcz spowolnić działanie programu. Do oszacowania pamięci dla obliczeń częstości w HF i DFT można użyć programu ''freqmem'' (http://gaussian.com/freqmem/). Powinno to dawać również rozsądne szacunki dla optymalizacji i metod post-HF.<br />
<br />
* Najwięcej problemów sprawiają zadania wymagające dużo dysku. Jeśli zadanie generuje kilkadziesiąt (lub więcej) GB danych, to wyszukanie wartości całki w takim pliku zajmuje więcej czasu niż jej doliczenie na szybkiej maszynie. Wtedy należy używać trybu ''direct:''<br />
SCF=DIRECT<br />
:Dodatkowo, silne obciążenie podsystemu dyskowego komputera stopuje całą maszynę. Oczywiście, zadania, których nie można uruchomić w trybie bezpośrednim, ciągle można liczyć w WCSS. Prosimy jednak pamiętać, że jeśli zagrozi to przepełnieniem dysków <code>/scratch</code> i przerwaniem innych zadań, to zadanie takie zostanie zabite. Użytkownicy wymagający więcej przestrzeni dyskowej proszeni są o [[kontakt]] przed rozpoczęciem obliczeń.<br />
<br />
* Gaussian zainstalowany jest na poszczególnych maszynach w podkatalogach <code>/usr/local/gaussian/WERSJA/</code> lub <code>/usr/local/gaussian-WERSJA/</code>.<br />
<br />
* Jeśli istnieje potrzeba użycia poleceń takich jak ''formchk'', to należy to zrobić w zadaniu interaktywnym (przykładowe uruchomienie poniżej).<br />
qsub -I -l walltime=06:00:00 -l select=1:ncpus=1:mem=1000MB -l software=formchk<br />
module load gaussian/g16.A.03<br />
formchk<br />
<br />
* Gaussian nie akceptuje DOS-owego znaku powrotu karetki (znak <code>^M</code>) w plikach danych. Sprawdzenie można wykonać poleceniem:<br />
vim -b plik-danych<br />
<br />
* Sposób cytowania zalecany przez producenta znajduje się na stronie:<br />
*:http://gaussian.com/citation/<br />
<br />
* Informacje o wykonywaniu zadań równoległych: http://www.gaussian.com/<br />
<br />
=== Wstawianie zadań ===<br />
<br />
* Zadania obliczeniowe należy uruchamiać za pośrednictwem systemu kolejkowego.<br />
<br />
* Do wstawiania zadań Gaussiana do systemu kolejkowania [[PBS]] można wykorzystać skrypty przygotowane przez WCSS. Jest to metoda zalecana, ale nie konieczna - można używać własnych skryptów:<br />
<br />
sub-gaussian-2003-E.01<br />
sub-gaussian-2009-B.01<br />
sub-gaussian-2009-D.01<br />
sub-gaussian-2009-E.01<br />
sub-gaussian-2016-A.03<br />
sub-gaussian-2016-B.01<br />
<br />
Uruchomienie skryptu sub-gaussian bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować (uruchamia domyślną wersję programu):<br />
<br />
> sub-gaussian-2016-A.03 <br />
Usage: /usr/local/bin/sub-gaussian-2016-A.03 input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-p cores (default - 24, possible values: 4, 12, 24)<br />
-m memory (in MB, default - 56000, may be set up to 121000)<br />
-w walltime (in hours, default - 504)<br />
-b memory_buffer (in MB, default - 4000) - do not use it for typical calculation<br />
-f (run formchk on the checkpoint file on the end)<br />
<br />
* Dla wersji 2003 zadania są automatycznie konfigurowane do wykorzystania 4 i 500 MB pamięci. <br />
<br />
* Pozostałe parametry konfiguracyjne znajdują się w pliku /usr/local/gaussian/WERSJA/g0X/Default.Route<br />
<br />
=== Znane problemy ===<br />
<br />
* Problemy napotkane w wersji 2009-A do D:<br />
** Gaussian bardzo agresywnie alokuje pamięć w niektórych przypadkach. W efekcie system operacyjny Linux nie nadąża zrzucać buforów dyskowych, aby zwolnić pamięć. Skutkuje to błędami ''"memory allocation failed"''. Jest to wina algorytmów zastosowanych w programie. Autorzy nie reagują na nasze raporty błędów. Wdrożone zostało obejście problemu, ale nie zawsze skuteczne. Zalecamy sukcesywne zwiększanie wartości bufora podawanego jako opcja " -b " dla skryptu '''sub-gaussian'''.<br />
<br />
* Problemy napotkane w wersji 2009-D01:<br />
** Użycie O3LYP skutkuje komunikatem ''"Different local and non-local exchange scaling not allowed for this functional"''. jest to błąd i należy użyć starszej wersji programu.<br />
** Użycie Add/Mod Redundant:<br />
<br />
There was a change in the "ModRedundant/AddRedundant" code in G09 rev.<br />
C.01 and later. We have found that the input of a value to modify an<br />
internal coordinate from that present in the input structure can cause<br />
a number of problems and it is not guaranteed to work, so we have<br />
disabled this function (the online documentation of "Geom" and "Opt"<br />
should reflect the change now). In G09 rev. C.01 and D.01, the syntax<br />
on the "ModRedundant" section is only valid when the value of the<br />
coordinate is not set, so it uses the value that corresponds with the<br />
input geometry, for example:<br />
<br />
D 5 1 6 10 S 20 5.000000<br />
<br />
If the value of the bond/angle/dihedral coordinate that the user wants<br />
to freeze/scan is not at the desired value in the input geometry, then<br />
one should modify the input geometry and not give different values<br />
here (for example, by opening the input structure with GaussView, then<br />
using the "Bond/Angle/Dihedral" tool and move the slide to get the<br />
exact value of the desired coordinate). If one uses the "Redundant<br />
Coordinate Editor" in GaussView to define the redundant internal<br />
coordinates to freeze or scan, then one should leave as "Don't Set"<br />
the pull down menu in that window. The options "Set" and "Increment"<br />
in such window are no longer available in G09 rev. C.01.<br />
<br />
When one uses the "Bond", "Angle" and "Dihedral" tools in GaussView,<br />
one has several modes in which this internal coordinate can be<br />
modified, such as rotating groups, rotating atoms, or keeping one side<br />
frozen but rotating only the other side. The fact that a modification<br />
of one internal coordinate can be done in several different ways<br />
underscores why the "old syntax" of allowing modification of the<br />
coordinate value is problematic. Because of the redundancy of the<br />
"redundant internal coordinates", some internal coordinates could be<br />
strongly coupled with others. Thus, a modification of the value in one<br />
internal coordinate might not be possible without modifying the values<br />
of other redundant internal coordinates, therefore becoming a not<br />
well-defined problem because there could be multiple solutions<br />
depending on how many other (and which) internal coordinates are<br />
allowed to be modified and by how much. This is our motivation for<br />
disabling the "old syntax". We understand that the "old syntax" may<br />
have worked for users in many cases before but we considered that this<br />
was not reliable enough to be of general use.<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Dokumentacja ==<br />
Dokumentacja Gaussiana 94 i 98 dostępna jest w formie drukowanej:<br />
* E. Frisch, Michael J. Frisch, James B. Foresman, "Gaussian 94 User's Reference", Manual Version: 5.1, February, 1996<br />
* E. Frisch, Michael J. Frisch, "Gaussian 98 User's Reference", Manual Version: 6.1, January, 1999<br />
* E. Frisch, Michael J. Frisch, Alice B. Nielsen, "Gaussian 98 Programmer's Reference", Manual Version: 6.0, August, 1998<br />
Dokumentacja Gaussiana 09 i 16 łatwo dostępna jest w formie online.<br />
<br />
=== Gaussian w sieci ===<br />
<br />
* [http://www.gaussian.com Strona domowa Gaussiana]<br />
* [http://server.ccl.net/cca/documents/dyoung/topics-orig/gaussian.html Krótki przewodnik dla początkujących]<br />
* [http://www.spectroscopynow.com Baza wiedzy o NMR, IR, RAMAN *]<br />
* [http://www-usr.rider.edu/~grushow/nmr/NMR_tutor/dictionary/dict_intro.html słownik on-line pojęć NMR *]<br />
* [http://www.molnet.eu/index.php?option=com_content&view=category&layout=blog&id=12&Itemid=142 Gaussian w praktyce]<br />
* [http://joaquinbarroso.com/category/white-papers/gaussian/ Dr. Joaquin Barroso's blog]<br />
* [http://accelrys.com/products/datasheets/interface-to-gaussian.pdf Materials Studio user interface to Gaussian]<br />
* [http://signe.teokem.lu.se/~ulf/Methods/gaussian.html How to start and run a simple calculation with Gaussian]<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]], [[Obliczenia wibracyjnie rozdzielczych widm elektronowych w Gaussianie 09]]<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Gaussian&diff=5840Gaussian2018-06-20T09:18:01Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Gaussian</small><br />
<br />
{{aplikacja|nazwa=Gaussian|logo=[[Plik:Gausslogo.jpg|noframe|center]]|serwer=[[Bem]]|wersja=2016 B01, 2016 A03, 2009 E01, 2009 D01, 2009 B01, 2003 E01}}<br />
<br />
'''Gaussian''' jest jednym z najpopularniejszych programów do modelowania układów cząsteczkowych z wykorzystaniem mechaniki kwantowej. Stosowany jest przez chemików, fizyków i inżynierów w dziedzinie chemii teoretycznej i eksperymentalnej. Program jest szczególnie przydatny w obszarach, w których szybko zachodzące zmiany i krótko trwające stany pośrednie układów uniemożliwiają obserwację eksperymentalną zachodzących w nich procesów. Gaussian umożliwia badanie układów na poziomie ab initio oraz na poziomie bardziej uproszczonym (np. półempirycznym).<br />
<br />
== Informacje ogólne ==<br />
<br />
Pakiet Gaussian został pierwotnie opracowany przez zespół J.A. Pople'a. Pierwsza wersja pakietu udostępniona została w 1976 roku pod nazwą Gaussian-76. Kolejne wersje nazywano odpowiednio do roku, w którym były wydawane, Gaussian-80, -82, -86, -88, -90, -92, -94, -98, -03 -09 i wersja -16.<br />
<br />
Gaussian 98/03 posiada zdolność prognozowania wielu własności cząsteczek i reakcji, włączając:<br />
* energie i struktury molekularne,<br />
* energie i struktury stanów przejściowych,<br />
* częstości drgań,<br />
* widma IR i Raman'owskie,<br />
* własności termochemiczne,<br />
* energie wiązań i ścieżki reakcji,<br />
* orbitale molekularne,<br />
* ładunki atomowe,<br />
* momenty multipolowe,<br />
* stałe ekranowania i podatności magnetyczne NMR,<br />
* powinowactwo elektronowe i potencjały jonizacyjne,<br />
* polaryzowalności i hiperpolaryzowalności,<br />
* potencjały elektrostatyczne i gęstości elektronowe,<br />
* i wiele innych.<br />
<br />
Obliczenia dla danego układu cząsteczek mogą być wykonywane w fazie gazowej lub roztworze, w stanie podstawowym oraz w stanie wzbudzonym.<br />
<br />
Nowości Gaussiana 03 to m.in. poszerzona funkcjonalność metody ONIOM czy metody rozwiązywania PCM (ang.''Polarizable Continuum Model'').<br />
<br />
Program Gaussian można uruchamiać na większości z dostępnych platform sprzętowych i systemowych, począwszy od komputerów klasy PC/Macintosh z Windows, Linux lub MacOS, poprzez praktycznie wszystkie uniksowe stacje robocze, po superkomputery wszystkich producentów. Gaussian może być wykonywany równolegle w środowiskach SMP (oraz rozproszonych, po zakupieniu dodatkowego pakietu Linda).<br />
<br />
== GAUSSIAN w WCSS ==<br />
W [[WCSS]] pakiet GAUSSIAN jest dostępny na klastrze [[Bem]].<br />
<br />
=== Zalecenia ogólne ===<br />
<br />
* Podstawowe aspekty wydajności obliczeń Gaussianem zostały omówione częściowo na stronie producenta: http://gaussian.com/eff/ .<br />
<br />
* Oszacowanie wymaganej pamięci i wskazówki dot. wydajności obliczeń: http://gaussian.com/eff/<br />
:W szczególności należy zwrócić uwagę, że alokowanie bardzo dużej pamięci nie wpływa liniowo na wydajność obliczeń. Użycie zbyt dużej pamięci może wręcz spowolnić działanie programu. Do oszacowania pamięci dla obliczeń częstości w HF i DFT można użyć programu ''freqmem'' (http://gaussian.com/freqmem/). Powinno to dawać również rozsądne szacunki dla optymalizacji i metod post-HF.<br />
<br />
* Najwięcej problemów sprawiają zadania wymagające dużo dysku. Jeśli zadanie generuje kilkadziesiąt (lub więcej) GB danych, to wyszukanie wartości całki w takim pliku zajmuje więcej czasu niż jej doliczenie na szybkiej maszynie. Wtedy należy używać trybu ''direct:''<br />
SCF=DIRECT<br />
:Dodatkowo, silne obciążenie podsystemu dyskowego komputera stopuje całą maszynę. Oczywiście, zadania, których nie można uruchomić w trybie bezpośrednim, ciągle można liczyć w WCSS. Prosimy jednak pamiętać, że jeśli zagrozi to przepełnieniem dysków <code>/scratch</code> i przerwaniem innych zadań, to zadanie takie zostanie zabite. Użytkownicy wymagający więcej przestrzeni dyskowej proszeni są o [[kontakt]] przed rozpoczęciem obliczeń.<br />
<br />
* Gaussian zainstalowany jest na poszczególnych maszynach w podkatalogach <code>/usr/local/gaussian/WERSJA/</code> lub <code>/usr/local/gaussian-WERSJA/</code>.<br />
<br />
* Jeśli istnieje potrzeba użycia poleceń takich jak ''formchk'', to należy to zrobić w zadaniu interaktywnym (przykładowe uruchomienie poniżej).<br />
qsub -I -l walltime=06:00:00 -l select=1:ncpus=1:mem=1000MB -l software=formchk<br />
module load gaussian/g16.A.03<br />
formchk<br />
<br />
* Gaussian nie akceptuje DOS-owego znaku powrotu karetki (znak <code>^M</code>) w plikach danych. Sprawdzenie można wykonać poleceniem:<br />
vim -b plik-danych<br />
<br />
* Sposób cytowania zalecany przez producenta znajduje się na stronie:<br />
*:http://gaussian.com/citation/<br />
<br />
* Informacje o wykonywaniu zadań równoległych: http://www.gaussian.com/<br />
<br />
=== Wstawianie zadań ===<br />
<br />
* Zadania obliczeniowe należy uruchamiać za pośrednictwem systemu kolejkowego.<br />
<br />
* Do wstawiania zadań Gaussiana do systemu kolejkowania [[PBS]] można wykorzystać skrypty przygotowane przez WCSS. Jest to metoda zalecana, ale nie konieczna - można używać własnych skryptów:<br />
<br />
sub-gaussian sub-gaussian-2003-E.01 sub-gaussian-2009-B.01 sub-gaussian-2009-D.01 <br />
sub-gaussian-2003-e01 sub-gaussian-2009-b01 sub-gaussian-2009-d01 sub-gaussian-2009-E.01 <br />
sub-gaussian-2003-e.01 sub-gaussian-2009-b.01 sub-gaussian-2009-d.01 sub-gaussian-2016-A.03<br />
<br />
<br />
Uruchomienie skryptu sub-gaussian bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować (uruchamia domyślną wersję programu):<br />
<br />
> sub-gaussian-2016-A.03 <br />
Usage: /usr/local/bin/sub-gaussian-2016-A.03 input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-p cores (default - 24, possible values: 4, 12, 24)<br />
-m memory (in MB, default - 56000, may be set up to 121000)<br />
-w walltime (in hours, default - 504)<br />
-b memory_buffer (in MB, default - 4000) - do not use it for typical calculation<br />
-f (run formchk on the checkpoint file on the end)<br />
<br />
* Dla wersji 2003 zadania są automatycznie konfigurowane do wykorzystania 4 i 500 MB pamięci. <br />
<br />
* Pozostałe parametry konfiguracyjne znajdują się w pliku /usr/local/gaussian/WERSJA/g0X/Default.Route<br />
<br />
=== Znane problemy ===<br />
<br />
* Problemy napotkane w wersji 2009-A do D:<br />
** Gaussian bardzo agresywnie alokuje pamięć w niektórych przypadkach. W efekcie system operacyjny Linux nie nadąża zrzucać buforów dyskowych, aby zwolnić pamięć. Skutkuje to błędami ''"memory allocation failed"''. Jest to wina algorytmów zastosowanych w programie. Autorzy nie reagują na nasze raporty błędów. Wdrożone zostało obejście problemu, ale nie zawsze skuteczne. Zalecamy sukcesywne zwiększanie wartości bufora podawanego jako opcja " -b " dla skryptu '''sub-gaussian'''.<br />
<br />
* Problemy napotkane w wersji 2009-D01:<br />
** Użycie O3LYP skutkuje komunikatem ''"Different local and non-local exchange scaling not allowed for this functional"''. jest to błąd i należy użyć starszej wersji programu.<br />
** Użycie Add/Mod Redundant:<br />
<br />
There was a change in the "ModRedundant/AddRedundant" code in G09 rev.<br />
C.01 and later. We have found that the input of a value to modify an<br />
internal coordinate from that present in the input structure can cause<br />
a number of problems and it is not guaranteed to work, so we have<br />
disabled this function (the online documentation of "Geom" and "Opt"<br />
should reflect the change now). In G09 rev. C.01 and D.01, the syntax<br />
on the "ModRedundant" section is only valid when the value of the<br />
coordinate is not set, so it uses the value that corresponds with the<br />
input geometry, for example:<br />
<br />
D 5 1 6 10 S 20 5.000000<br />
<br />
If the value of the bond/angle/dihedral coordinate that the user wants<br />
to freeze/scan is not at the desired value in the input geometry, then<br />
one should modify the input geometry and not give different values<br />
here (for example, by opening the input structure with GaussView, then<br />
using the "Bond/Angle/Dihedral" tool and move the slide to get the<br />
exact value of the desired coordinate). If one uses the "Redundant<br />
Coordinate Editor" in GaussView to define the redundant internal<br />
coordinates to freeze or scan, then one should leave as "Don't Set"<br />
the pull down menu in that window. The options "Set" and "Increment"<br />
in such window are no longer available in G09 rev. C.01.<br />
<br />
When one uses the "Bond", "Angle" and "Dihedral" tools in GaussView,<br />
one has several modes in which this internal coordinate can be<br />
modified, such as rotating groups, rotating atoms, or keeping one side<br />
frozen but rotating only the other side. The fact that a modification<br />
of one internal coordinate can be done in several different ways<br />
underscores why the "old syntax" of allowing modification of the<br />
coordinate value is problematic. Because of the redundancy of the<br />
"redundant internal coordinates", some internal coordinates could be<br />
strongly coupled with others. Thus, a modification of the value in one<br />
internal coordinate might not be possible without modifying the values<br />
of other redundant internal coordinates, therefore becoming a not<br />
well-defined problem because there could be multiple solutions<br />
depending on how many other (and which) internal coordinates are<br />
allowed to be modified and by how much. This is our motivation for<br />
disabling the "old syntax". We understand that the "old syntax" may<br />
have worked for users in many cases before but we considered that this<br />
was not reliable enough to be of general use.<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Dokumentacja ==<br />
Dokumentacja Gaussiana 94 i 98 dostępna jest w formie drukowanej:<br />
* E. Frisch, Michael J. Frisch, James B. Foresman, "Gaussian 94 User's Reference", Manual Version: 5.1, February, 1996<br />
* E. Frisch, Michael J. Frisch, "Gaussian 98 User's Reference", Manual Version: 6.1, January, 1999<br />
* E. Frisch, Michael J. Frisch, Alice B. Nielsen, "Gaussian 98 Programmer's Reference", Manual Version: 6.0, August, 1998<br />
Dokumentacja Gaussiana 09 i 16 łatwo dostępna jest w formie online.<br />
<br />
=== Gaussian w sieci ===<br />
<br />
* [http://www.gaussian.com Strona domowa Gaussiana]<br />
* [http://server.ccl.net/cca/documents/dyoung/topics-orig/gaussian.html Krótki przewodnik dla początkujących]<br />
* [http://www.spectroscopynow.com Baza wiedzy o NMR, IR, RAMAN *]<br />
* [http://www-usr.rider.edu/~grushow/nmr/NMR_tutor/dictionary/dict_intro.html słownik on-line pojęć NMR *]<br />
* [http://www.molnet.eu/index.php?option=com_content&view=category&layout=blog&id=12&Itemid=142 Gaussian w praktyce]<br />
* [http://joaquinbarroso.com/category/white-papers/gaussian/ Dr. Joaquin Barroso's blog]<br />
* [http://accelrys.com/products/datasheets/interface-to-gaussian.pdf Materials Studio user interface to Gaussian]<br />
* [http://signe.teokem.lu.se/~ulf/Methods/gaussian.html How to start and run a simple calculation with Gaussian]<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]], [[Obliczenia wibracyjnie rozdzielczych widm elektronowych w Gaussianie 09]]<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5839Jak korzystać z kolejek PBS2018-06-15T13:17:20Z<p>Dzieko: /* Zasoby */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze Bem nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br><br />
Ogólna zasada jest następująca: wszystkie zadania należy zlecać do kolejki '''main''', która w zależności od czasu trwania zadania przekieruje je do kolejki o odpowiednio długim czasie wykonywania. <br><br />
Dla przykładu zadanie o czasie 123h trafi do kolejki shoth168h. Każda z kolejek ma inny priorytet. <br />
W ogólności im krótsza kolejka tym wyższy priorytet. Kolejka normal o maksymalnej długości zadania do 504h ma najniższy priorytet i ograniczone zasoby. <br />
Pozostałe kolejki korzystają ze wszystkich zasobów.<br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. '''chunków''') pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części (chunki) mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** Wielkość pamięci zadeklarowana dla zadania w kolejce powinna być większa (np. o 10%) od wartości zadeklarowanej dla aplikacji w pliku wejściowym. Należy zadbać, aby w pliku wejściowym podana była poprawna wielkość pamięci, wystarczająca do skutecznego wykonania obliczeń dla danego rozmiaru problemu obliczeniowego. Jeśli aplikacja, uruchomiona podczas wykonywania się zadania kolejkowego, spróbuje użyć więcej pamięci niż zostało zadeklarowane dla zadania, to aplikacja zostanie zabita i zadanie zakończy się niepowodzeniem.<br />
** Przykład dla aplikacji [[Gaussian]]:<br />
*** Deklaracja w pliku wejściowym dla obliczeń na 8 procesorach i z wykorzystanie 4GB pamięci:<br />
%nproc=8<br />
%mem=4000MB<br />
*** odpowiednia deklaracja dla zadania kolejkowego:<br />
-l select=1:ncpus=8:mem=4400MB<br />
** domyślnie: 2000 MB per każdy chunk<br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 500 000 MB na 10 węzłach<br />
<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku). Należy skorzystać z tego parametru, kiedy w jednej części alokacji (chunk) chcemy uruchomić jeden lub więcej procesów MPI:<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
** wielkość mpiprocs nigdy nie może być większa niż ncpus w żadnym chunku!<br />
** jeśli aplikacja jest zrównoleglona jedynie przy użyciu MPI i nie korzysta z OpenMP, to wartość mpiprocs powinna być zawsze równa ncpus!<br />
<br />
<br />
Jeśli aplikacja jest zrównoleglona przy użyciu OpenMP, to należy podać liczbę wątków w ramach części alokacji (chunk):<br />
* '''ompthreads''' - liczba wątków (threads)<br />
** domyślnie: równa wartości '''ncpus'''<br />
** maksymalnie: 24 lub 28<br />
** wielkość ompthreads nigdy nie może być większa niż ncpus w żadnym chunku!<br />
<br />
W przypadku aplikacji hybrydowych, korzystających jednocześnie z MPI i OpenMP, wielkość '''ncpus''' w każdym chunku '''musi''' być równa '''mpiprocs * ompthreads''', vide przykłady poniżej.<br />
<br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw. Należy zwrócić uwagę, że w każdym chunku jest fizycznie wymagane 2mpi*12threads=24 rdzenie, dlatego ncpus musi przyjąć właśnie taką wartość:<br />
<br />
<pre><br />
select=4:ncpus=24:mpiprocs=2:ompthreads=12:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
chunk pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
<br />
chunk drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
</pre><br />
<br />
Uruchamianie aplikacji wykorzystującej zarówno MPI jak i OpenMP, implementacja Intel MPI:<br />
<br />
mpirun -genv OMP_NUM_THREADS=$OMP_NUM_THREADS -genv I_MPI_PIN_DOMAIN=omp /ścieżka/aplikacja.x<br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
<br />
* zawartość skryptu uruchom.sh<br />
<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program <br />
# z PRZEKIEROWANIEM ZAPISYWANIA WYNIKOW -- BARDZO WAZNE<br />
./test1 >& wynik.txt<br />
</source><br />
<br />
* '''Bardzo ważne''': każde polecenie wykonywane w skrypcie zadania '''MUSI''' przekierowywać wyniki drukowane na standardowe wyjścia stdout i stderr do plików w katalogu domowym. Zadania wstawione bez przekierowania będą zabijane bez ostrzeżenia:<br />
./test1 >& wynik.txt<br />
<br />
* wstawienie skryptu<br />
<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
<br />
* zawartość pliku skrypt.sh<br />
<br />
<source lang=bash><br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
# z PRZEKIEROWANIEM ZAPISYWANIA WYNIKOW -- BARDZO WAZNE<br />
./test1 >& wynik.txt<br />
EOF<br />
</source><br />
<br />
* wstawienie zadania:<br />
<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
<br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5838Jak korzystać z kolejek PBS2018-06-12T12:30:18Z<p>Dzieko: /* Zasoby */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze Bem nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br><br />
Ogólna zasada jest następująca: wszystkie zadania należy zlecać do kolejki '''main''', która w zależności od czasu trwania zadania przekieruje je do kolejki o odpowiednio długim czasie wykonywania. <br><br />
Dla przykładu zadanie o czasie 123h trafi do kolejki shoth168h. Każda z kolejek ma inny priorytet. <br />
W ogólności im krótsza kolejka tym wyższy priorytet. Kolejka normal o maksymalnej długości zadania do 504h ma najniższy priorytet i ograniczone zasoby. <br />
Pozostałe kolejki korzystają ze wszystkich zasobów.<br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. '''chunków''') pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części (chunki) mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** Wielkość pamięci zadeklarowana dla zadania w kolejce powinna być większa (np. o 10%) od wartości zadeklarowanej dla aplikacji w pliku wejściowym. Należy zadbać, aby w pliku wejściowym podana była poprawna wielkość pamięci, wystarczająca do skutecznego wykonania obliczeń dla danego rozmiaru problemu obliczeniowego. Jeśli aplikacja, uruchomiona podczas wykonywania się zadania kolejkowego, spróbuje użyć więcej pamięci niż zostało zadeklarowane dla zadania, to aplikacja zostanie zabita i zadanie zakończy się niepowodzeniem.<br />
** Przykład dla aplikacji [[Gaussian]]:<br />
*** Deklaracja w pliku wejściowym dla obliczeń na 8 procesorach i z wykorzystanie 4GB pamięci:<br />
%nproc=8<br />
%mem=4000MB<br />
*** odpowiednia deklaracja dla zadania kolejkowego:<br />
-l select=1:ncpus=8:mem=4400MB<br />
** domyślnie: 2000 MB per każdy chunk<br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 500 000 MB na 10 węzłach<br />
<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku). Należy skorzystać z tego parametru, kiedy w jednej części alokacji (chunk) chcemy uruchomić jeden lub więcej procesów MPI:<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
** wielkość mpiprocs nigdy nie może być większa niż ncpus w żadnym chunku!<br />
** jeśli aplikacja jest zrównoleglona jedynie przy użyciu MPI i nie korzysta z OpenMP, to wartość mpiprocs powinna być zawsze równa ncpus!<br />
<br />
<br />
Jeśli aplikacja jest zrównoleglona przy użyciu OpenMP, to należy podać liczbę wątków w ramach części alokacji (chunk):<br />
* '''ompthreads''' - liczba wątków (threads)<br />
** domyślnie: równa wartości '''ncpus'''<br />
** maksymalnie: 24 lub 28<br />
** wielkość ompthreads nigdy nie może być większa niż ncpus w żadnym chunku!<br />
<br />
W przypadku aplikacji hybrydowych, korzystających jednocześnie z MPI i OpenMP, wielkość '''ncpus''' w każdym chunku '''musi''' być równa '''mpiprocs * ompthreads''', vide przykłady poniżej.<br />
<br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw. Należy zwrócić uwagę, że w każdym chunku jest fizycznie wymagane 2mpi*12threads=24 rdzenie, dlatego ncpus musi przyjąć właśnie taką wartość:<br />
<br />
<pre><br />
select=4:ncpus=24:mpiprocs=2:ompthreads=12:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
chunk pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
<br />
chunk drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
</pre><br />
<br />
Uruchamianie aplikacji wykorzystującej zarówno MPI jak i OpenMP, implementacja Intel MPI:<br />
<br />
mpiexec.hydra -genv OMP_NUM_THREADS=$OMP_NUM_THREADS -genv I_MPI_PIN_DOMAIN=omp /ścieżka/aplikacja.x<br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
<br />
* zawartość skryptu uruchom.sh<br />
<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program <br />
# z PRZEKIEROWANIEM ZAPISYWANIA WYNIKOW -- BARDZO WAZNE<br />
./test1 >& wynik.txt<br />
</source><br />
<br />
* '''Bardzo ważne''': każde polecenie wykonywane w skrypcie zadania '''MUSI''' przekierowywać wyniki drukowane na standardowe wyjścia stdout i stderr do plików w katalogu domowym. Zadania wstawione bez przekierowania będą zabijane bez ostrzeżenia:<br />
./test1 >& wynik.txt<br />
<br />
* wstawienie skryptu<br />
<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
<br />
* zawartość pliku skrypt.sh<br />
<br />
<source lang=bash><br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
# z PRZEKIEROWANIEM ZAPISYWANIA WYNIKOW -- BARDZO WAZNE<br />
./test1 >& wynik.txt<br />
EOF<br />
</source><br />
<br />
* wstawienie zadania:<br />
<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
<br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Bem&diff=5837Bem2018-05-08T09:37:45Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Maszyny obliczeniowe]] < Bem</small><br />
<!--{{note|Przerwa serwisowa klastra: 17 sierpnia - 21 sierpnia 2015}}--><br />
{{serwer<br />
|nazwa=Bem<br />
|zdjęcie=bem.jpg<br />
|admini=kdm@wcss.pl<br />
}}<br />
'''Bem''' - klaster zainstalowany w [[WCSS]] w marcu 2015 r. Architektura wszystkich komputerów to x86_64 z procesorami Intel Xeon (mikroarchitektura Haswell).<br />
<br />
=== Parametry klastra ===<br />
<br />
* węzeł dostępowy dla użytkowników lokalnych KDM WCSS: '''bem.wcss.pl''',<br />
* węzeł dostępowy dla użytkowników PL-Grid: '''ui.wcss.pl''',<br />
* 688 węzłów obliczeniowych 24-rdzeniowych z 64 GB pamięci oper. (Intel Xeon E5-2670 v3 2.3 GHz, Haswell),<br />
* 32 węzły obliczeniowe 24-rdzeniowe ze 128 GB pamięci oper. (Intel Xeon E5-2670 v3 2.3 GHz, Haswell),<br />
* 182 węzły obliczeniowe 28-rdzeniowe ze 128 GB pamięci oper. (Intel Xeon E5-2697 v3 2.6 GHz, Haswell),<br />
* 10 węzłów obliczeniowych 28-rdzeniowych z 512 GB pamięci oper. (Intel Xeon E5-2697 v3 2.6 GHz, Haswell),<br />
* 22 656 rdzeni obliczeniowych,<br />
* 74,6 TB pamięci RAM,<br />
* przestrzeń na katalogi domowe użytkowników: 50 TB NFS,<br />
* przestrzeń tymczasowa: 1,1 PB Lustre,<br />
* sieć obliczeniowa: Infiniband FDR, przepływność 56 Gbps (topologia fat-tree, współczynnik blokowania 3:1),<br />
* sieć zarządzania: Ethernet 1G/10G,<br />
* system operacyjny: Linux CentOS 6,<br />
* moc obliczeniowa: 860 TFLOPS.<br />
<br />
Pamięć operacyjna dostępna dla zadań obliczeniowych jest mniejsza niż pamięć zainstalowana fizycznie i wynosi:<br />
* dla węzłów z zainstalowanymi 64 GB pamięci fiz. - 60000 MB,<br />
* dla węzłów z zainstalowanymi 128 GB pamięci fiz. - 125000 MB,<br />
* dla węzłów z zainstalowanymi 512 GB pamięci fiz. - 500000 MB.<br />
<br />
=== Oprogramowanie ===<br />
;Aplikacje<br />
[[Abaqus]], [[ABINIT]], [[ADF]], [[Amber]], [[ANSYS CFX]], [[ANSYS Fluent]], [[Cfour]], [[Comsol]], [[CP2K]], [[CPMD]], [[CRYSTAL09]], [[Dalton]], [[FDS-SMV]], [[GAMESS]], [[Gaussian]], [[Gromacs]], [[LAMMPS]], [[Lumerical]] [&nbsp;[[Lumerical FDTD|FDTD]], [[Lumerical MODE|MODE]]&nbsp;], [[Mathematica]], [[Matlab]], [[Molcas]], [[Molpro]], [[NWChem]], [[Orca]], [[R]], [[Siesta]], [[TURBOMOLE]] i [[Oprogramowanie_naukowe|inne]] oraz aplikacje własne użytkowników.<br />
<br />
;Kompilatory<br />
[[GNU GCC]], [[Intel]], [[PGI]] i [[Oprogramowanie_systemowe_i_narzędziowe|inne]].<br />
<br />
;Biblioteki i narzędzia<br />
* OpenMPI,<br />
* HDF, HDF5,<br />
* NetCDF,<br />
* Python + SciPy + NumPy,<br />
* [[Oprogramowanie_systemowe_i_narzędziowe|pozostałe]].<br />
<br />
;System kolejkowania <br />
[[PBSPro]].<br />
<br />
===Zalecenia===<br />
<br />
Na dysku /home wprowadzone są kwoty dyskowe: domyślny limit wynosi 50 GB. Sprawdzenie stanu:<br />
quota -s -f /home<br />
<br />
Podręcznik systemowy dla polecenia quota:<br />
man quota<br />
<br />
===Zobacz też===<br />
*[[Maszyny obliczeniowe]]<br />
<br />
{{maszyny obliczeniowe}}<br />
<br />
[[Kategoria:Maszyny obliczeniowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5836Jak korzystać z kolejek PBS2018-04-05T11:00:40Z<p>Dzieko: /* Przykłady */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze Bem nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br><br />
Ogólna zasada jest następująca: wszystkie zadania należy zlecać do kolejki '''main''', która w zależności od czasu trwania zadania przekieruje je do kolejki o odpowiednio długim czasie wykonywania. <br><br />
Dla przykładu zadanie o czasie 123h trafi do kolejki shoth168h. Każda z kolejek ma inny priorytet. <br />
W ogólności im krótsza kolejka tym wyższy priorytet. Kolejka normal o maksymalnej długości zadania do 504h ma najniższy priorytet i ograniczone zasoby. <br />
Pozostałe kolejki korzystają ze wszystkich zasobów.<br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. '''chunków''') pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części (chunki) mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** Wielkość pamięci zadeklarowana dla zadania w kolejce powinna być większa (np. o 10%) od wartości zadeklarowanej dla aplikacji w pliku wejściowym. Należy zadbać, aby w pliku wejściowym podana była poprawna wielkość pamięci, wystarczająca do skutecznego wykonania obliczeń dla danego rozmiaru problemu obliczeniowego. Jeśli aplikacja, uruchomiona podczas wykonywania się zadania kolejkowego, spróbuje użyć więcej pamięci niż zostało zadeklarowane dla zadania, to aplikacja zostanie zabita i zadanie zakończy się niepowodzeniem.<br />
** Przykład dla aplikacji [[Gaussian]]:<br />
*** Deklaracja w pliku wejściowym dla obliczeń na 8 procesorach i z wykorzystanie 4GB pamięci:<br />
%nproc=8<br />
%mem=4000MB<br />
*** odpowiednia deklaracja dla zadania kolejkowego:<br />
-l select=1:ncpus=8:mem=4400MB<br />
** domyślnie: 2000 MB per każdy chunk<br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 500 000 MB na 10 węzłach<br />
<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku). Należy skorzystać z tego parametru, kiedy w jednej części alokacji (chunk) chcemy uruchomić jeden lub więcej procesów MPI:<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
** wielkość mpiprocs nigdy nie może być większa niż ncpus w żadnym chunku!<br />
** jeśli aplikacja jest zrównoleglona jedynie przy użyciu MPI i nie korzysta z OpenMP, to wartość mpiprocs powinna być zawsze równa ncpus!<br />
<br />
<br />
Jeśli aplikacja jest zrównoleglona przy użyciu OpenMP, to należy podać liczbę wątków w ramach części alokacji (chunk):<br />
* '''ompthreads''' - liczba wątków (threads)<br />
** domyślnie: równa wartości '''ncpus'''<br />
** maksymalnie: 24 lub 28<br />
** wielkość ompthreads nigdy nie może być większa niż ncpus w żadnym chunku!<br />
<br />
W przypadku aplikacji hybrydowych, korzystających jednocześnie z MPI i OpenMP, wielkość '''ncpus''' w każdym chunku '''musi''' być równa '''mpiprocs * ompthreads''', vide przykłady poniżej.<br />
<br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw. Należy zwrócić uwagę, że w każdym chunku jest fizycznie wymagane 2mpi*12threads=24 rdzenie, dlatego ncpus musi przyjąć właśnie taką wartość:<br />
<br />
<pre><br />
select=4:ncpus=24:mpiprocs=2:ompthreads=12:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
chunk pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
<br />
chunk drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
</pre><br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
<br />
* zawartość skryptu uruchom.sh<br />
<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program <br />
# z PRZEKIEROWANIEM ZAPISYWANIA WYNIKOW -- BARDZO WAZNE<br />
./test1 >& wynik.txt<br />
</source><br />
<br />
* '''Bardzo ważne''': każde polecenie wykonywane w skrypcie zadania '''MUSI''' przekierowywać wyniki drukowane na standardowe wyjścia stdout i stderr do plików w katalogu domowym. Zadania wstawione bez przekierowania będą zabijane bez ostrzeżenia:<br />
./test1 >& wynik.txt<br />
<br />
* wstawienie skryptu<br />
<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
<br />
* zawartość pliku skrypt.sh<br />
<br />
<source lang=bash><br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
# z PRZEKIEROWANIEM ZAPISYWANIA WYNIKOW -- BARDZO WAZNE<br />
./test1 >& wynik.txt<br />
EOF<br />
</source><br />
<br />
* wstawienie zadania:<br />
<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
<br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=GCC&diff=5835GCC2018-03-22T13:30:08Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie systemowe i narzędziowe]] < GCC</small><br />
<br />
'''GCC''' (GNU Compiler Collection) - zestaw kompilatorów GNU, dla języków programowania: C, C++, Objective-C, Fortran, Java, Ada, dostarczający równocześnie bibliotek programistycznych (libstdc++, libgcj,...).<br />
<br />
W skład pakietu wchodzą kompilatory:<br />
*gcc - język C<br />
*g++ - język C++<br />
*f77 lub g77 lub gfortran - Fortran 77<br />
*g90 lub gfortran - Fortran 90<br />
<br />
;Użycie<br />
<br />
Kompilacje należy prowadzić podczas [[Jak_korzystać_z_kolejek_PBS|zadania interaktywnego]] (nie na węźle dostępowym). Po uruchomieniu zadania należy załadować odpowiedni moduł:<br />
module avail gcc<br />
module load gcc/<wybrana_wersja><br />
<br />
Kompilatory dostępne są na [[Maszyny obliczeniowe|serwerach]]:<br />
* [[Bem]]<br />
<br />
<br />
;Linki zewnętrzne<br />
*[http://www.gnu.org/software/gcc/gcc.html Strona domowa pakietu GCC]<br />
<br />
<br />
'''Zobacz też:''' [[Oprogramowanie systemowe i narzędziowe]], [[maszyny obliczeniowe]]<br />
<br />
[[Kategoria:Kompilatory]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Matlab&diff=5834Matlab2018-03-15T12:34:50Z<p>Dzieko: /* Uruchamianie na własnych komputerach */</p>
<hr />
<div>[[Plik:en.jpg|right|link={{PAGENAME}}/en]]<br />
<small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Matlab</small><br />
{{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.}}<br />
{{aplikacja|nazwa=Matlab|logo=[[Grafika:Matlab1.png]]|serwer=[[Bem]]|wersja='''R2017b'''|wersja2=R2016a|serwer2=[[Klaster kampusowy]]|wersja21=R2015a}}<br />
'''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.<br />
<br />
== Informacje ogólne ==<br />
Główne funkcjonalności MATLAB-a:<br />
* obliczenia numeryczne do szybkiego generowania wyników<br />
* grafika do wizualizacji i analizy danych<br />
* interaktywny język i środowisko programistyczne<br />
* narzędzia do budowy własnego GUI<br />
* integracja z zewnętrznymi aplikacjami składającymi się z komponentów C, C++, Fortran, Java, COM, Excel.<br />
* import danych z plików i urządzeń zewnętrznych (dodatkowo dostęp do baz danych i kolejnych urządzeń)<br />
* konwersja aplikacji MATLAB-a na C i C++ przy użyciu kompilatora.<br />
<br />
== Licencja udostępniana przez WCSS ==<br />
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/<br />
Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]]. <br />
<br />
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:<br />
<br />
* '''Matlab''' (30) - pakiet główny<br />
* '''Bioinformatics Toolbox''' (1)<br />
* '''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.<br />
*'''Curve Fitting Toolbox''' (1) - poprzez interfejs graficzny i command-line udostępnia funkcje dla różnych aplikacji typu ''curve-fitting''.<br />
* '''Data Acquisition Toolbox''' (1) - zestaw funkcji M-file i dynamicznych bibliotek (DLL) MEX-file napisanych w oparciu o środowisko obliczeniowe MATLABa.<br />
* '''Spreadsheet Link EX''' (2) - pakiet pozwala na integrację Matlaba z programem Microsoft Excel.<br />
* '''Filter Design HDL Coder''' (1)<br />
* '''Fixed-Point Toolbox''' (1)<br />
* '''Fuzzy Logic Toolbox''' (1) - rozszerza środowisko MATLABa o narzędzia do projektowania systemów opartych o logikę rozmytą. <br />
* '''Global Optimization Toolbox''' (1)<br />
* '''Image Processing Toolbox''' (1) - przetwarzanie obrazów<br />
* '''Neural Network Toolbox''' (10) - projektowanie i symulacja sieci neuronowych<br />
* '''Optimization Toolbox''' (10) - rozszerza środowisko Matlaba o narzędzia i algorytmy do optymalizacji. <br />
* '''Signal Processing Toolbox''' (10) - przetwarzanie sygnałów<br />
* '''DSP System Toolbox''' (6)- symulacja procesów cyfrowej obróbki sygnałów<br />
* '''Simulink''' (30) - interaktywne środowisko przeznaczone do modelowania, symulacji i analizy dynamicznych systemów.<br />
** '''Simulink Design Optimization''' (1) - zawiera także Simulink Response Optimization, interfejs graficzny (GUI) do dostrajania i optymalizowania systemów sterowania i fizycznych.<br />
** '''Simulink Fixed-Point''' (1)<br />
* '''HDL Coder''', dawniej '''Simulink HDL Coder''' (1)<br />
* '''Matlab Coder''' (1) <br />
* '''Matlab Compiler''' (1)<br />
* '''Matlab Compiler SDK''' (1)<br />
* '''Statistics Toolbox''' (1)<br />
* '''Wavelet Toolbox''' (1)<br />
* '''Parallel Computing Toolbox''' (5)<br />
* '''Distributed Computing Engine''' (32)<br />
<br />
Licencje zdezaktualizowane:<br />
* '''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.<br />
* '''Filter Design Toolbox''' (1)<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Uruchamianie na klastrze Bem ==<br />
MATLAB dostępny jest na klastrze [[Bem]] (katalog instalacji odpowiednio: /usr/local/matlab/WERSJA). <br />
<br />
=== Praca interaktywna na klastrze ===<br />
*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]<br />
<br />
*Następnie w celu pracy interaktywnej z aplikacją należy uruchomić zadanie interaktywne w kolejce, z opcją <code>-X</code>, np.:<br />
<br />
> '''qsub -I -X -l walltime=6:00:00'''<br />
<br />
;Środowisko aplikacji<br />
<br />
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.<br />
<br />
Przed użyciem MATLABa należy załadować odpowiedni moduł.<br />
<br />
> '''module load matlab'''<br />
<br />
Powyższe polecenie wczyta domyślną wersję. Można też wybrać konkretną wersję modułu wydając polecenie:<br />
<br />
> '''module load matlab/R2015a'''<br />
> '''module load matlab/R2014b'''<br />
<br />
Aby sprawdzić ustawienia przesyłane do MATLAB-a podczas uruchamiania wystarczy wydać polecenie:<br />
<br />
> '''matlab -n'''<br />
<br />
Aplikacja nie zostanie przy tym uruchomiona.<br />
<br />
;Uruchamianie aplikacji<br />
<br />
Do uruchamiania programu służy polecenie:<br />
<br />
> '''matlab'''<br />
<br />
=== Wstawianie zadań wsadowych do kolejki ===<br />
<br />
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)<br />
<br />
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:<br />
<br />
> sub-matlab<br />
Usage: /usr/local/bin/sub-matlab input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-p cores (default - 1)<br />
-m memory (in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
<br />
<br />
Na przykład<br />
<br />
> sub-matlab test.inp -q main -p 2 -m 4000 -w 2 <br />
<br />
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.<br />
<br />
<br />
'''Uwaga'''<br />
<br />
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).<br />
<br />
'''Zobacz też:''' [[Jak korzystać z kolejek PBS]]?<br />
<br />
== Uruchamianie na infrastrukturze PLATON-U3 ==<br />
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). <br />
<br />
== Uruchamianie na własnych komputerach ==<br />
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]]. <br />
Dostęp do serwera licencji możliwy jest poprzez system [[Korzystanie z VPN|VPN]].<br />
<br />
==== Instalacja na systemach z rodziny Windows ====<br />
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:<br />
<br />
'''SERVER menkar.wcss.pl 0007e905907d 27002'''<br />
'''USE_SERVER'''<br />
<br />
Następnie należy uruchomić instalację i podać kod PLP oraz ścieżkę do pliku licencji na kolejnych etapach instalacji.<br />
<br />
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]].<br />
<br />
==== Instalacja na systemach z rodziny Linux/UNIX ====<br />
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>:<br />
<br />
Shell typu csh (csh, tcsh):<br />
> '''setenv LM_LICENSE_FILE "27002@menkar.wcss.pl" '''<br />
<br />
Shell typu sh (sh, bsh, bash, ksh, ...):<br />
> '''export LM_LICENSE_FILE="27002@menkar.wcss.pl"'''<br />
<br />
Rodzaj shella sprawdzamy przez:<br />
> '''echo $SHELL'''<br />
<br />
Ewentualny test licencji:<br />
> '''scieżka/do/katalogu/instalacji/matlab/etc/lmstat -a -c 27002@menkar.wcss.pl'''<br />
<br />
== Dokumentacja ==<br />
* Dokumentacja ''on-line'' dostępna jest lokalnie po zalogowaniu się na klastrze i [[Nova]] i wydaniu polecenia '''doc''' z poziomu MATLAB-a.<br />
* ''"Komputerowa symulacja układów automatycznej regulacji w środowisku MATLAB/SIMULINK"'' s.132 rw.2005, Łysakowska B., Mzyk G., ISBN: 83-7085-854-6, [http://www.oficyna.pwr.wroc.pl/ Oficyna Wydawnicza PWr] (Cena: 17,90)<br />
*: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.<br />
*''"Programowanie w Matlabie dla elektryków"'' s.215,rw. 2005, Sobierajski M., Łabuzek M., [http://www.oficyna.pwr.wroc.pl/ Oficyna Wydawnicza PWr] (Cena: 22,00) <br />
*: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.<br />
*:;Spis treści: <br />
*::Wstęp<br />
*:# Pierwsze kroki w Matlabie<br />
*:# Podstawowe operacje macierzowe i tablicowe<br />
*:# Tworzenie skryptów i współpraca z plikami danych<br />
*:# Tworzenie plików funkcyjnych<br />
*:# Wykresy w Matlabie<br />
*:# Interfejs graficzny użytkownika<br />
*:# Rozwiązywanie zadań opisanych równaniami różniczkowymi<br />
*:# Współpraca z plikami zewnętrznymi<br />
*:# Rozwiązywanie zadań optymalizacji<br />
*:# Analiza statystyczna pomiarów<br />
*:# Analiza harmonicznych<br />
*:# Równania różniczkowe<br />
*:# Analiza stabilności lokalnej i globalnej<br />
*:# Rozwiązywanie równań różniczkowych z elementami nieliniowymi<br />
*:# Wprowadzenie do Simulinka<br />
*:# Modelowanie równania różniczkowego<br />
*:# Modelowanie układu równań różniczkowych<br />
*:# Grupowanie i maskowanie bloków<br />
*::Literatura<br />
<br />
;MATLAB w sieci<br />
* [http://www.mathworks.com/products/matlab/ Strona domowa MATLABa]<br />
* [http://www.mathworks.com/company/newsletters/articles/gpu-programming-in-matlab.html?s_v1=48010423_1-AUVSR GPU Programming in MATLAB]<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]]<br />
<br />
{{oprogramowanie}}<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Matlab&diff=5833Matlab2018-03-15T12:33:07Z<p>Dzieko: </p>
<hr />
<div>[[Plik:en.jpg|right|link={{PAGENAME}}/en]]<br />
<small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Matlab</small><br />
{{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.}}<br />
{{aplikacja|nazwa=Matlab|logo=[[Grafika:Matlab1.png]]|serwer=[[Bem]]|wersja='''R2017b'''|wersja2=R2016a|serwer2=[[Klaster kampusowy]]|wersja21=R2015a}}<br />
'''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.<br />
<br />
== Informacje ogólne ==<br />
Główne funkcjonalności MATLAB-a:<br />
* obliczenia numeryczne do szybkiego generowania wyników<br />
* grafika do wizualizacji i analizy danych<br />
* interaktywny język i środowisko programistyczne<br />
* narzędzia do budowy własnego GUI<br />
* integracja z zewnętrznymi aplikacjami składającymi się z komponentów C, C++, Fortran, Java, COM, Excel.<br />
* import danych z plików i urządzeń zewnętrznych (dodatkowo dostęp do baz danych i kolejnych urządzeń)<br />
* konwersja aplikacji MATLAB-a na C i C++ przy użyciu kompilatora.<br />
<br />
== Licencja udostępniana przez WCSS ==<br />
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/<br />
Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]]. <br />
<br />
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:<br />
<br />
* '''Matlab''' (30) - pakiet główny<br />
* '''Bioinformatics Toolbox''' (1)<br />
* '''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.<br />
*'''Curve Fitting Toolbox''' (1) - poprzez interfejs graficzny i command-line udostępnia funkcje dla różnych aplikacji typu ''curve-fitting''.<br />
* '''Data Acquisition Toolbox''' (1) - zestaw funkcji M-file i dynamicznych bibliotek (DLL) MEX-file napisanych w oparciu o środowisko obliczeniowe MATLABa.<br />
* '''Spreadsheet Link EX''' (2) - pakiet pozwala na integrację Matlaba z programem Microsoft Excel.<br />
* '''Filter Design HDL Coder''' (1)<br />
* '''Fixed-Point Toolbox''' (1)<br />
* '''Fuzzy Logic Toolbox''' (1) - rozszerza środowisko MATLABa o narzędzia do projektowania systemów opartych o logikę rozmytą. <br />
* '''Global Optimization Toolbox''' (1)<br />
* '''Image Processing Toolbox''' (1) - przetwarzanie obrazów<br />
* '''Neural Network Toolbox''' (10) - projektowanie i symulacja sieci neuronowych<br />
* '''Optimization Toolbox''' (10) - rozszerza środowisko Matlaba o narzędzia i algorytmy do optymalizacji. <br />
* '''Signal Processing Toolbox''' (10) - przetwarzanie sygnałów<br />
* '''DSP System Toolbox''' (6)- symulacja procesów cyfrowej obróbki sygnałów<br />
* '''Simulink''' (30) - interaktywne środowisko przeznaczone do modelowania, symulacji i analizy dynamicznych systemów.<br />
** '''Simulink Design Optimization''' (1) - zawiera także Simulink Response Optimization, interfejs graficzny (GUI) do dostrajania i optymalizowania systemów sterowania i fizycznych.<br />
** '''Simulink Fixed-Point''' (1)<br />
* '''HDL Coder''', dawniej '''Simulink HDL Coder''' (1)<br />
* '''Matlab Coder''' (1) <br />
* '''Matlab Compiler''' (1)<br />
* '''Matlab Compiler SDK''' (1)<br />
* '''Statistics Toolbox''' (1)<br />
* '''Wavelet Toolbox''' (1)<br />
* '''Parallel Computing Toolbox''' (5)<br />
* '''Distributed Computing Engine''' (32)<br />
<br />
Licencje zdezaktualizowane:<br />
* '''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.<br />
* '''Filter Design Toolbox''' (1)<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Uruchamianie na klastrze Bem ==<br />
MATLAB dostępny jest na klastrze [[Bem]] (katalog instalacji odpowiednio: /usr/local/matlab/WERSJA). <br />
<br />
=== Praca interaktywna na klastrze ===<br />
*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]<br />
<br />
*Następnie w celu pracy interaktywnej z aplikacją należy uruchomić zadanie interaktywne w kolejce, z opcją <code>-X</code>, np.:<br />
<br />
> '''qsub -I -X -l walltime=6:00:00'''<br />
<br />
;Środowisko aplikacji<br />
<br />
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.<br />
<br />
Przed użyciem MATLABa należy załadować odpowiedni moduł.<br />
<br />
> '''module load matlab'''<br />
<br />
Powyższe polecenie wczyta domyślną wersję. Można też wybrać konkretną wersję modułu wydając polecenie:<br />
<br />
> '''module load matlab/R2015a'''<br />
> '''module load matlab/R2014b'''<br />
<br />
Aby sprawdzić ustawienia przesyłane do MATLAB-a podczas uruchamiania wystarczy wydać polecenie:<br />
<br />
> '''matlab -n'''<br />
<br />
Aplikacja nie zostanie przy tym uruchomiona.<br />
<br />
;Uruchamianie aplikacji<br />
<br />
Do uruchamiania programu służy polecenie:<br />
<br />
> '''matlab'''<br />
<br />
=== Wstawianie zadań wsadowych do kolejki ===<br />
<br />
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)<br />
<br />
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:<br />
<br />
> sub-matlab<br />
Usage: /usr/local/bin/sub-matlab input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-p cores (default - 1)<br />
-m memory (in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
<br />
<br />
Na przykład<br />
<br />
> sub-matlab test.inp -q main -p 2 -m 4000 -w 2 <br />
<br />
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.<br />
<br />
<br />
'''Uwaga'''<br />
<br />
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).<br />
<br />
'''Zobacz też:''' [[Jak korzystać z kolejek PBS]]?<br />
<br />
== Uruchamianie na infrastrukturze PLATON-U3 ==<br />
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). <br />
<br />
== Uruchamianie na własnych komputerach ==<br />
KDM WCSS umożliwia uruchamianie Matlaba na własnych komputerach przy zdalnym wykorzystaniu licencji udostępnianej przez WCSS. Wymaga to zainstalowania Matlaba w trybie [http://www.mathworks.com/access/helpdesk/help/base/install/pc/ch2_con4.html network installation]. Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]]. <br />
Dostęp do serwera licencji możliwy jest poprzez system [[Korzystanie z VPN|VPN]].<br />
<br />
==== Instalacja na systemach z rodziny Windows ====<br />
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:<br />
<br />
'''SERVER menkar.wcss.pl 0007e905907d 27002'''<br />
'''USE_SERVER'''<br />
<br />
Następnie należy uruchomić instalację i podać kod PLP oraz ścieżkę do pliku licencji na kolejnych etapach instalacji.<br />
<br />
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]].<br />
<br />
==== Instalacja na systemach z rodziny Linux/UNIX ====<br />
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>:<br />
<br />
Shell typu csh (csh, tcsh):<br />
> '''setenv LM_LICENSE_FILE "27002@menkar.wcss.pl" '''<br />
<br />
Shell typu sh (sh, bsh, bash, ksh, ...):<br />
> '''export LM_LICENSE_FILE="27002@menkar.wcss.pl"'''<br />
<br />
Rodzaj shella sprawdzamy przez:<br />
> '''echo $SHELL'''<br />
<br />
Ewentualny test licencji:<br />
> '''scieżka/do/katalogu/instalacji/matlab/etc/lmstat -a -c 27002@menkar.wcss.pl'''<br />
<br />
<br />
<br />
== Dokumentacja ==<br />
* Dokumentacja ''on-line'' dostępna jest lokalnie po zalogowaniu się na klastrze i [[Nova]] i wydaniu polecenia '''doc''' z poziomu MATLAB-a.<br />
* ''"Komputerowa symulacja układów automatycznej regulacji w środowisku MATLAB/SIMULINK"'' s.132 rw.2005, Łysakowska B., Mzyk G., ISBN: 83-7085-854-6, [http://www.oficyna.pwr.wroc.pl/ Oficyna Wydawnicza PWr] (Cena: 17,90)<br />
*: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.<br />
*''"Programowanie w Matlabie dla elektryków"'' s.215,rw. 2005, Sobierajski M., Łabuzek M., [http://www.oficyna.pwr.wroc.pl/ Oficyna Wydawnicza PWr] (Cena: 22,00) <br />
*: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.<br />
*:;Spis treści: <br />
*::Wstęp<br />
*:# Pierwsze kroki w Matlabie<br />
*:# Podstawowe operacje macierzowe i tablicowe<br />
*:# Tworzenie skryptów i współpraca z plikami danych<br />
*:# Tworzenie plików funkcyjnych<br />
*:# Wykresy w Matlabie<br />
*:# Interfejs graficzny użytkownika<br />
*:# Rozwiązywanie zadań opisanych równaniami różniczkowymi<br />
*:# Współpraca z plikami zewnętrznymi<br />
*:# Rozwiązywanie zadań optymalizacji<br />
*:# Analiza statystyczna pomiarów<br />
*:# Analiza harmonicznych<br />
*:# Równania różniczkowe<br />
*:# Analiza stabilności lokalnej i globalnej<br />
*:# Rozwiązywanie równań różniczkowych z elementami nieliniowymi<br />
*:# Wprowadzenie do Simulinka<br />
*:# Modelowanie równania różniczkowego<br />
*:# Modelowanie układu równań różniczkowych<br />
*:# Grupowanie i maskowanie bloków<br />
*::Literatura<br />
<br />
;MATLAB w sieci<br />
* [http://www.mathworks.com/products/matlab/ Strona domowa MATLABa]<br />
* [http://www.mathworks.com/company/newsletters/articles/gpu-programming-in-matlab.html?s_v1=48010423_1-AUVSR GPU Programming in MATLAB]<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]]<br />
<br />
{{oprogramowanie}}<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Matlab&diff=5817Matlab2018-01-25T15:34:07Z<p>Dzieko: </p>
<hr />
<div>[[Plik:en.jpg|right|link={{PAGENAME}}/en]]<br />
<small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Matlab</small><br />
{{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.}}<br />
{{aplikacja|nazwa=Matlab|logo=[[Grafika:Matlab1.png]]|serwer=[[Bem]]|wersja='''R2017b'''|wersja2=R2016a|serwer2=[[Klaster kampusowy]]|wersja21=R2015a}}<br />
'''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.<br />
<br />
== Informacje ogólne ==<br />
Główne funkcjonalności MATLAB-a:<br />
* obliczenia numeryczne do szybkiego generowania wyników<br />
* grafika do wizualizacji i analizy danych<br />
* interaktywny język i środowisko programistyczne<br />
* narzędzia do budowy własnego GUI<br />
* integracja z zewnętrznymi aplikacjami składającymi się z komponentów C, C++, Fortran, Java, COM, Excel.<br />
* import danych z plików i urządzeń zewnętrznych (dodatkowo dostęp do baz danych i kolejnych urządzeń)<br />
* konwersja aplikacji MATLAB-a na C i C++ przy użyciu kompilatora.<br />
<br />
== Licencja udostępniana przez WCSS ==<br />
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/<br />
Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]]. <br />
<br />
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:<br />
<br />
* '''Matlab''' (30) - pakiet główny<br />
* '''Bioinformatics Toolbox''' (1)<br />
* '''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.<br />
*'''Curve Fitting Toolbox''' (1) - poprzez interfejs graficzny i command-line udostępnia funkcje dla różnych aplikacji typu ''curve-fitting''.<br />
* '''Data Acquisition Toolbox''' (1) - zestaw funkcji M-file i dynamicznych bibliotek (DLL) MEX-file napisanych w oparciu o środowisko obliczeniowe MATLABa.<br />
* '''Spreadsheet Link EX''' (2) - pakiet pozwala na integrację Matlaba z programem Microsoft Excel.<br />
* '''Filter Design HDL Coder''' (1)<br />
* '''Fixed-Point Toolbox''' (1)<br />
* '''Fuzzy Logic Toolbox''' (1) - rozszerza środowisko MATLABa o narzędzia do projektowania systemów opartych o logikę rozmytą. <br />
* '''Global Optimization Toolbox''' (1)<br />
* '''Image Processing Toolbox''' (1) - przetwarzanie obrazów<br />
* '''Neural Network Toolbox''' (10) - projektowanie i symulacja sieci neuronowych<br />
* '''Optimization Toolbox''' (10) - rozszerza środowisko Matlaba o narzędzia i algorytmy do optymalizacji. <br />
* '''Signal Processing Toolbox''' (10) - przetwarzanie sygnałów<br />
* '''DSP System Toolbox''' (6)- symulacja procesów cyfrowej obróbki sygnałów<br />
* '''Simulink''' (30) - interaktywne środowisko przeznaczone do modelowania, symulacji i analizy dynamicznych systemów.<br />
** '''Simulink Design Optimization''' (1) - zawiera także Simulink Response Optimization, interfejs graficzny (GUI) do dostrajania i optymalizowania systemów sterowania i fizycznych.<br />
** '''Simulink Fixed-Point''' (1)<br />
* '''HDL Coder''', dawniej '''Simulink HDL Coder''' (1)<br />
* '''Matlab Coder''' (1) <br />
* '''Matlab Compiler''' (1)<br />
* '''Matlab Compiler SDK''' (1)<br />
* '''Statistics Toolbox''' (1)<br />
* '''Wavelet Toolbox''' (1)<br />
* '''Parallel Computing Toolbox''' (5)<br />
* '''Distributed Computing Engine''' (32)<br />
<br />
Licencje zdezaktualizowane:<br />
* '''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.<br />
* '''Filter Design Toolbox''' (1)<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Uruchamianie na klastrze Bem ==<br />
MATLAB dostępny jest na klastrze [[Bem]] (katalog instalacji odpowiednio: /usr/local/matlab/WERSJA). <br />
<br />
=== Praca interaktywna na klastrze ===<br />
*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]<br />
<br />
*Następnie w celu pracy interaktywnej z aplikacją należy uruchomić zadanie interaktywne w kolejce, z opcją <code>-X</code>, np.:<br />
<br />
> '''qsub -I -X -l walltime=6:00:00'''<br />
<br />
;Środowisko aplikacji<br />
<br />
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.<br />
<br />
Przed użyciem MATLABa należy załadować odpowiedni moduł.<br />
<br />
> '''module load matlab'''<br />
<br />
Powyższe polecenie wczyta domyślną wersję. Można też wybrać konkretną wersję modułu wydając polecenie:<br />
<br />
> '''module load matlab/R2015a'''<br />
> '''module load matlab/R2014b'''<br />
<br />
Aby sprawdzić ustawienia przesyłane do MATLAB-a podczas uruchamiania wystarczy wydać polecenie:<br />
<br />
> '''matlab -n'''<br />
<br />
Aplikacja nie zostanie przy tym uruchomiona.<br />
<br />
;Uruchamianie aplikacji<br />
<br />
Do uruchamiania programu służy polecenie:<br />
<br />
> '''matlab'''<br />
<br />
=== Wstawianie zadań wsadowych do kolejki ===<br />
<br />
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)<br />
<br />
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:<br />
<br />
> sub-matlab<br />
Usage: /usr/local/bin/sub-matlab input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-p cores (default - 1)<br />
-m memory (in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
<br />
<br />
Na przykład<br />
<br />
> sub-matlab test.inp -q main -p 2 -m 4000 -w 2 <br />
<br />
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.<br />
<br />
<br />
'''Uwaga'''<br />
<br />
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).<br />
<br />
'''Zobacz też:''' [[Jak korzystać z kolejek PBS]]?<br />
<br />
== Uruchamianie na infrastrukturze PLATON-U3 ==<br />
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). <br />
<br />
== Uruchamianie na własnych komputerach ==<br />
KDM WCSS umożliwia uruchamianie Matlaba na własnych komputerach przy zdalnym wykorzystaniu licencji udostępnianej przez WCSS. Wymaga to zainstalowania Matlaba w trybie [http://www.mathworks.com/access/helpdesk/help/base/install/pc/ch2_con4.html network installation]. Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]]. <br />
Dostęp do serwera licencji możliwy jest poprzez system [[Korzystanie z VPN|VPN]].<br />
<br />
==== Instalacja na systemach z rodziny Windows ====<br />
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:<br />
<br />
'''SERVER menkar.wcss.pl 0007e905907d 27002'''<br />
'''USE_SERVER'''<br />
<br />
Następnie należy uruchomić instalację i podać kod PLP oraz ścieżkę do pliku licencji na kolejnych etapach instalacji.<br />
<br />
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]].<br />
<br />
==== Instalacja na systemach z rodziny Linux/UNIX ====<br />
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>:<br />
<br />
Shell typu csh (csh, tcsh):<br />
> '''setenv LM_LICENSE_FILE "27002@menkar.wcss.pl" '''<br />
<br />
Shell typu sh (sh, bsh, bash, ksh, ...):<br />
> '''export LM_LICENSE_FILE="27002@menkar.wcss.pl"'''<br />
<br />
Rodzaj shella sprawdzamy przez:<br />
> '''echo $SHELL'''<br />
<br />
Ewentualny test licencji:<br />
> '''scieżka/do/katalogu/instalacji/matlab/etc/lmstat -a -c 27002@menkar.wcss.pl'''<br />
<br />
<br />
<br />
== Dokumentacja ==<br />
* Dokumentacja ''on-line'' dostępna jest lokalnie po zalogowaniu się na klastrze i [[Nova]] i wydaniu polecenia '''doc''' z poziomu MATLAB-a.<br />
* ''"Komputerowa symulacja układów automatycznej regulacji w środowisku MATLAB/SIMULINK"'' s.132 rw.2005, Łysakowska B., Mzyk G., ISBN: 83-7085-854-6, [http://www.oficyna.pwr.wroc.pl/ Oficyna Wydawnicza PWr] (Cena: 17,90)<br />
*: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.<br />
*''"Programowanie w Matlabie dla elektryków"'' s.215,rw. 2005, Sobierajski M., Łabuzek M., [http://www.oficyna.pwr.wroc.pl/ Oficyna Wydawnicza PWr] (Cena: 22,00) <br />
*: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.<br />
*:;Spis treści: <br />
*::Wstęp<br />
*:# Pierwsze kroki w Matlabie<br />
*:# Podstawowe operacje macierzowe i tablicowe<br />
*:# Tworzenie skryptów i współpraca z plikami danych<br />
*:# Tworzenie plików funkcyjnych<br />
*:# Wykresy w Matlabie<br />
*:# Interfejs graficzny użytkownika<br />
*:# Rozwiązywanie zadań opisanych równaniami różniczkowymi<br />
*:# Współpraca z plikami zewnętrznymi<br />
*:# Rozwiązywanie zadań optymalizacji<br />
*:# Analiza statystyczna pomiarów<br />
*:# Analiza harmonicznych<br />
*:# Równania różniczkowe<br />
*:# Analiza stabilności lokalnej i globalnej<br />
*:# Rozwiązywanie równań różniczkowych z elementami nieliniowymi<br />
*:# Wprowadzenie do Simulinka<br />
*:# Modelowanie równania różniczkowego<br />
*:# Modelowanie układu równań różniczkowych<br />
*:# Grupowanie i maskowanie bloków<br />
*::Literatura<br />
<br />
;MATLAB w sieci<br />
* [http://www.mathworks.com/products/matlab/ Strona domowa MATLABa]<br />
* [http://vistula.wis.pk.edu.pl/~sciezor/matlab.pdff Podstawy programowania w języku Matlab]<br />
* [http://www.mathworks.com/company/newsletters/articles/gpu-programming-in-matlab.html?s_v1=48010423_1-AUVSR GPU Programming in MATLAB]<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]]<br />
<br />
{{oprogramowanie}}<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=GPGPU&diff=5816GPGPU2018-01-25T15:17:40Z<p>Dzieko: /* Korzystanie z akceleratorów GPGPU w WCSS */</p>
<hr />
<div><br />
== Korzystanie z akceleratorów GPGPU w WCSS ==<br />
<br />
<br />
Klaster [[Bem]] jest wyposażony w węzły obliczeniowe z akceleratorami GPGPU.<br />
<br />
<br />
Konfiguracja każdego węzła:<br />
* dwa procesory Intel Xeon, architektura Skylake, łącznie 24 rdzenie, taktowanie nominalne 2,60 GHz,<br />
* 128 GB pamięci operacyjnej,<br />
* interfejs InfiniBand FDR 56Gbps,<br />
* jedna lub dwie karty NVIDIA Tesla P100,<br />
* na każdym węźle dostępne są te same systemy plików co na wszystkich pozostałych węzłach klastra Bem.<br />
<br />
=== Zlecanie zadań ===<br />
<br />
<br />
Zadania należy zlecać do kolejki "gpu". Dostęp do kolejki zostaje przyznany po złożeniu wniosku w systemie [[Kontakt|pomocy]]. Wnioski są analizowane indywidualnie.<br />
<br />
<br />
Zlecanie zadań wsadowych:<br />
<br />
qsub -q gpu -l select=G:mpiprocs=N:ncpus=N:mem=Mgb:ngpus=1 -l walltime=H:0:0 skrypt-zadania.sh<br />
<br />
Zlecanie zadań interaktywnych:<br />
<br />
qsub -q gpu -l select=G:mpiprocs=N:ncpus=N:mem=Mgb:ngpus=1 -l walltime=H:0:0 -I<br />
<br />
gdzie:<br />
* G - liczba kart GPU,<br />
* N - liczba rdzeni w każdym chunku, jeśli G jest większe niż 1, to N nie może być większe niż 8,<br />
* M - wielkość pamięci w GB w każdym chunku, jeśli G jest większe niż 1, to M nie może być większe niż 8000 MB,<br />
* w każdym przypadku należy ustawiać wartość '''ngpus=1'''. W przeciwnym razie zadanie nigdy nie wystartuje,<br />
* H - czas zadania w godzinach, maksymalnie 168 (7 dni).</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=GPGPU&diff=5815GPGPU2018-01-25T15:16:22Z<p>Dzieko: Utworzono nową stronę " == Korzystanie z akceleratorów GPGPU w WCSS == Klaster Bem jest wyposażony w węzły obliczeniowe z akceleratorami GPGPU. Konfiguracja każdego węzła: * dwa p..."</p>
<hr />
<div><br />
== Korzystanie z akceleratorów GPGPU w WCSS ==<br />
<br />
Klaster [[Bem]] jest wyposażony w węzły obliczeniowe z akceleratorami GPGPU.<br />
<br />
Konfiguracja każdego węzła:<br />
* dwa procesory Intel Xeon, architektura Skylake, łącznie 24 rdzenie, taktowanie nominalne 2,60 GHz,<br />
* 128 GB pamięci operacyjnej,<br />
* interfejs InfiniBand FDR 56Gbps,<br />
* jedna lub dwie karty NVIDIA Tesla P100,<br />
* na każdym węźle dostępne są te same systemy plików co na wszystkich pozostałych węzłach klastra Bem.<br />
<br />
=== Zlecanie zadań ===<br />
<br />
Zadania należy zlecać do kolejki "gpu". Dostęp do kolejki zostaje przyznany po złożeniu wniosku w systemie [[Kontakt|pomocy]]. Wnioski są analizowane indywidualnie.<br />
<br />
<br />
Zlecanie zadań wsadowych:<br />
<br />
qsub -q gpu -l select=G:mpiprocs=N:ncpus=N:mem=Mgb:ngpus=1 -l walltime=H:0:0 skrypt-zadania.sh<br />
<br />
Zlecanie zadań interaktywnych:<br />
<br />
qsub -q gpu -l select=G:mpiprocs=N:ncpus=N:mem=Mgb:ngpus=1 -l walltime=H:0:0 -I<br />
<br />
gdzie:<br />
* G - liczba kart GPU,<br />
* N - liczba rdzeni w każdym chunku, jeśli G jest większe niż 1, to N nie może być większe niż 8,<br />
* M - wielkość pamięci w GB w każdym chunku, jeśli G jest większe niż 1, to M nie może być większe niż 8000 MB,<br />
* w każdym przypadku należy ustawiać wartość '''ngpus=1'''. W przeciwnym razie zadanie nigdy nie wystartuje,<br />
* H - czas zadania w godzinach, maksymalnie 168 (7 dni).</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Abaqus&diff=5814Abaqus2018-01-09T13:31:33Z<p>Dzieko: /* Korzystanie w WCSS */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < ABAQUS</small><br />
<br />
{{aplikacja|nazwa=Abaqus|logo=[[Plik:Ablogo.jpg|center]]|serwer=[[Bem]]|wersja=2017|wersja2=6.14-2|serwer2=[[Klaster kampusowy]] |wersja21=6.14-AP|serwer3=Do pobrania|wersja31=6.14-AP |kontakt=kdm@wcss.pl}}<br />
<br />
'''ABAQUS''' (Abaqus Unified FEA) - pakiet komercyjny dostarczany przez Dassault Systemes, służący do analizy nieliniowej układów z wykorzystaniem metody elementów skończonych w zakresie skomplikowanych badań inżynierskich. Stosowany jest w zagadnieniach mechaniki ciała stałego i płynów oraz do oceny wytrzymałościowej elementów maszyn i konstrukcji z uwzględnieniem obciążenia, temperatury, punktów łączeń, ewentualnych zderzeń i innych warunków środowiskowych. ABAQUS używany jest z powodzeniem podczas badań sejsmicznych i geotechnicznych, w akustyce, w przemyśle samochodowym, itp.<br />
<br />
W styczniu 2015 została zainstalowana wersja '''6.14-AP'''. Od tego dnia starsze wersje nie są dostępne, dotyczy to także dokumentacji.<br />
<br />
Od lutego 2017 dostępna jest również wersja '''2017'''.<br />
<br />
== Informacje ogólne ==<br />
ABAQUS jest obecnie własnością firmy SIMULIA, należącej do Dassault Systèmes. Pakiet dostępny jest na wielu platformach sprzętowych.<br />
<br />
Pakiet ma budowę modułową, co pozwala na dosyć swobodną konfigurację całości w zależności od specyfiki zastosowań. Użytkownik ma ponadto możliwość dopisywania własnych procedur. Podstawowe moduły biblioteczne to:<br />
<br />
*'''ABAQUS/Standard'''<br />
:Jest to moduł ogólnego przeznaczenia do przeprowadzania analiz metodą elementów skończonych. Zawiera wszystkie procedury analizy poza dynamiczną analizą nieliniową stosującą całkowanie równań ruchu metodą jawną. Pakiet napisany jest w języku Fortran. Jego pierwsza wersja powstała w 1978 roku.<br />
*'''ABAQUS/Explicit'''<br />
:Moduł przeznaczony do rozwiązywania zagadnień dynamicznych z użyciem metody jawnej całkowania równań ruchu. Stosowany do analiz przy ekstremalnych obciążeniach mechanicznych, siłowych lub termicznych.<br />
*'''ABAQUS/CAE'''<br />
:CAE (ang. ''Complete ABAQUS Environment'') dostarcza prostego i spójnego interfejsu do tworzenia, zlecania, monitorowania i przetwarzania wyników otrzymanych z symulacji ABAQUS/Standard i ABAQUS/Explicit. Łączy w sobie funkcjonalność preprocesora ABAQUS/Pre i postprocesora ABAQUS/Post ze starszych wersji ABAQUSa.<br />
:Pakiet CAE podzielony jest na moduły, z których każdy definiuje logiczny aspekt procesu tworzenia i analizowania modelu, np. definiowanie geometrii, definiowanie własności materiału. Każdy moduł posiada swój własny zestaw kluczy, parametrów i danych służących do utworzenia pliku wejściowego (z rozszerzeniem <code>.inp</code>) dla modułu obliczeniowego (Standard lub Explicit). Moduł obliczeniowy (ang. ''solver'') czyta plik wejściowy, dokonuje obliczeń podczas których wysyła informacje do CAE pozwalające śledzić postępy, na końcu umieszcza rezultaty w bazie wyników (plik z rozszerzeniem <code>.odb</code>). Wyniki zapisane w bazie można wczytać do CAE i dalej przetwarzać. Jeżeli przewidywany czas obliczeń jest zbyt długi należy opuścić środowisko CAE po utworzeniu pliku wejściowego i posłużyć się poleceniem <code>abaqus</code> do zlecenia obliczeń. Po zakończeniu symulacji można uruchomić CAE ponownie i wczytać bazę modelu (plik z rozszerzeniem <code>.cae</code>) i bazę wyników (plik z rozszerzeniem <code>.odb</code>) w celu wizualizacji układu.<br />
[[Plik:Image001.gif|right|380px|thumb|Tryby równoległej pracy Abaqusa]]<br />
Abaqus umożliwia równoległe wykonywanie obliczeń w trybach MPI i wątków (threads). Schemat prezentuje możliwe tryby równoległej pracy Abaqusa dla różnych jego modułów.<br />
<br />
== Licencja ==<br />
Licencje zakupione przez WCSS są dostępne '''wyłącznie do badań'''.<br />
*Do nauki można otrzymać wersję Abaqus Student Edition <br />
http://www.budsoft.com.pl/abaqusFEA/abaqus-dla-studentow<br />
*Do obliczeń komercyjnych należy zakupić odpowiednią licencję z własnych środków.<br />
<br />
WCSS posiada '''35''' tokenów licencyjnych współdzielonych przez pakiety Standard, Explicit, Foundation, Aqua, Design, CFD, AMS, Euler Lagrange, Multiphysics, CSE, Cosim Acusolve, Cosim Direct. Tokeny są współdzielone przez wszystkich użytkowników ABAQUSa w WCSS.<br />
<br />
Każde zadanie ABAQUSa zabiera 5 tokenów licencji oraz 1 token za każdy dodatkowy procesor, tak więc można np. uruchomić alternatywnie:<br />
<br />
* 7 zadań jednoprocesorowych: 7*5 tokenów = 35 tokenów, 7 CPU<br />
* 3 zadania 7-procesorowe: 3*(5+6) = 33 tokeny, 21 CPU<br />
<br />
Innym ograniczeniem jest liczba licencji CAE, w 2015 roku jest to '''4'''.<br />
<br />
Liczbę dostępnych tokenów można sprawdzić wykonując polecenie na serwerze z zainstalowanym pakietem:<br />
<br />
> abaqus licensing -ru<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
=== Umowa Użytkownika Akademickiego ===<br />
Użytkownik licencji Abaqus podpisuje Umowę Użytkownika Akademickiego (będącą załącznikiem A do Umowy Licencyjnej). Tekst oryginalny w języku angielskim, dostępne jest polskie tłumaczenie.<br />
<br />
== Korzystanie w WCSS ==<br />
W [[WCSS]] ABAQUS dostępny jest na klastrze [[Bem]] oraz na [[klaster kampusowy|klastrze kampusowym PLATON U3]]. Zaleca się, aby obliczenia długotrwałe uruchamiać na Bemie.<br />
<br />
<br />
Najlepszym sposobem na korzystanie z interfejsu graficznego programu ABAQUS jest zalogowanie się za pomocą protokołu NX na maszynę ui.wcss.pl. Służy do tego klient [[Jak korzystać z NoMachine|NoMachine]].<br />
<br />
=== Bem ===<br />
Na klastrze [[Bem]] dostępna jest wersja 6.14-2 oraz 2017. Instalacja umożliwia równoległe wykonywanie obliczeń w trybie wątków (threads) oraz uruchomienie interfejsu graficznego CAE.<br />
<br />
===== Środowisko i praca interaktywna =====<br />
Interfejs graficzny CAE można uruchomić w kolejce jako zadanie interaktywne:<br />
> qsub -X -I -l walltime=4:00:00<br />
> module load abaqus<br />
> abaqus cae<br />
<br />
Krótki opis jak wywoływać polecenia ABAQUSa dostępny jest po wydaniu komendy:<br />
> abaqus help<br />
<br />
===== Uruchamianie zadań w kolejce =====<br />
Obliczeniowe zadania pakietu ABAQUS należy uruchamiać korzystając z dostępnego skryptu sub-abaqus-6.14 <br />
<br />
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:<br />
> sub-abaqus<br />
Usage: /usr/local/bin/sub-abaqus input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-p cores (default - 1)<br />
-m memory (in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
-j job_name<br />
<br />
Na przykład<br />
<br />
> sub-abaqus test.inp -q main -p 2 -m 4000 -w 2 -j job_name<br />
<br />
Zadanie uruchomione zostanie na 2 rdzeniach, wymaga 4000 MB RAM (po 2000 MB na proces), walltime zadania jest równy 2 godziny.<br />
<br />
<br />
'''Uwaga'''<br />
<br />
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).<br />
<br />
Jeśli istnieje potrzeba wstawienia zadania do kolejki własnym skryptem poprzez polecenie '''qsub''', to bezwzględnie należy ustawić wymaganą liczbę licencji (Feature: abaqus), przykład dla 4 licencji:<br />
> qsub -l abaqus=4 <pozostałe opcje dla qsub><br />
<br />
===== Środowisko i praca interaktywna =====<br />
Na klastrze Bem interfejs graficzny CAE można uruchomić w kolejce jako zadanie interaktywne.<br />
<br />
Do uruchomiania aplikacji w zadaniu interaktywnym służą następujące polecenia:<br />
> qsub -I -X -l walltime=06:00:00 -N Abaqus_6.14-2<br />
> module load abaqus<br />
> abaqus cae<br />
<br />
Krótki opis jak wywoływać polecenia ABAQUSa dostępny jest po wydaniu komendy:<br />
> abaqus help<br />
<br />
<br />
Jak uzyskać informacje o kolejkach dostępnych na klastrze Bem opisano w artykule [[Konfiguracja kolejek PBS]].<br />
<br />
=== Klaster kampusowy ===<br />
Aby korzystać z aplikacji w infrastrukturze PLATON U3 w WCSS wymagana jest rejestracja w [https://wcss.cloud.pionier.net.pl/ portalu].<br />
<br />
== Korzystanie na własnym komputerze ==<br />
Zarejestrowany użytkownik WCSS może zainstalować oprogramowanie Abaqus na własnym komputerze i zdalnie korzystać z licencji udostępnianej przez WCSS. Dostęp do serwera licencji możliwy jest poprzez system [[Korzystanie z VPN|VPN]]. Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]]<br />
<br />
=== Dostęp do serwera licencji ===<br />
Podczas instalacji jako adres serwera licencji należy podać:<br />
<br />
'''27000@menkar.wcss.pl'''<br />
<br />
Gdyby zachodziła konieczność zmiany tej informacji już po instalacji programu, to można to zrobić edytując plik '''abaqus_v6.env''', który należy wyszukać w katalogu instalacji (dokładna lokalizacja może być różna dla różnych wersji). Adres serwera licencji podany jest tam jako wartość parametru '''abaquslm_license_file''', np.<br />
<br />
'''abaquslm_license_file="27000@menkar.wcss.pl"'''<br />
<br />
<br />
== Dokumentacja ==<br />
* [http://www.3ds.com Strona domowa Dassault Systemes]<br />
* [http://www.3ds.com/products/simulia/portfolio/abaqus/overview/ Opis produktu na stronie producenta]<br />
* [http://www.budsoft.com.pl/ Strona przedstawiciela ABAQUSa w Polsce]<br />
<br />
=== Publikacje wprowadzające do MES ===<br />
* Wiesław Śródka, "[http://www.dbc.wroc.pl/Content/970/srodka.pdf Trzy lekcje metody elementów skończonych: materiały pomocnicze do przedmiotu wytrzymałość materiałów]", Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 2004.<br />
* E. Rusiński, J. Czmochowski, T. Smolnicki, "[http://www.dbc.wroc.pl/dlibra/docmetadata?id=462 Zaawansowana metoda elementów skończonych w konstrukcjach nośnych]", Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 2000.<br />
<br />
<br />
{{oprogramowanie}}<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Bem&diff=5813Bem2018-01-09T10:36:35Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Maszyny obliczeniowe]] < Bem</small><br />
<!--{{note|Przerwa serwisowa klastra: 17 sierpnia - 21 sierpnia 2015}}--><br />
{{serwer<br />
|nazwa=Bem<br />
|zdjęcie=bem.jpg<br />
|admini=kdm@wcss.pl<br />
}}<br />
'''Bem''' - klaster zainstalowany w [[WCSS]] w marcu 2015 r. Architektura wszystkich komputerów to x86_64 z procesorami Intel Xeon (mikroarchitektura Haswell).<br />
<br />
=== Parametry klastra ===<br />
<br />
* węzeł dostępowy dla użytkowników lokalnych KDM WCSS: '''bem.wcss.pl''',<br />
* węzeł dostępowy dla użytkowników PL-Grid: '''ui.wcss.pl''',<br />
* 688 węzłów obliczeniowych 24-rdzeniowych z 64 GB pamięci oper. (Intel Xeon E5-2670 v3 2.3 GHz, Haswell),<br />
* 32 węzły obliczeniowe 24-rdzeniowe ze 128 GB pamięci oper. (Intel Xeon E5-2670 v3 2.3 GHz, Haswell),<br />
* 182 węzły obliczeniowe 28-rdzeniowe ze 128 GB pamięci oper. (Intel Xeon E5-2697 v3 2.6 GHz, Haswell),<br />
* 10 węzłów obliczeniowych 28-rdzeniowych z 512 GB pamięci oper. (Intel Xeon E5-2697 v3 2.6 GHz, Haswell),<br />
* 22 656 rdzeni obliczeniowych,<br />
* 74,6 TB pamięci RAM,<br />
* przestrzeń na katalogi domowe użytkowników: 50 TB NFS,<br />
* przestrzeń tymczasowa: 1,1 PB Lustre,<br />
* sieć obliczeniowa: Infiniband FDR, przepływność 56 Gbps (topologia fat-tree, współczynnik blokowania 3:1),<br />
* sieć zarządzania: Ethernet 1G/10G,<br />
* system operacyjny: Linux CentOS 6,<br />
* moc obliczeniowa: 860 TFLOPS.<br />
<br />
=== Oprogramowanie ===<br />
;Aplikacje<br />
[[Abaqus]], [[ABINIT]], [[ADF]], [[Amber]], [[ANSYS CFX]], [[ANSYS Fluent]], [[Cfour]], [[Comsol]], [[CP2K]], [[CPMD]], [[CRYSTAL09]], [[Dalton]], [[FDS-SMV]], [[GAMESS]], [[Gaussian]], [[Gromacs]], [[LAMMPS]], [[Lumerical]] [&nbsp;[[Lumerical FDTD|FDTD]], [[Lumerical MODE|MODE]]&nbsp;], [[Mathematica]], [[Matlab]], [[Molcas]], [[Molpro]], [[NWChem]], [[Orca]], [[R]], [[Siesta]], [[TURBOMOLE]] i [[Oprogramowanie_naukowe|inne]] oraz aplikacje własne użytkowników.<br />
<br />
;Kompilatory<br />
[[GNU GCC]], [[Intel]], [[PGI]] i [[Oprogramowanie_systemowe_i_narzędziowe|inne]].<br />
<br />
;Biblioteki i narzędzia<br />
* OpenMPI,<br />
* HDF, HDF5,<br />
* NetCDF,<br />
* Python + SciPy + NumPy,<br />
* [[Oprogramowanie_systemowe_i_narzędziowe|pozostałe]].<br />
<br />
;System kolejkowania <br />
[[PBSPro]].<br />
<br />
===Zalecenia===<br />
<br />
* na dysku /home wprowadzone zostały kwoty dyskowe: limit 50GB; sprawdzenie stanu:<br />
quota<br />
opis systemu kwot:<br />
man quota<br />
<br />
===Zobacz też===<br />
*[[Maszyny obliczeniowe]]<br />
<br />
{{maszyny obliczeniowe}}<br />
<br />
[[Kategoria:Maszyny obliczeniowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Archiwizacja_danych&diff=5812Archiwizacja danych2018-01-05T13:00:07Z<p>Dzieko: /* Pakowanie i kompresja */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Dostęp do KDM]] < Archiwizacja danych</small><br />
{{toc-right}}<br />
Jeżeli użytkownik [[KDM]] potrzebuje miejsca na przechowywanie dużej ilości danych, powinien w tym celu skorzystać z archiwum. Dostęp do archiwum mają wszyscy użytkownicy klastra [[Bem]]. <br />
<br />
System archiwizacji automatycznie tworzy kopie zapasowe plików składowanych w archiwum, z maksymalną częstotliwością trzy razy na dobę. Częstotliwość jest regulowana przez administratorów.<br />
<br />
Dane z archiwum są automatycznie przenoszone na robota taśmowego, bez zmiany sposobu dostępu dla użytkownika. Jedyną różnicą po przeniesieniu pliku na robota taśmowego może być wydłużenie czasu dostępu do niego. Dlatego odczytywanie pliku z archiwum może potrwać nawet kilkadziesiąt minut (w zależności od jego wielkości), w tym czasie plik, jeśli został wcześniej zarchiwizowany, jest automatycznie przywracany i udostępniany w odpowiednim katalogu archiwum użytkownika. <br />
<br />
{{uwaga2|Regulamin korzystania:<br />
* Użytkownik może archiwizować wyłącznie dane wejściowe, pośrednie i końcowe używane do obliczeń realizowanych jedynie na komputerach KDM WCSS - archiwizowanie innych danych używanych prywatnie, służbowo i w innych centrach KDM jest zabronione.<br />
* Zabronione jest zapełnianie katalogu /archiwum w 100%. Prowadzi to do przeciążenia systemu archiwizacji. Należy nadzorować swoje operacje na plikach w sposób ciągły, aby nie doprowadzić do przepełnienia.<br />
* Zabronione jest składowanie plików mniejszych niż 50 megabajtów ze względu na fakt że obsługa wielu małych plików prowadzi do przeciążenia systemu archiwizacji.<br />
* Zabronione jest zmienianie nazw plików i katalogów po skopiowaniu na archiwizator.}}<br />
<br />
=== Dostęp do archiwum ===<br />
<br />
Korzystanie z archiwum na klastrze [[Bem]] odbywa się za pośrednictwem dedykowanego węzła '''archiwum.wcss.pl'''. Z tego węzła użytkownik ma dostęp do katalogu domowego i swojego katalogu na roboczym systemie plików. Aby przenieść swoje dane z katalogu domowego lub tymczasowego do/z archiwum należy zalogować się na ten węzeł i wykonać potrzebne operacje na danych. <br />
<br />
* Logowanie na węzeł archiwum (ten sam login i hasło jak na klaster Bem):<br />
ssh archiwum.wcss.pl<br />
<br />
Po zalogowaniu archiwum dostępne jest jako katalog o nazwie '''/archiwum/$USER'''. Katalog ten jest prywatnym archiwum użytkownika, niedostępnym dla innych użytkowników.<br />
<br />
=== Operacje na plikach ===<br />
Korzystanie z archiwum nie różni się od korzystania ze zwykłego katalogu na dysku. <br />
<br />
===== Archiwizacja danych =====<br />
Aby przenieść dane do archiwum wystarczy je skopiować, np. dla użytkownika <code>user1</code>:<br />
<br />
Sprawdzenie zawartości katalogu osobistego:<br />
ls /archiwum/user1/ <br />
<br />
Skopiowanie pliku:<br />
cp plik.txt /archiwum/user1/<br />
<br />
Po skopiowaniu pliku należy usunąć go z dotychczasowej lokalizacji (/home lub /lustre/scratch), aby zwolnić miejsce zajmowane przez niego na dysku, np:<br />
rm plik.txt<br />
<br />
Przeniesienie (skopiowanie i skasowanie w jednym kroku):<br />
mv plik.txt /archiwum/user1/<br />
<br />
===== Przywracanie danych =====<br />
Aby ponownie skorzystać z pliku wystarczy skopiować go do swojego katalogu w przestrzeni /home lub /lustre/scratch, np:<br />
<br />
ls /archiwum/user1/ <br />
cp /archiwum/user1/plik.txt /home/user1/<br />
ls /home/user1/plik.txt<br />
<br />
Jeżeli nie ma potrzeby przechowywania pliku w archiwum, można go stamtąd usunąć, np:<br />
<br />
rm /archiwum/user1/plik.txt<br />
<br />
=== Pakowanie i kompresja ===<br />
Jeśli użytkownik posiada wiele małych plików, które chce przenieść do archiwum, należy je spakować razem i skompresować (kompresja bezstratna). Można to zrobić z wykorzystaniem poleceń <code>tar</code> lub <code>zip</code>.<br />
<br />
===== Pakowanie i kompresja - TAR =====<br />
Pakowanie i kompresowanie większej liczby małych plików w paczki TAR:<br />
<br />
tar czvf nazwa_paczki.tar.gz <lista plikow do spakowania><br />
<br />
Rozpakowywanie narzędziem TAR:<br />
<br />
tar xzvf nazwa_paczki.tar.gz [<opcjonalna lista plikow do rozpakowania>]<br />
<br />
Sprawdzanie zawartości archiwum TAR:<br />
<br />
tar tzvf nazwa_paczki.tar.gz<br />
<br />
===== Pakowanie i kompresja - ZIP =====<br />
Pakowanie i kompresowanie większej liczby małych plików w paczki ZIP:<br />
<br />
zip -r9 nazwa_paczki.zip <lista plikow do spakowania><br />
<br />
Rozpakowywanie narzędziem ZIP:<br />
<br />
unzip nazwa_paczki.zip [<opcjonalna lista plikow do rozpakowania>]<br />
<br />
Sprawdzanie zawartości archiwum ZIP:<br />
<br />
zipinfo nazwa_paczki.zip<br />
<br />
<br />
Zobacz też: [[Dostępna przestrzeń dyskowa]]<br />
<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Archiwizacja_danych&diff=5811Archiwizacja danych2018-01-05T12:59:34Z<p>Dzieko: /* Operacje na plikach */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Dostęp do KDM]] < Archiwizacja danych</small><br />
{{toc-right}}<br />
Jeżeli użytkownik [[KDM]] potrzebuje miejsca na przechowywanie dużej ilości danych, powinien w tym celu skorzystać z archiwum. Dostęp do archiwum mają wszyscy użytkownicy klastra [[Bem]]. <br />
<br />
System archiwizacji automatycznie tworzy kopie zapasowe plików składowanych w archiwum, z maksymalną częstotliwością trzy razy na dobę. Częstotliwość jest regulowana przez administratorów.<br />
<br />
Dane z archiwum są automatycznie przenoszone na robota taśmowego, bez zmiany sposobu dostępu dla użytkownika. Jedyną różnicą po przeniesieniu pliku na robota taśmowego może być wydłużenie czasu dostępu do niego. Dlatego odczytywanie pliku z archiwum może potrwać nawet kilkadziesiąt minut (w zależności od jego wielkości), w tym czasie plik, jeśli został wcześniej zarchiwizowany, jest automatycznie przywracany i udostępniany w odpowiednim katalogu archiwum użytkownika. <br />
<br />
{{uwaga2|Regulamin korzystania:<br />
* Użytkownik może archiwizować wyłącznie dane wejściowe, pośrednie i końcowe używane do obliczeń realizowanych jedynie na komputerach KDM WCSS - archiwizowanie innych danych używanych prywatnie, służbowo i w innych centrach KDM jest zabronione.<br />
* Zabronione jest zapełnianie katalogu /archiwum w 100%. Prowadzi to do przeciążenia systemu archiwizacji. Należy nadzorować swoje operacje na plikach w sposób ciągły, aby nie doprowadzić do przepełnienia.<br />
* Zabronione jest składowanie plików mniejszych niż 50 megabajtów ze względu na fakt że obsługa wielu małych plików prowadzi do przeciążenia systemu archiwizacji.<br />
* Zabronione jest zmienianie nazw plików i katalogów po skopiowaniu na archiwizator.}}<br />
<br />
=== Dostęp do archiwum ===<br />
<br />
Korzystanie z archiwum na klastrze [[Bem]] odbywa się za pośrednictwem dedykowanego węzła '''archiwum.wcss.pl'''. Z tego węzła użytkownik ma dostęp do katalogu domowego i swojego katalogu na roboczym systemie plików. Aby przenieść swoje dane z katalogu domowego lub tymczasowego do/z archiwum należy zalogować się na ten węzeł i wykonać potrzebne operacje na danych. <br />
<br />
* Logowanie na węzeł archiwum (ten sam login i hasło jak na klaster Bem):<br />
ssh archiwum.wcss.pl<br />
<br />
Po zalogowaniu archiwum dostępne jest jako katalog o nazwie '''/archiwum/$USER'''. Katalog ten jest prywatnym archiwum użytkownika, niedostępnym dla innych użytkowników.<br />
<br />
=== Operacje na plikach ===<br />
Korzystanie z archiwum nie różni się od korzystania ze zwykłego katalogu na dysku. <br />
<br />
===== Archiwizacja danych =====<br />
Aby przenieść dane do archiwum wystarczy je skopiować, np. dla użytkownika <code>user1</code>:<br />
<br />
Sprawdzenie zawartości katalogu osobistego:<br />
ls /archiwum/user1/ <br />
<br />
Skopiowanie pliku:<br />
cp plik.txt /archiwum/user1/<br />
<br />
Po skopiowaniu pliku należy usunąć go z dotychczasowej lokalizacji (/home lub /lustre/scratch), aby zwolnić miejsce zajmowane przez niego na dysku, np:<br />
rm plik.txt<br />
<br />
Przeniesienie (skopiowanie i skasowanie w jednym kroku):<br />
mv plik.txt /archiwum/user1/<br />
<br />
===== Przywracanie danych =====<br />
Aby ponownie skorzystać z pliku wystarczy skopiować go do swojego katalogu w przestrzeni /home lub /lustre/scratch, np:<br />
<br />
ls /archiwum/user1/ <br />
cp /archiwum/user1/plik.txt /home/user1/<br />
ls /home/user1/plik.txt<br />
<br />
Jeżeli nie ma potrzeby przechowywania pliku w archiwum, można go stamtąd usunąć, np:<br />
<br />
rm /archiwum/user1/plik.txt<br />
<br />
=== Pakowanie i kompresja ===<br />
Jeśli użytkownik posiada wiele małych plików, które chce przenieść do archiwum, należy je spakować razem i skompresować (kompresja bezstratna). Można to zrobić z wykorzystaniem poleceń <code>tar</code> lub <code>zip</code>.<br />
<br />
===== Pakowanie i kompresja - TAR =====<br />
Pakowanie i kompresowanie większej liczby małych plików w paczki TAR:<br />
<br />
> tar czvf nazwa_paczki.tar.gz <lista plikow do spakowania><br />
<br />
Rozpakowywanie narzędziem TAR:<br />
<br />
> tar xzvf nazwa_paczki.tar.gz [<opcjonalna lista plikow do rozpakowania>]<br />
<br />
Sprawdzanie zawartości archiwum TAR:<br />
<br />
> tar tzvf nazwa_paczki.tar.gz<br />
<br />
===== Pakowanie i kompresja - ZIP =====<br />
Pakowanie i kompresowanie większej liczby małych plików w paczki ZIP:<br />
<br />
> zip -r9 nazwa_paczki.zip <lista plikow do spakowania><br />
<br />
Rozpakowywanie narzędziem ZIP:<br />
<br />
> unzip nazwa_paczki.zip [<opcjonalna lista plikow do rozpakowania>]<br />
<br />
Sprawdzanie zawartości archiwum ZIP:<br />
<br />
> zipinfo nazwa_paczki.zip<br />
<br />
<br />
Zobacz też: [[Dostępna przestrzeń dyskowa]]<br />
<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Archiwizacja_danych&diff=5810Archiwizacja danych2018-01-05T12:59:16Z<p>Dzieko: /* Przywracanie danych */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Dostęp do KDM]] < Archiwizacja danych</small><br />
{{toc-right}}<br />
Jeżeli użytkownik [[KDM]] potrzebuje miejsca na przechowywanie dużej ilości danych, powinien w tym celu skorzystać z archiwum. Dostęp do archiwum mają wszyscy użytkownicy klastra [[Bem]]. <br />
<br />
System archiwizacji automatycznie tworzy kopie zapasowe plików składowanych w archiwum, z maksymalną częstotliwością trzy razy na dobę. Częstotliwość jest regulowana przez administratorów.<br />
<br />
Dane z archiwum są automatycznie przenoszone na robota taśmowego, bez zmiany sposobu dostępu dla użytkownika. Jedyną różnicą po przeniesieniu pliku na robota taśmowego może być wydłużenie czasu dostępu do niego. Dlatego odczytywanie pliku z archiwum może potrwać nawet kilkadziesiąt minut (w zależności od jego wielkości), w tym czasie plik, jeśli został wcześniej zarchiwizowany, jest automatycznie przywracany i udostępniany w odpowiednim katalogu archiwum użytkownika. <br />
<br />
{{uwaga2|Regulamin korzystania:<br />
* Użytkownik może archiwizować wyłącznie dane wejściowe, pośrednie i końcowe używane do obliczeń realizowanych jedynie na komputerach KDM WCSS - archiwizowanie innych danych używanych prywatnie, służbowo i w innych centrach KDM jest zabronione.<br />
* Zabronione jest zapełnianie katalogu /archiwum w 100%. Prowadzi to do przeciążenia systemu archiwizacji. Należy nadzorować swoje operacje na plikach w sposób ciągły, aby nie doprowadzić do przepełnienia.<br />
* Zabronione jest składowanie plików mniejszych niż 50 megabajtów ze względu na fakt że obsługa wielu małych plików prowadzi do przeciążenia systemu archiwizacji.<br />
* Zabronione jest zmienianie nazw plików i katalogów po skopiowaniu na archiwizator.}}<br />
<br />
=== Dostęp do archiwum ===<br />
<br />
Korzystanie z archiwum na klastrze [[Bem]] odbywa się za pośrednictwem dedykowanego węzła '''archiwum.wcss.pl'''. Z tego węzła użytkownik ma dostęp do katalogu domowego i swojego katalogu na roboczym systemie plików. Aby przenieść swoje dane z katalogu domowego lub tymczasowego do/z archiwum należy zalogować się na ten węzeł i wykonać potrzebne operacje na danych. <br />
<br />
* Logowanie na węzeł archiwum (ten sam login i hasło jak na klaster Bem):<br />
ssh archiwum.wcss.pl<br />
<br />
Po zalogowaniu archiwum dostępne jest jako katalog o nazwie '''/archiwum/$USER'''. Katalog ten jest prywatnym archiwum użytkownika, niedostępnym dla innych użytkowników.<br />
<br />
=== Operacje na plikach ===<br />
Korzystanie z archiwum nie różni się od korzystania ze zwykłego katalogu na dysku. <br />
<br />
===== Archiwizacja danych =====<br />
Aby przenieść dane do archiwum wystarczy je skopiować, np. dla użytkownika <code>user1</code>:<br />
<br />
* Sprawdzenie zawartości katalogu osobistego:<br />
ls /archiwum/user1/ <br />
<br />
* Skopiowanie pliku:<br />
cp plik.txt /archiwum/user1/<br />
<br />
* Po skopiowaniu pliku należy usunąć go z dotychczasowej lokalizacji (/home lub /lustre/scratch), aby zwolnić miejsce zajmowane przez niego na dysku, np:<br />
rm plik.txt<br />
<br />
* Przeniesienie (skopiowanie i skasowanie w jednym kroku):<br />
mv plik.txt /archiwum/user1/<br />
<br />
===== Przywracanie danych =====<br />
Aby ponownie skorzystać z pliku wystarczy skopiować go do swojego katalogu w przestrzeni /home lub /lustre/scratch, np:<br />
<br />
ls /archiwum/user1/ <br />
cp /archiwum/user1/plik.txt /home/user1/<br />
ls /home/user1/plik.txt<br />
<br />
Jeżeli nie ma potrzeby przechowywania pliku w archiwum, można go stamtąd usunąć, np:<br />
<br />
rm /archiwum/user1/plik.txt<br />
<br />
=== Pakowanie i kompresja ===<br />
Jeśli użytkownik posiada wiele małych plików, które chce przenieść do archiwum, należy je spakować razem i skompresować (kompresja bezstratna). Można to zrobić z wykorzystaniem poleceń <code>tar</code> lub <code>zip</code>.<br />
<br />
===== Pakowanie i kompresja - TAR =====<br />
Pakowanie i kompresowanie większej liczby małych plików w paczki TAR:<br />
<br />
> tar czvf nazwa_paczki.tar.gz <lista plikow do spakowania><br />
<br />
Rozpakowywanie narzędziem TAR:<br />
<br />
> tar xzvf nazwa_paczki.tar.gz [<opcjonalna lista plikow do rozpakowania>]<br />
<br />
Sprawdzanie zawartości archiwum TAR:<br />
<br />
> tar tzvf nazwa_paczki.tar.gz<br />
<br />
===== Pakowanie i kompresja - ZIP =====<br />
Pakowanie i kompresowanie większej liczby małych plików w paczki ZIP:<br />
<br />
> zip -r9 nazwa_paczki.zip <lista plikow do spakowania><br />
<br />
Rozpakowywanie narzędziem ZIP:<br />
<br />
> unzip nazwa_paczki.zip [<opcjonalna lista plikow do rozpakowania>]<br />
<br />
Sprawdzanie zawartości archiwum ZIP:<br />
<br />
> zipinfo nazwa_paczki.zip<br />
<br />
<br />
Zobacz też: [[Dostępna przestrzeń dyskowa]]<br />
<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Archiwizacja_danych&diff=5809Archiwizacja danych2018-01-05T12:58:42Z<p>Dzieko: /* Dostęp do archiwum */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Dostęp do KDM]] < Archiwizacja danych</small><br />
{{toc-right}}<br />
Jeżeli użytkownik [[KDM]] potrzebuje miejsca na przechowywanie dużej ilości danych, powinien w tym celu skorzystać z archiwum. Dostęp do archiwum mają wszyscy użytkownicy klastra [[Bem]]. <br />
<br />
System archiwizacji automatycznie tworzy kopie zapasowe plików składowanych w archiwum, z maksymalną częstotliwością trzy razy na dobę. Częstotliwość jest regulowana przez administratorów.<br />
<br />
Dane z archiwum są automatycznie przenoszone na robota taśmowego, bez zmiany sposobu dostępu dla użytkownika. Jedyną różnicą po przeniesieniu pliku na robota taśmowego może być wydłużenie czasu dostępu do niego. Dlatego odczytywanie pliku z archiwum może potrwać nawet kilkadziesiąt minut (w zależności od jego wielkości), w tym czasie plik, jeśli został wcześniej zarchiwizowany, jest automatycznie przywracany i udostępniany w odpowiednim katalogu archiwum użytkownika. <br />
<br />
{{uwaga2|Regulamin korzystania:<br />
* Użytkownik może archiwizować wyłącznie dane wejściowe, pośrednie i końcowe używane do obliczeń realizowanych jedynie na komputerach KDM WCSS - archiwizowanie innych danych używanych prywatnie, służbowo i w innych centrach KDM jest zabronione.<br />
* Zabronione jest zapełnianie katalogu /archiwum w 100%. Prowadzi to do przeciążenia systemu archiwizacji. Należy nadzorować swoje operacje na plikach w sposób ciągły, aby nie doprowadzić do przepełnienia.<br />
* Zabronione jest składowanie plików mniejszych niż 50 megabajtów ze względu na fakt że obsługa wielu małych plików prowadzi do przeciążenia systemu archiwizacji.<br />
* Zabronione jest zmienianie nazw plików i katalogów po skopiowaniu na archiwizator.}}<br />
<br />
=== Dostęp do archiwum ===<br />
<br />
Korzystanie z archiwum na klastrze [[Bem]] odbywa się za pośrednictwem dedykowanego węzła '''archiwum.wcss.pl'''. Z tego węzła użytkownik ma dostęp do katalogu domowego i swojego katalogu na roboczym systemie plików. Aby przenieść swoje dane z katalogu domowego lub tymczasowego do/z archiwum należy zalogować się na ten węzeł i wykonać potrzebne operacje na danych. <br />
<br />
* Logowanie na węzeł archiwum (ten sam login i hasło jak na klaster Bem):<br />
ssh archiwum.wcss.pl<br />
<br />
Po zalogowaniu archiwum dostępne jest jako katalog o nazwie '''/archiwum/$USER'''. Katalog ten jest prywatnym archiwum użytkownika, niedostępnym dla innych użytkowników.<br />
<br />
=== Operacje na plikach ===<br />
Korzystanie z archiwum nie różni się od korzystania ze zwykłego katalogu na dysku. <br />
<br />
===== Archiwizacja danych =====<br />
Aby przenieść dane do archiwum wystarczy je skopiować, np. dla użytkownika <code>user1</code>:<br />
<br />
* Sprawdzenie zawartości katalogu osobistego:<br />
ls /archiwum/user1/ <br />
<br />
* Skopiowanie pliku:<br />
cp plik.txt /archiwum/user1/<br />
<br />
* Po skopiowaniu pliku należy usunąć go z dotychczasowej lokalizacji (/home lub /lustre/scratch), aby zwolnić miejsce zajmowane przez niego na dysku, np:<br />
rm plik.txt<br />
<br />
* Przeniesienie (skopiowanie i skasowanie w jednym kroku):<br />
mv plik.txt /archiwum/user1/<br />
<br />
===== Przywracanie danych =====<br />
Aby ponownie skorzystać z pliku wystarczy skopiować go do swojego katalogu w przestrzeni /home lub /lustre/scratch, np:<br />
<br />
> cp /archiwum/user1/plik.txt /home/user1/<br />
> ls /home/user1/plik.txt<br />
<br />
Jeżeli nie ma potrzeby przechowywania pliku w archiwum, można go stamtąd usunąć, np:<br />
<br />
> ls /archiwum/user1/<br />
plik.txt<br />
> rm /archiwum/user1/plik.txt <br />
<br />
=== Pakowanie i kompresja ===<br />
Jeśli użytkownik posiada wiele małych plików, które chce przenieść do archiwum, należy je spakować razem i skompresować (kompresja bezstratna). Można to zrobić z wykorzystaniem poleceń <code>tar</code> lub <code>zip</code>.<br />
<br />
===== Pakowanie i kompresja - TAR =====<br />
Pakowanie i kompresowanie większej liczby małych plików w paczki TAR:<br />
<br />
> tar czvf nazwa_paczki.tar.gz <lista plikow do spakowania><br />
<br />
Rozpakowywanie narzędziem TAR:<br />
<br />
> tar xzvf nazwa_paczki.tar.gz [<opcjonalna lista plikow do rozpakowania>]<br />
<br />
Sprawdzanie zawartości archiwum TAR:<br />
<br />
> tar tzvf nazwa_paczki.tar.gz<br />
<br />
===== Pakowanie i kompresja - ZIP =====<br />
Pakowanie i kompresowanie większej liczby małych plików w paczki ZIP:<br />
<br />
> zip -r9 nazwa_paczki.zip <lista plikow do spakowania><br />
<br />
Rozpakowywanie narzędziem ZIP:<br />
<br />
> unzip nazwa_paczki.zip [<opcjonalna lista plikow do rozpakowania>]<br />
<br />
Sprawdzanie zawartości archiwum ZIP:<br />
<br />
> zipinfo nazwa_paczki.zip<br />
<br />
<br />
Zobacz też: [[Dostępna przestrzeń dyskowa]]<br />
<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Archiwizacja_danych&diff=5808Archiwizacja danych2018-01-05T12:57:48Z<p>Dzieko: /* Archiwizacja danych */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Dostęp do KDM]] < Archiwizacja danych</small><br />
{{toc-right}}<br />
Jeżeli użytkownik [[KDM]] potrzebuje miejsca na przechowywanie dużej ilości danych, powinien w tym celu skorzystać z archiwum. Dostęp do archiwum mają wszyscy użytkownicy klastra [[Bem]]. <br />
<br />
System archiwizacji automatycznie tworzy kopie zapasowe plików składowanych w archiwum, z maksymalną częstotliwością trzy razy na dobę. Częstotliwość jest regulowana przez administratorów.<br />
<br />
Dane z archiwum są automatycznie przenoszone na robota taśmowego, bez zmiany sposobu dostępu dla użytkownika. Jedyną różnicą po przeniesieniu pliku na robota taśmowego może być wydłużenie czasu dostępu do niego. Dlatego odczytywanie pliku z archiwum może potrwać nawet kilkadziesiąt minut (w zależności od jego wielkości), w tym czasie plik, jeśli został wcześniej zarchiwizowany, jest automatycznie przywracany i udostępniany w odpowiednim katalogu archiwum użytkownika. <br />
<br />
{{uwaga2|Regulamin korzystania:<br />
* Użytkownik może archiwizować wyłącznie dane wejściowe, pośrednie i końcowe używane do obliczeń realizowanych jedynie na komputerach KDM WCSS - archiwizowanie innych danych używanych prywatnie, służbowo i w innych centrach KDM jest zabronione.<br />
* Zabronione jest zapełnianie katalogu /archiwum w 100%. Prowadzi to do przeciążenia systemu archiwizacji. Należy nadzorować swoje operacje na plikach w sposób ciągły, aby nie doprowadzić do przepełnienia.<br />
* Zabronione jest składowanie plików mniejszych niż 50 megabajtów ze względu na fakt że obsługa wielu małych plików prowadzi do przeciążenia systemu archiwizacji.<br />
* Zabronione jest zmienianie nazw plików i katalogów po skopiowaniu na archiwizator.}}<br />
<br />
=== Dostęp do archiwum ===<br />
Korzystanie z archiwum na klastrze [[Bem]] odbywa się za pośrednictwem dedykowanego węzła '''archiwum.wcss.pl'''. Z tego węzła użytkownik ma dostęp do katalogu domowego i swojego katalogu na roboczym systemie plików. Aby przenieść swoje dane z katalogu domowego lub tymczasowego do/z archiwum należy zalogować się na ten węzeł i wykonać potrzebne operacje na danych. <br />
<br />
* Można zalogować się bezpośrednio na węzeł archiwum (ten sam login i hasło jak na klaster Bem):<br />
> ssh archiwum.wcss.pl<br />
<br />
* lub najpierw na węzeł dostępowy klastra Bem, a następnie na węzeł archiwum:<br />
> ssh login@bem.wcss.pl<br />
bem> ssh archiwum.wcss.pl<br />
<br />
Po zalogowaniu archiwum dostępne jest jako katalog o nazwie '''/archiwum/$USER'''. Katalog ten jest prywatnym archiwum użytkownika, niedostępnym dla innych użytkowników.<br />
<br />
=== Operacje na plikach ===<br />
Korzystanie z archiwum nie różni się od korzystania ze zwykłego katalogu na dysku. <br />
<br />
===== Archiwizacja danych =====<br />
Aby przenieść dane do archiwum wystarczy je skopiować, np. dla użytkownika <code>user1</code>:<br />
<br />
* Sprawdzenie zawartości katalogu osobistego:<br />
ls /archiwum/user1/ <br />
<br />
* Skopiowanie pliku:<br />
cp plik.txt /archiwum/user1/<br />
<br />
* Po skopiowaniu pliku należy usunąć go z dotychczasowej lokalizacji (/home lub /lustre/scratch), aby zwolnić miejsce zajmowane przez niego na dysku, np:<br />
rm plik.txt<br />
<br />
* Przeniesienie (skopiowanie i skasowanie w jednym kroku):<br />
mv plik.txt /archiwum/user1/<br />
<br />
===== Przywracanie danych =====<br />
Aby ponownie skorzystać z pliku wystarczy skopiować go do swojego katalogu w przestrzeni /home lub /lustre/scratch, np:<br />
<br />
> cp /archiwum/user1/plik.txt /home/user1/<br />
> ls /home/user1/plik.txt<br />
<br />
Jeżeli nie ma potrzeby przechowywania pliku w archiwum, można go stamtąd usunąć, np:<br />
<br />
> ls /archiwum/user1/<br />
plik.txt<br />
> rm /archiwum/user1/plik.txt <br />
<br />
=== Pakowanie i kompresja ===<br />
Jeśli użytkownik posiada wiele małych plików, które chce przenieść do archiwum, należy je spakować razem i skompresować (kompresja bezstratna). Można to zrobić z wykorzystaniem poleceń <code>tar</code> lub <code>zip</code>.<br />
<br />
===== Pakowanie i kompresja - TAR =====<br />
Pakowanie i kompresowanie większej liczby małych plików w paczki TAR:<br />
<br />
> tar czvf nazwa_paczki.tar.gz <lista plikow do spakowania><br />
<br />
Rozpakowywanie narzędziem TAR:<br />
<br />
> tar xzvf nazwa_paczki.tar.gz [<opcjonalna lista plikow do rozpakowania>]<br />
<br />
Sprawdzanie zawartości archiwum TAR:<br />
<br />
> tar tzvf nazwa_paczki.tar.gz<br />
<br />
===== Pakowanie i kompresja - ZIP =====<br />
Pakowanie i kompresowanie większej liczby małych plików w paczki ZIP:<br />
<br />
> zip -r9 nazwa_paczki.zip <lista plikow do spakowania><br />
<br />
Rozpakowywanie narzędziem ZIP:<br />
<br />
> unzip nazwa_paczki.zip [<opcjonalna lista plikow do rozpakowania>]<br />
<br />
Sprawdzanie zawartości archiwum ZIP:<br />
<br />
> zipinfo nazwa_paczki.zip<br />
<br />
<br />
Zobacz też: [[Dostępna przestrzeń dyskowa]]<br />
<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Bem&diff=5807Bem2018-01-04T15:42:52Z<p>Dzieko: /* Parametry klastra */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Maszyny obliczeniowe]] < Bem</small><br />
<!--{{note|Przerwa serwisowa klastra: 17 sierpnia - 21 sierpnia 2015}}--><br />
{{serwer<br />
|nazwa=Bem<br />
|zdjęcie=bem.jpg<br />
|admini=kdm@wcss.pl<br />
}}<br />
'''Bem''' - klaster zainstalowany w [[WCSS]] w marcu 2015 r. Architektura wszystkich komputerów to x86_64 z procesorami Intel Xeon E5-2670v3 (mikroarchitektura Haswell).<br />
<br />
=== Parametry klastra ===<br />
<br />
* węzeł dostępowy: '''bem.wcss.pl''',<br />
* 688 węzłów obliczeniowych 24-rdzeniowych z 64 GB pamięci oper. (Intel Xeon E5-2670 v3 2.3 GHz, Haswell),<br />
* 32 węzły obliczeniowe 24-rdzeniowe ze 128 GB pamięci oper. (Intel Xeon E5-2670 v3 2.3 GHz, Haswell),<br />
* 182 węzły obliczeniowe 28-rdzeniowe ze 128 GB pamięci oper. (Intel Xeon E5-2697 v3 2.6 GHz, Haswell),<br />
* 10 węzłów obliczeniowych 28-rdzeniowych z 512 GB pamięci oper. (Intel Xeon E5-2697 v3 2.6 GHz, Haswell),<br />
* 22 656 rdzeni obliczeniowych,<br />
* 74,6 TB pamięci RAM,<br />
* przestrzeń na katalogi domowe użytkowników: 11 TB NFS /home, <br />
* przestrzeń tymczasowa: 1,1 PB Lustre,<br />
* sieć obliczeniowa: Infiniband FDR, przepływność 56 Gbps (topologia fat-tree, współczynnik blokowania 3:1),<br />
* sieć zarządzania: Ethernet 1G/10G,<br />
* system operacyjny: CentOS 6.8,<br />
* moc obliczeniowa: 860 TFLOPS.<br />
<br />
=== Oprogramowanie ===<br />
;Aplikacje<br />
[[Abaqus]], [[ABINIT]], [[ADF]], [[Amber]], [[ANSYS CFX]], [[ANSYS Fluent]], [[Cfour]], [[Comsol]], [[CP2K]], [[CPMD]], [[CRYSTAL09]], [[Dalton]], [[FDS-SMV]], [[GAMESS]], [[Gaussian]], [[Gromacs]], [[LAMMPS]], [[Lumerical]] [&nbsp;[[Lumerical FDTD|FDTD]], [[Lumerical MODE|MODE]]&nbsp;], [[Mathematica]], [[Matlab]], [[Molcas]], [[Molpro]], [[NWChem]], [[Orca]], [[R]], [[Siesta]], [[TURBOMOLE]] i [[Oprogramowanie_naukowe|inne]] oraz aplikacje własne użytkowników.<br />
<br />
;Kompilatory<br />
[[GNU GCC]], [[Intel]], [[PGI]] i [[Oprogramowanie_systemowe_i_narzędziowe|inne]].<br />
<br />
;Biblioteki i narzędzia<br />
* OpenMPI,<br />
* HDF, HDF5,<br />
* NetCDF,<br />
* Python + SciPy + NumPy,<br />
* [[Oprogramowanie_systemowe_i_narzędziowe|pozostałe]].<br />
<br />
;System kolejkowania <br />
[[PBSPro]].<br />
<br />
===Zalecenia===<br />
<br />
* na dysku /home wprowadzone zostały kwoty dyskowe: limit 50GB; sprawdzenie stanu:<br />
quota<br />
opis systemu kwot:<br />
man quota<br />
<br />
===Zobacz też===<br />
*[[Maszyny obliczeniowe]]<br />
<br />
{{maszyny obliczeniowe}}<br />
<br />
[[Kategoria:Maszyny obliczeniowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5806Jak korzystać z kolejek PBS2017-12-13T12:16:12Z<p>Dzieko: /* Zasoby */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze Bem nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br><br />
Ogólna zasada jest następująca: wszystkie zadania należy zlecać do kolejki '''main''', która w zależności od czasu trwania zadania przekieruje je do kolejki o odpowiednio długim czasie wykonywania. <br><br />
Dla przykładu zadanie o czasie 123h trafi do kolejki shoth168h. Każda z kolejek ma inny priorytet. <br />
W ogólności im krótsza kolejka tym wyższy priorytet. Kolejka normal o maksymalnej długości zadania do 504h ma najniższy priorytet i ograniczone zasoby. <br />
Pozostałe kolejki korzystają ze wszystkich zasobów.<br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. '''chunków''') pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części (chunki) mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** Wielkość pamięci zadeklarowana dla zadania w kolejce powinna być większa (np. o 10%) od wartości zadeklarowanej dla aplikacji w pliku wejściowym. Należy zadbać, aby w pliku wejściowym podana była poprawna wielkość pamięci, wystarczająca do skutecznego wykonania obliczeń dla danego rozmiaru problemu obliczeniowego. Jeśli aplikacja, uruchomiona podczas wykonywania się zadania kolejkowego, spróbuje użyć więcej pamięci niż zostało zadeklarowane dla zadania, to aplikacja zostanie zabita i zadanie zakończy się niepowodzeniem.<br />
** Przykład dla aplikacji [[Gaussian]]:<br />
*** Deklaracja w pliku wejściowym dla obliczeń na 8 procesorach i z wykorzystanie 4GB pamięci:<br />
%nproc=8<br />
%mem=4000MB<br />
*** odpowiednia deklaracja dla zadania kolejkowego:<br />
-l select=1:ncpus=8:mem=4400MB<br />
** domyślnie: 2000 MB per każdy chunk<br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 500 000 MB na 10 węzłach<br />
<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku). Należy skorzystać z tego parametru, kiedy w jednej części alokacji (chunk) chcemy uruchomić jeden lub więcej procesów MPI:<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
** wielkość mpiprocs nigdy nie może być większa niż ncpus w żadnym chunku!<br />
** jeśli aplikacja jest zrównoleglona jedynie przy użyciu MPI i nie korzysta z OpenMP, to wartość mpiprocs powinna być zawsze równa ncpus!<br />
<br />
<br />
Jeśli aplikacja jest zrównoleglona przy użyciu OpenMP, to należy podać liczbę wątków w ramach części alokacji (chunk):<br />
* '''ompthreads''' - liczba wątków (threads)<br />
** domyślnie: równa wartości '''ncpus'''<br />
** maksymalnie: 24 lub 28<br />
** wielkość ompthreads nigdy nie może być większa niż ncpus w żadnym chunku!<br />
<br />
W przypadku aplikacji hybrydowych, korzystających jednocześnie z MPI i OpenMP, wielkość '''ncpus''' w każdym chunku '''musi''' być równa '''mpiprocs * ompthreads''', vide przykłady poniżej.<br />
<br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw. Należy zwrócić uwagę, że w każdym chunku jest fizycznie wymagane 2mpi*12threads=24 rdzenie, dlatego ncpus musi przyjąć właśnie taką wartość:<br />
<br />
<pre><br />
select=4:ncpus=24:mpiprocs=2:ompthreads=12:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
chunk pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
<br />
chunk drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
</pre><br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
* zawartość skryptu uruchom.sh<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
</source><br />
* wstawienie skryptu<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
* zawartość pliku skrypt.sh<br />
<source lang=bash><br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
EOF<br />
</source><br />
* wstawienie zadania:<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5805Jak korzystać z kolejek PBS2017-12-13T12:14:29Z<p>Dzieko: /* Zasoby */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze Bem nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br><br />
Ogólna zasada jest następująca: wszystkie zadania należy zlecać do kolejki '''main''', która w zależności od czasu trwania zadania przekieruje je do kolejki o odpowiednio długim czasie wykonywania. <br><br />
Dla przykładu zadanie o czasie 123h trafi do kolejki shoth168h. Każda z kolejek ma inny priorytet. <br />
W ogólności im krótsza kolejka tym wyższy priorytet. Kolejka normal o maksymalnej długości zadania do 504h ma najniższy priorytet i ograniczone zasoby. <br />
Pozostałe kolejki korzystają ze wszystkich zasobów.<br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. '''chunków''') pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części (chunki) mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** Wielkość pamięci zadeklarowana dla zadania w kolejce powinna być większa (np. o 10%) od wartości zadeklarowanej dla aplikacji w pliku wejściowym. Należy zadbać, aby w pliku wejściowym podana była poprawna wielkość pamięci, wystarczająca do skutecznego wykonania obliczeń dla danego rozmiaru problemu obliczeniowego. Jeśli aplikacja, uruchomiona podczas wykonywania się zadania kolejkowego, spróbuje użyć więcej pamięci niż zostało zadeklarowane dla zadania, to aplikacja zostanie zabita i zadanie zakończy się niepowodzeniem.<br />
** Przykład dla aplikacji [[Gaussian]]:<br />
*** Deklaracja w pliku wejściowym dla obliczeń na 8 procesorach i z wykorzystanie 4GB pamięci:<br />
%nproc=8<br />
%mem=4GB<br />
*** odpowiednia deklaracja dla zadania kolejkowego:<br />
-l select=1:ncpus=8:mem=4400MB<br />
** domyślnie: 2000 MB per każdy chunk<br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 500 000 MB na 10 węzłach<br />
<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku). Należy skorzystać z tego parametru, kiedy w jednej części alokacji (chunk) chcemy uruchomić jeden lub więcej procesów MPI:<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
** wielkość mpiprocs nigdy nie może być większa niż ncpus w żadnym chunku!<br />
** jeśli aplikacja jest zrównoleglona jedynie przy użyciu MPI i nie korzysta z OpenMP, to wartość mpiprocs powinna być zawsze równa ncpus!<br />
<br />
<br />
Jeśli aplikacja jest zrównoleglona przy użyciu OpenMP, to należy podać liczbę wątków w ramach części alokacji (chunk):<br />
* '''ompthreads''' - liczba wątków (threads)<br />
** domyślnie: równa wartości '''ncpus'''<br />
** maksymalnie: 24 lub 28<br />
** wielkość ompthreads nigdy nie może być większa niż ncpus w żadnym chunku!<br />
<br />
W przypadku aplikacji hybrydowych, korzystających jednocześnie z MPI i OpenMP, wielkość '''ncpus''' w każdym chunku '''musi''' być równa '''mpiprocs * ompthreads''', vide przykłady poniżej.<br />
<br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw. Należy zwrócić uwagę, że w każdym chunku jest fizycznie wymagane 2mpi*12threads=24 rdzenie, dlatego ncpus musi przyjąć właśnie taką wartość:<br />
<br />
<pre><br />
select=4:ncpus=24:mpiprocs=2:ompthreads=12:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
chunk pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
<br />
chunk drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
</pre><br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
* zawartość skryptu uruchom.sh<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
</source><br />
* wstawienie skryptu<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
* zawartość pliku skrypt.sh<br />
<source lang=bash><br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
EOF<br />
</source><br />
* wstawienie zadania:<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=ANSYS_ICEM_CFD&diff=5804ANSYS ICEM CFD2017-11-29T10:39:34Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < [[ANSYS CFD]] < ANSYS ICEM CFD</small><br />
<br />
{{aplikacja|nazwa=ANSYS ICEM CFD|logo=[[Plik:Ansys_logo.gif]]|serwer=[[Bem]] |wersja=18.2 |serwer2=Do pobrania |wersja21=18.2}}<br />
'''ANSYS ICEM CFD''' - oprogramowanie firmy ANSYS. Jest częścią pakietu ''[[ANSYS CFD]]'', który zawiera także solver [[ANSYS Fluent|Fluent]], [[ANSYS CFX|CFX]] i środowisko ''Workbench 2''.<br />
<br />
Użytkownicy ANSYS CFD mają obowiązek złożyć do dnia 15 czerwca każdego roku sprawozdania z wykorzystania oprogramowania w przeciągu ostatniego roku.<br />
<br />
== Licencja ==<br />
ICEM CFD jest częścią pakietu [[ANSYS|Ansys Academic Multiphysics Campus Solution]], gdzie opisana jest licencja i dostępna liczba żetonów.<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Korzystanie w WCSS ==<br />
ANSYS ICEM CFD jest zainstalowany na klastrze [[Bem]] i [[Supernova]] (wersja badawcza).<br />
<br />
Aby ustawić środowisko aplikacji należy załadować moduł poleceniem (wersja domyślna):<br />
$ module load cfx<br />
<br />
== Instalacja na własnym komputerze ==<br />
Istnieje możliwość zainstalowania aplikacji na swoim komputerze w celu pracy nad przygotowywaniem modelów do dalszych obliczeń wsadowych. Należy w tej sprawie skontaktować się z administratorami. <br />
<br />
== Dokumentacja ==<br />
* [http://www.ansys.com/Products/Other+Products/ANSYS+ICEM+CFD Strona produktu] w [http://www.ansys.com serwisie producenta]<br />
<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=ANSYS_ICEM_CFD&diff=5803ANSYS ICEM CFD2017-11-29T10:38:02Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < [[ANSYS CFD]] < ANSYS ICEM CFD</small><br />
{{aplikacja|nazwa=ANSYS ICEM CFD|logo=[[Plik:Ansys_logo.gif]]|serwer=[[Bem]] |wersja=16.2 |serwer2=[[Supernova]]|wersja21=16.2 |wersja22=15.0 |wersja23=14.5|serwer3=Do pobrania |wersja31=16.2}}<br />
'''ANSYS ICEM CFD''' - oprogramowanie firmy ANSYS. Jest częścią pakietu ''[[ANSYS CFD]]'', który zawiera także solver [[ANSYS Fluent|Fluent]], [[ANSYS CFX|CFX]] i środowisko ''Workbench 2''.<br />
<br />
Użytkownicy ANSYS CFD mają obowiązek złożyć do dnia 15 czerwca każdego roku sprawozdania z wykorzystania oprogramowania w przeciągu ostatniego roku.<br />
<br />
== Licencja ==<br />
ICEM CFD jest częścią pakietu [[ANSYS|Ansys Academic Multiphysics Campus Solution]], gdzie opisana jest licencja i dostępna liczba żetonów.<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Korzystanie w WCSS ==<br />
ANSYS ICEM CFD jest zainstalowany na klastrze [[Bem]] i [[Supernova]] (wersja badawcza).<br />
<br />
Aby ustawić środowisko aplikacji należy załadować moduł poleceniem (wersja domyślna):<br />
$ module load cfx<br />
<br />
== Instalacja na własnym komputerze ==<br />
Istnieje możliwość zainstalowania aplikacji na swoim komputerze w celu pracy nad przygotowywaniem modelów do dalszych obliczeń wsadowych. Należy w tej sprawie skontaktować się z administratorami. <br />
<br />
== Dokumentacja ==<br />
* [http://www.ansys.com/Products/Other+Products/ANSYS+ICEM+CFD Strona produktu] w [http://www.ansys.com serwisie producenta]<br />
<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=ANSYS_CFX&diff=5802ANSYS CFX2017-11-29T10:30:53Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < [[ANSYS CFD]] < ANSYS CFX</small><br />
{{aplikacja|nazwa=ANSYS CFX|logo=[[Plik:Ansys_logo.gif]]|serwer=[[Bem]]|wersja=18.2 |serwer2=[[Supernova]] |wersja21=16.2 |wersja22=15.0 |wersja23=14.5 |wersja24=13.0| serwer3=[[Klaster kampusowy]] |wersja32=13.0 |wersja31=14.5 |serwer4=Do pobrania |wersja41=16.2}}<br />
'''ANSYS CFX''' - solver CFX jest częścią pakietu ''[[ANSYS CFD|Ansys Academic Research CFD]]'', który zawiera także solver [[ANSYS Fluent|Fluent]] i środowisko ''Workbench 2''.<br />
<br />
Użytkownicy ANSYS CFD mają obowiązek złożyć do dnia 15 czerwca każdego roku sprawozdania z wykorzystania oprogramowania w przeciągu ostatniego roku.<br />
<br />
== Licencja ==<br />
CFX jest częścią pakietu [[ANSYS CFD]], gdzie opisana jest licencja i dostępna liczba żetonów.<br />
<br />
== Korzystanie w WCSS ==<br />
CFX jest zainstalowany na klastrze [[Bem]] oraz na [[klaster kampusowy|klastrze kampusowym PLATON U3]] (wersja edukacyjna).<br />
<br />
=== Bem ===<br />
CFX zainstalowany jest w wersji sekwencyjnej i równoległej w katalogu: <code>/usr/local/ansys_inc/WERSJA/CFX/ </code><br />
<br />
Do wstawiania zadań obliczeniowych do kolejki należy korzystać z gotowych skryptów:<br />
sub-cfx-18.2 <br />
Uzycie: /usr/local/bin/sub-cfx-18.2 [opcje] plik.def<br />
gdzie opcje to:<br />
-n liczba_rdzeni (domyslnie 1)<br />
-m ilosc_pamieci_na_rdzen_w_MB (domyslnie 1800)<br />
-o ilosc_pamieci_dla_pierwszego_rdzenia (brak domyslnej wartosci, uzywane tylko gdy liczba rdzeni > 1)<br />
-i plik_cont.res<br />
-q kolejka (domyslnie main)<br />
-w walltime (domyslnie 504 h)<br />
<br />
Aby skorzystać z graficznego środowiska Workbench należy zalogować się na klaster z [[przekierowanie wyświetlania|przekierowaniem wyświetlania]], uruchomić [[Jak_korzystać_z_kolejek_PBS#Uruchomienie zadania interaktywnego|zadanie interaktywne]] i wydać polecenie:<br />
> module load cfx/18.2<br />
> runwb2<br />
{{Podziękowanie_WCSS}}<br />
<br />
=== Klaster kampusowy ===<br />
Aby korzystać z aplikacji w infrastrukturze PLATON U3 w WCSS wymagana jest rejestracja w [https://wcss.cloud.pionier.net.pl/ portalu]. Następnie można założyć rezerwację pakietu w wersji dydaktycznej (ANSYS v.13.0) lub badawczej (ANSYS v.14.5).<br />
<br />
== Instalacja na własnym komputerze ==<br />
Istnieje możliwość zainstalowania CFX (wersja badawcza) na swoim komputerze. Należy w tej sprawie skontaktować się z administratorami ([[kontakt]]).<br />
<br />
== Dokumentacja ==<br />
* [http://www.ansys.com/Products/Simulation+Technology/Fluid+Dynamics/ANSYS+CFX Strona produktu] w [http://www.ansys.com serwisie producenta]<br />
<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=ANSYS_Fluent&diff=5801ANSYS Fluent2017-11-29T10:27:40Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < [[ANSYS CFD]] < ANSYS Fluent</small><br />
{{aplikacja|nazwa=ANSYS Fluent|logo=[[Plik:Ansys_logo.gif]]|serwer=[[Bem]] |wersja=18.2 |serwer2=[[Klaster kampusowy]] |wersja22=13.0 |wersja21=14.5 |serwer3=Do pobrania |wersja31=16.2 }}<br />
'''ANSYS Fluent''' - oprogramowanie do obliczeniowej mechaniki płynów. Od 2010 r. solver Fluent jest częścią pakietu ''[[ANSYS CFD|Ansys Academic Research CFD]]'', który zawiera także solver [[ANSYS CFX|CFX]] i środowisko ''Workbench 2''.<br />
<br />
Użytkownicy ANSYS CFD mają obowiązek złożyć do dnia 15 czerwca każdego roku sprawozdania z wykorzystania oprogramowania w przeciągu ostatniego roku.<br />
<br />
== Licencja ==<br />
Fluent jest częścią pakietu [[ANSYS|Ansys Academic Multiphysics Campus Solution]], gdzie opisana jest licencja i dostępna liczba żetonów.<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Korzystanie w WCSS ==<br />
ANSYS Fluent jest zainstalowany na klastrze [[Bem]] (wersja badawcza) oraz na [[klaster kampusowy|klastrze kampusowym PLATON U3]] (wersja edukacyjna).<br />
<br />
=== Bem ===<br />
Fluent jest zainstalowany w wersji równoległej na klastrze [[Bem]]. Aby ustawić środowisko aplikacji należy załadować moduł poleceniem:<br />
$ module load fluent/18.2<br />
<br />
<!--<br />
==== Inicjalizacja licencji ====<br />
'''Uwaga:''' Przed pierwszym uruchomieniem aplikacji każdy użytkownik musi mieć ustawione środowisko do pobierania licencji. Może zwrócić się z prośbą do administratorów o ustawienie środowiska lub zrobić to samodzielnie. Wystarczy po zalogowaniu się na swoje konto, uruchomić program ANSYSLIC_ADMIN Utility:<br />
ssh -X supernova.wcss.wroc.pl<br />
/usr/local/ansys_inc/shared_files/licensing/lic_admin/anslic_admin<br />
Następnie należy wybrać opcję "Set License Preferences for User", a w kolejnym oknie wersję oprogramowania. W następnym oknie w sekcji "Global Settings" należy zaznaczyć opcję "Use Academic Licenses", i po zaznaczeniu (kliknięciu) pliku licencji na liście dostępnych licencji, wcisnąć przycisk "OK". <br />
--><br />
==== Uruchamianie aplikacji ====<br />
Fluent może działać w trybie interaktywnym lub wsadowym. Zalecane jest, aby trybu interaktywnego używać do zdefiniowania modelu, krótkich testów oraz postprocessingu, natomiast obliczenia przeprowadzać wsadowo. Tryb wsadowy wymaga przygotowania pliku z danymi modelu i poleceniami programu, co można wykonać z poziomu GUI.<br />
<br />
===== Interfejs graficzny =====<br />
Aby skorzystać z GUI Fluenta na klastrze Supernova należy:<br />
# Zalogować się na serwer z [[przekierowanie wyświetlania|przekierowanie wyświetlania]]<br />
#: <pre> > ssh -X login@bem.wcss.pl</pre><br />
# Uruchomić zadanie interaktywne w systemie kolejkowania (najlepiej w kolejce short6h, która ma wysoki priorytet, więc zadanie uruchomi się możliwie najszybciej)<br />
#: <pre> > qsub -X -I -l software=Fluent </pre><br />
# Ustawić środowisko<br />
#: <pre> > module load fluent/15.0</pre><br />
# Uruchomić aplikację lub środowisko Workbench<br />
#: <pre> > fluent</pre><br />
#:Jako argumenty polecenia można podać z jaką dokładnością mają być przeprowadzane obliczenia (domyślnie pojedyncza precyzja, możliwe jest ustawienie podwójnej precyzji - <code>dp</code>) oraz wymiar przestrzenny modelu (<code>2d, 3d</code>). <br />
#:<br />
#:Przykład: Uruchomienie Fluenta z podwójną precyzją i modelem w 3D:<br />
#: <pre>> fluent 3ddp</pre><br />
<br />
===== Interfejs tekstowy =====<br />
Aby skorzystać z interfejsu tekstowego w trybie konwersacyjnym należy uruchomić zadanie interaktywne i wydać polecenie:<br />
> module load fluent/18.2<br />
> fluent -g<br />
<br />
Można wówczas wybrać precyzję obliczeń i wymiar przestrzenny modelu, lub podać te parametry od razu przy wywołaniu polecenia. <br />
<br />
Przykład: Uruchomienie konsoli Fluenta z pojedynczą precyzją i modelem w 2D:<br />
> module load fluent/18.2<br />
> fluent -g 2d<br />
<br />
Z konsoli wychodzi się poleceniem <code>exit</code>.<br />
<br />
===== Uruchamianie zadań w kolejce =====<br />
Do wstawiania zadań obliczeniowych do kolejki na klastrze Supernova można korzystać z gotowych skryptów:<br />
sub-fluent-18.2 <br />
Usage: /usr/local/bin/sub-fluent-18.2 input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-a arch (default - 2d, possible values: 2d 3d 2ddp 3ddp)<br />
-n nodes (default - 1)<br />
-p cores (per node, default - 1)<br />
-m memory (per node, in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
<br />
Zadania są uruchamiane przez skrypt bez grafiki. Zadania równoległe działają z wykorzystaniem sieci Infiniband.<br />
<br />
===== Środowisko Workbench =====<br />
Aby skorzystać z graficznego środowiska Workbench należy zalogować się na klaster z przekierowaniem wyświetlania, uruchomić zadanie interaktywne i wydać polecenie:<br />
> module load fluent/18.2<br />
> runwb2<br />
<br />
=== Klaster kampusowy ===<br />
Aby korzystać z aplikacji w infrastrukturze PLATON U3 w WCSS wymagana jest rejestracja w [https://wcss.cloud.pionier.net.pl/ portalu usługi].<br />
<br />
Następnie można założyć rezerwację na wersję dydaktyczną programu (v.13) lub badawczą (v.14.5).<br />
<br />
== Instalacja na własnym komputerze ==<br />
Istnieje możliwość zainstalowania Fluenta na swoim komputerze w celu pracy nad przygotowywaniem modelów do dalszych obliczeń wsadowych. Należy w tej sprawie skontaktować się z administratorami. <br />
<br />
== Dokumentacja ==<br />
Dokumentacja Fluenta jest dostępna po wykonaniu polecenia na Supernovej:<br />
> module load fluent/18.2<br />
> fluent -help<br />
<br />
* [http://www.ansys.com/Products/Simulation+Technology/Fluid+Dynamics/ANSYS+Fluent Strona produktu] w [http://www.ansys.com serwisie producenta]<br />
<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=ANSYS_CFD&diff=5800ANSYS CFD2017-11-29T10:24:32Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < ANSYS CFD</small><br />
{{aplikacja|nazwa=ANSYS CFD|logo=[[Plik:Ansys_logo.gif]]|serwer=[[Bem]] |wersja=18.2 | serwer2=[[Klaster kampusowy]] |wersja22=13.0 |wersja21=14.5 |serwer3=Do pobrania |wersja31=16.2.0 |składowe=Pakiety|lista=[[ANSYS Fluent|Fluent]], [[ANSYS CFX|CFX]], Workbench 2, [[ANSYS ICEM CFD|ICEM CFD]], i inne}}<br />
'''ANSYS CFD''' - oprogramowanie firmy ANSYS przeznaczone do obliczeniowej mechaniki płynów, na które składa się solver [[ANSYS Fluent|Fluent]], solver [[ANSYS CFX|CFX]], [[ANSYS ICEM CFD|ICEM CFD]] i środowisko ''Workbench 2''.<br />
<br />
== Licencja ==<br />
W ramach licencji krajowej, koordynowanej przez ICM, WCSS udostępnia od 1 lipca 2015 r. licencje '''badawcze''': ''ANSYS Academic Multiphysics Campus Solution'' (7 sztuk) i 10 licencji HPC. Licencja WCSS pozwala więc na uruchomienie maksymalnie '''7 zadań''' działających równocześnie, każde na maksymalnie 4 rdzenie z możliwością dodania do 10 rdzeni z puli HPC.<br />
<br />
== Korzystanie w WCSS ==<br />
Pakiet programów ANSYS CFD jest zainstalowany na klastrze [[Bem]] oraz na [[klaster kampusowy|klastrze kampusowym PLATON U3]] (wersja edukacyjna i badawcza).<br />
Sposób ustawienia środowiska i uruchamiania wybranych modułów CFD opisany jest na stronach:<br />
* [[ANSYS Fluent]]<br />
* [[ANSYS CFX]]<br />
* [[ANSYS ICEM CFD]]<br />
<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Instalacja na własnym komputerze ==<br />
Istnieje możliwość zainstalowania Fluenta/CFX/ICEM CFD (wersja badawcza) na swoim komputerze w celu pracy nad przygotowywaniem modelów do dalszych obliczeń wsadowych. Należy w tej sprawie skontaktować się z administratorami.<br />
<br />
Jeśli ta możliwość zostanie potwierdzona należy:<br />
<br />
* Pobrać ze wskazanego miejsca i zainstalować pakiet ANSYS na wybraną architekturę;<br />
* Nawiązać połączenie '''VPN WCSS''' zgodnie z [[Korzystanie z VPN|instrukcją]];<br />
* Podczas instalacji podać w oknie konfiguracji licencji:<br />
** ANSYS Licensing Interconnect port number - '''1734'''<br />
** ANSYS FLEXlm port number - '''1723'''<br />
** serwer licencji - '''licenses2.icm.edu.pl'''<br />
<br />
Połączenie z VPN WCSS powinno być każdorazowo nawiązywane przed i pozostawać aktywne podczas korzystania z aplikacji.<br />
<br />
== Dokumentacja ==<br />
* [http://www.ansys.com/Products/Simulation+Technology/Fluid+Dynamics/ANSYS+CFD Strona produktu] w [http://www.ansys.com serwisie producenta]<br />
* [http://www.icm.edu.pl/kdm/ANSYS Informacje o licencji krajowej]<br />
<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=ANSYS&diff=5799ANSYS2017-11-29T10:21:22Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < ANSYS</small><br />
{{aplikacja|nazwa=ANSYS |logo=[[Plik:Ansys_logo.gif]]|serwer=[[Bem]] |wersja=18.2 (wybrane pakiety)|serwer3=[[Klaster kampusowy]] |wersja31=17.2 (wybrane pakiety)|serwer4=Do pobrania |wersja41=17.2.0 |składowe=Pakiety|lista=[[ANSYS Mechanical|Mechanical]], [[ANSYS Fluent|Fluent]], [[ANSYS CFX|CFX]], Workbench 2, [[ANSYS ICEM CFD|ICEM CFD]], i inne}}<br />
'''ANSYS''' - płatne oprogramowanie do m.in. obliczeń strukturalnych i dynamiki płynów.<br />
<br />
== Licencja ==<br />
W ramach licencji krajowej, koordynowanej przez ICM, WCSS udostępnia od 1 lipca 2015 r. licencje '''badawcze''': ''ANSYS Academic Multiphysics Campus Solution'' ('''7 sztuk'''). Licencja WCSS pozwala więc na uruchomienie maksymalnie '''7 zadań'''. Od 1 lipca 2016 dostępny jest pakiet SpaceClaim.<br />
<br />
Studenci mogą bezpłatnie korzystać z wersji studenckiej ANSYS <br />
:http://www.ansys.com/student<br />
<br />
== Dostępne pakiety ==<br />
W ramach licencji dostępnych jest szereg pakietów ([http://www.ansys.com/Products/Academic/Academic-Product-Features-Table pełna lista na stronie producenta]), w tym:<br />
*[[ANSYS Mechanical]]<br />
**[[ANSYS Maxwell]]<br />
**[[ANSYS HFSS]]<br />
*[[ANSYS CFD]]<br />
** [[ANSYS Fluent]]<br />
** [[ANSYS CFX]]<br />
** [[ANSYS ICEM CFD]]<br />
<br />
== Uruchamianie na klastrze Bem ==<br />
Dostęp do poleceń <br />
runwb2<br />
lancher<br />
launcherWERSJA<br />
jest możliwy po załadowaniu modułu:<br />
module load ansys/18.2<br />
Prace należy prowadzić w ramach zadania [[Jak_korzystać_z_kolejek_PBS|interaktywnego]] z przekierowaniem [[Logowanie|wyświetlania]].<br />
<br />
== Dokumentacja ==<br />
* [http://www.ansys.com Serwis producenta]<br />
* [http://www.icm.edu.pl/kdm/ANSYS Informacje o licencji krajowej]<br />
* [http://www.ansys.com/Products/Academic/Academic-Product-Features-Table Lista pakietów dostępnych w ramach licencji ''Academic Multiphysics Campus Solution'' na stronie producenta]<br />
<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=ANSYS&diff=5798ANSYS2017-11-29T10:13:59Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < ANSYS</small><br />
{{aplikacja|nazwa=ANSYS |logo=[[Plik:Ansys_logo.gif]]|serwer=[[Bem]] |wersja=18.2 (wybrane pakiety)|serwer3=[[Klaster kampusowy]] |wersja31=17.2 (wybrane pakiety)|serwer4=Do pobrania |wersja41=17.2.0 |składowe=Pakiety|lista=[[ANSYS Mechanical|Mechanical]], [[ANSYS Fluent|Fluent]], [[ANSYS CFX|CFX]], Workbench 2, [[ANSYS ICEM CFD|ICEM CFD]], i inne}}<br />
'''ANSYS''' - płatne oprogramowanie do m.in. obliczeń strukturalnych i dynamiki płynów.<br />
<br />
== Licencja ==<br />
W ramach licencji krajowej, koordynowanej przez ICM, WCSS udostępnia od 1 lipca 2015 r. licencje '''badawcze''': ''ANSYS Academic Multiphysics Campus Solution'' ('''7 sztuk'''). Licencja WCSS pozwala więc na uruchomienie maksymalnie '''7 zadań'''. Od 1 lipca 2016 dostępny jest pakiet SpaceClaim.<br />
<br />
Studenci mogą bezpłatnie korzystać z wersji studenckiej ANSYS <br />
:http://www.ansys.com/student<br />
<br />
== Dostępne pakiety ==<br />
W ramach licencji dostępnych jest szereg pakietów ([http://www.ansys.com/Products/Academic/Academic-Product-Features-Table pełna lista na stronie producenta]), w tym:<br />
*[[ANSYS Mechanical]]<br />
**[[ANSYS Maxwell]]<br />
**[[ANSYS HFSS]]<br />
*[[ANSYS CFD]]<br />
** [[ANSYS Fluent]]<br />
** [[ANSYS CFX]]<br />
** [[ANSYS ICEM CFD]]<br />
<br />
== Dokumentacja ==<br />
* [http://www.ansys.com Serwis producenta]<br />
* [http://www.icm.edu.pl/kdm/ANSYS Informacje o licencji krajowej]<br />
* [http://www.ansys.com/Products/Academic/Academic-Product-Features-Table Lista pakietów dostępnych w ramach licencji ''Academic Multiphysics Campus Solution'' na stronie producenta]<br />
<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5782Jak korzystać z kolejek PBS2017-10-05T13:01:04Z<p>Dzieko: /* Zasoby */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze Bem nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br><br />
Ogólna zasada jest następująca: wszystkie zadania należy zlecać do kolejki '''main''', która w zależności od czasu trwania zadania przekieruje je do kolejki o odpowiednio długim czasie wykonywania. <br><br />
Dla przykładu zadanie o czasie 123h trafi do kolejki shoth168h. Każda z kolejek ma inny priorytet. <br />
W ogólności im krótsza kolejka tym wyższy priorytet. Kolejka normal o maksymalnej długości zadania do 504h ma najniższy priorytet i ograniczone zasoby. <br />
Pozostałe kolejki korzystają ze wszystkich zasobów.<br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. '''chunków''') pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części (chunki) mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** domyślnie: 2000 MB <br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 512 000 MB na 10 węzłach<br />
<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku). Należy skorzystać z tego parametru, kiedy w jednej części alokacji (chunk) chcemy uruchomić jeden lub więcej procesów MPI:<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
** wielkość mpiprocs nigdy nie może być większa niż ncpus w żadnym chunku!<br />
** jeśli aplikacja jest zrównoleglona jedynie przy użyciu MPI i nie korzysta z OpenMP, to wartość mpiprocs powinna być zawsze równa ncpus!<br />
<br />
<br />
Jeśli aplikacja jest zrównoleglona przy użyciu OpenMP, to należy podać liczbę wątków w ramach części alokacji (chunk):<br />
* '''ompthreads''' - liczba wątków (threads)<br />
** domyślnie: równa wartości '''ncpus'''<br />
** maksymalnie: 24 lub 28<br />
** wielkość ompthreads nigdy nie może być większa niż ncpus w żadnym chunku!<br />
<br />
W przypadku aplikacji hybrydowych, korzystających jednocześnie z MPI i OpenMP, wielkość '''ncpus''' w każdym chunku '''musi''' być równa '''mpiprocs * ompthreads''', vide przykłady poniżej.<br />
<br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw. Należy zwrócić uwagę, że w każdym chunku jest fizycznie wymagane 2mpi*12threads=24 rdzenie, dlatego ncpus musi przyjąć właśnie taką wartość:<br />
<br />
<pre><br />
select=4:ncpus=24:mpiprocs=2:ompthreads=12:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
chunk pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
<br />
chunk drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
</pre><br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
* zawartość skryptu uruchom.sh<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
</source><br />
* wstawienie skryptu<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
* zawartość pliku skrypt.sh<br />
<source lang=bash><br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
EOF<br />
</source><br />
* wstawienie zadania:<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5781Jak korzystać z kolejek PBS2017-10-05T12:56:46Z<p>Dzieko: /* Zasoby */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze Bem nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br><br />
Ogólna zasada jest następująca: wszystkie zadania należy zlecać do kolejki '''main''', która w zależności od czasu trwania zadania przekieruje je do kolejki o odpowiednio długim czasie wykonywania. <br><br />
Dla przykładu zadanie o czasie 123h trafi do kolejki shoth168h. Każda z kolejek ma inny priorytet. <br />
W ogólności im krótsza kolejka tym wyższy priorytet. Kolejka normal o maksymalnej długości zadania do 504h ma najniższy priorytet i ograniczone zasoby. <br />
Pozostałe kolejki korzystają ze wszystkich zasobów.<br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. '''chunków''') pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części (chunki) mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** domyślnie: 2000 MB <br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 512 000 MB na 10 węzłach<br />
<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku). Należy skorzystać z tego parametru, kiedy w jednej części alokacji (chunk) chcemy uruchomić jeden lub więcej procesów MPI:<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
<br />
<br />
Jeśli aplikacja jest zrównoleglona jedynie przy użyciu MPI i *nie* korzysta z OpenMP, to wartość mpiprocs powinna być zawsze równa ncpus !<br />
<br />
<br />
Jeśli aplikacja jest zrównoleglona przy użyciu OpenMP, to należy podać liczbę wątków w ramach części alokacji (chunk):<br />
* '''ompthreads''' - liczba wątków (threads)<br />
** domyślnie: równa wartości '''ncpus'''<br />
** maksymalnie: 24 lub 28<br />
<br />
<br />
W przypadku aplikacji hybrydowych, korzystających jednocześnie z MPI i OpenMP, wielkość '''ncpus''' w każdym chunku '''musi''' być równa '''mpiprocs * ompthreads''', vide przykłady poniżej.<br />
<br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw. Należy zwrócić uwagę, że w każdym chunku jest fizycznie wymagane 2mpi*12threads=24 rdzenie, dlatego ncpus musi przyjąć właśnie taką wartość:<br />
<br />
<pre><br />
select=4:ncpus=24:mpiprocs=2:ompthreads=12:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
chunk pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
<br />
chunk drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
</pre><br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
* zawartość skryptu uruchom.sh<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
</source><br />
* wstawienie skryptu<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
* zawartość pliku skrypt.sh<br />
<source lang=bash><br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
EOF<br />
</source><br />
* wstawienie zadania:<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5776Jak korzystać z kolejek PBS2017-08-23T11:48:59Z<p>Dzieko: /* Zasoby */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze Bem nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br><br />
Ogólna zasada jest następująca: wszystkie zadania należy zlecać do kolejki '''main''', która w zależności od czasu trwania zadania przekieruje je do kolejki o odpowiednio długim czasie wykonywania. <br><br />
Dla przykładu zadanie o czasie 123h trafi do kolejki shoth168h. Każda z kolejek ma inny priorytet. <br />
W ogólności im krótsza kolejka tym wyższy priorytet. Kolejka normal o maksymalnej długości zadania do 504h ma najniższy priorytet i ograniczone zasoby. <br />
Pozostałe kolejki korzystają ze wszystkich zasobów.<br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. '''chunków''') pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części (chunki) mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** domyślnie: 2000 MB <br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 512 000 MB na 10 węzłach<br />
<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku). Należy skorzystać z tego parametru, kiedy w jednej części alokacji (chunk) chcemy uruchomić jeden lub więcej procesów MPI:<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
<br />
<br />
Jeśli aplikacja jest zrównoleglona przy użyciu OpenMP, to należy podać liczbę wątków w ramach części alokacji (chunk):<br />
* '''ompthreads''' - liczba wątków (threads)<br />
** domyślnie: równa wartości '''ncpus'''<br />
** maksymalnie: 24 lub 28<br />
<br />
<br />
W przypadku aplikacji hybrydowych, korzystających jednocześnie z MPI i OpenMP, wielkość '''ncpus''' w każdym chunku '''musi''' być równa '''mpiprocs * ompthreads''', vide przykłady poniżej.<br />
<br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw. Należy zwrócić uwagę, że w każdym chunku jest fizycznie wymagane 2mpi*12threads=24 rdzenie, dlatego ncpus musi przyjąć właśnie taką wartość:<br />
<br />
<pre><br />
select=4:ncpus=24:mpiprocs=2:ompthreads=12:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
chunk pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
<br />
chunk drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
</pre><br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
* zawartość skryptu uruchom.sh<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
</source><br />
* wstawienie skryptu<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
* zawartość pliku skrypt.sh<br />
<source lang=bash><br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
EOF<br />
</source><br />
* wstawienie zadania:<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5775Jak korzystać z kolejek PBS2017-08-23T11:38:04Z<p>Dzieko: /* Zasoby */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze Bem nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br><br />
Ogólna zasada jest następująca: wszystkie zadania należy zlecać do kolejki '''main''', która w zależności od czasu trwania zadania przekieruje je do kolejki o odpowiednio długim czasie wykonywania. <br><br />
Dla przykładu zadanie o czasie 123h trafi do kolejki shoth168h. Każda z kolejek ma inny priorytet. <br />
W ogólności im krótsza kolejka tym wyższy priorytet. Kolejka normal o maksymalnej długości zadania do 504h ma najniższy priorytet i ograniczone zasoby. <br />
Pozostałe kolejki korzystają ze wszystkich zasobów.<br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. '''chunków''') pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części (chunki) mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** domyślnie: 2000 MB <br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 512 000 MB na 10 węzłach<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku):<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
<br />
Należy skorzystać z tego parametru, kiedy w jednej części alokacji (chunk) chcemy uruchomić więcej niż jeden proces MPI.<br />
<br />
Jeśli aplikacja jest zrównoleglona przy użyciu OpenMP, to należy podać liczbę wątków w ramach części alokacji (chunk):<br />
* '''ompthreads''' - liczba wątków (threads)<br />
** domyślnie: równa wartości '''ncpus'''<br />
** maksymalnie: 24 lub 28<br />
** w przypadku aplikacji hybrydowych, korzystających jednocześnie z MPI i OpenMP, wielkość '''ncpus''' w każdym chunku '''musi''' być równa '''mpiprocs * ompthreads''', vide przykłady poniżej.<br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw:<br />
<br />
<pre><br />
select=4:ncpus=24:mpiprocs=2:ompthreads=12:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
chunk pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
<br />
chunk drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
proces MPI drugi<br />
\_ pierwszy wątek OpenMP<br />
\_ drugi wątek OpenMP<br />
\_ ...<br />
\_ 12-ty wątek OpenMP<br />
</pre><br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
* zawartość skryptu uruchom.sh<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
</source><br />
* wstawienie skryptu<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
* zawartość pliku skrypt.sh<br />
<source lang=bash><br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
EOF<br />
</source><br />
* wstawienie zadania:<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Mathematica&diff=5721Mathematica2017-07-04T08:44:06Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]]</small><br />
{{aplikacja|nazwa=Mathematica|logo=[[Plik:mathematica.jpg|noframe|center]]|serwer=[[Bem]]|serwer2=[[Klaster kampusowy]]|wersja='''10.1''', 10.0|wersja21=8}}<br />
<br />
'''Mathematica''' - system obliczeń symbolicznych i numerycznych opracowany w 1988 przez Stephena Wolframa.<br />
<br />
== Licencja ==<br />
<br />
*[[Bem]] - pakiet dostępny jest dla pracowników Politechniki Wrocławskiej na licencji własnej Wolfram Research, Inc. [http://www.wolfram.com/legal/agreements/wolfram-mathematica.html].<br />
<br />
*[[Klaster kampusowy]] - dwie licencje dla uczelni Wrocławia [http://cloud.pionier.net.pl/index.php?page=software&idApp=9]<br />
<br />
=== Informacje o wykorzystaniu ===<br />
<br />
{{Podziękowanie_WCSS}}<br />
<br />
;Praca interaktywna<br />
<br />
Logowanie do systemu i uruchamianie programu w trybie graficznym:<br />
<br />
1.Łączenie się ze zdalnym graficznym pulpitem za pomocą NoMachine<br />
[http://kdm.wcss.wroc.pl/wiki/Jak_korzysta%C4%87_z_NoMachine Instrukcja]<br />
2. Uruchomienia interaktywnego shella w kolejce z przekierowaniem wyświetlania<br />
qsub -I -X -l walltime=6:00:00 -l software=Mathematica_10<br />
3. Ustawienie środowiska programu (wykonać jedno z poniższych):<br />
module load mathematica<br />
module load mathematica/10.0<br />
module load mathematica/10.1<br />
4. Uruchomienie Mathematica w trybie graficznym<br />
Mathematica<br />
<br />
;Zadania wsadowe<br />
Do zlecania zadań obliczeniowych należy skorzystać z polecenia:<br />
/usr/local/bin/sub-mathematica plik.txt [kolejka] [ilosc_pamieci_w_MB]<br />
<br />
== Dokumentacja ==<br />
* [http://www.wolfram.com/ Strona domowa pakietu]<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5720Jak korzystać z kolejek PBS2017-06-28T14:38:44Z<p>Dzieko: /* Przekazanie skryptu przez standardowe wejście qsub */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. chunków) pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** domyślnie: 2000 MB <br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 512 000 MB na 10 węzłach<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku):<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
<br />
Należy skorzystać z tego parametru, kiedy w jednej części alokacji chcemy uruchomić więcej niż jeden proces MPI. W takim wypadku wartość <br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw:<br />
<br />
<pre><br />
select=4:ncpus=12:mpiprocs=2:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
węzeł pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy proces OpenMP<br />
\_ drugi proces OpenMP<br />
\_ ...<br />
\_ 12-ty proces OpenMP<br />
proces MPI drugi<br />
\_ pierwszy proces OpenMP<br />
\_ drugi proces OpenMP<br />
\_ ...<br />
\_ 12-ty proces OpenMP<br />
<br />
węzeł drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy proces OpenMP<br />
\_ drugi proces OpenMP<br />
\_ ...<br />
\_ 12-ty proces OpenMP<br />
proces MPI drugi<br />
\_ pierwszy proces OpenMP<br />
\_ drugi proces OpenMP<br />
\_ ...<br />
\_ 12-ty proces OpenMP<br />
</pre><br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
* zawartość skryptu uruchom.sh<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
</source><br />
* wstawienie skryptu<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
* zawartość pliku skrypt.sh<br />
<source lang=bash><br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
EOF<br />
</source><br />
* wstawienie zadania:<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Lumerical&diff=5698Lumerical2017-04-26T11:52:36Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]]</small><br />
{{aplikacja|nazwa=Lumerical |logo=[[Plik:lumerical.jpg|noframe|center]] |serwery=[[Bem]] |składowe=Pakiety| lista=[[Lumerical FDTD]]<br/>[[Lumerical MODE]]}}<br />
'''Lumerical''' - producent oprogramowania m.in. [[Lumerical FDTD|FDTD]] i [[Lumerical MODE|MODE]].<br />
<br />
== Lumerical w WCSS ==<br />
Dwa produkty firmy Lumerical dostępne są w WCSS: [[Lumerical FDTD|FDTD]] i [[Lumerical MODE|MODE]], obydwa zainstalowane na klastrze [[Bem]] w drzewie '''/usr/local/lumerical'''.<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Dokumentacja ==<br />
* [http://www.lumerical.com Strona domowa producenta]<br />
* [https://www.lumerical.com/company/news/literature/citation_instructions.html Instrukcja cytowania]<br />
<br />
== Zobacz też ==<br />
* [[Oprogramowanie KDM]]<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Jak_korzysta%C4%87_z_kolejek_PBS&diff=5695Jak korzystać z kolejek PBS2017-03-30T10:46:10Z<p>Dzieko: /* Zasoby */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[System kolejkowy]] < Jak korzystać z kolejek PBS</small><br />
== Kolejki ==<br />
Na klastrze [[Bem]] zadaniami obliczeniowymi zarządza system kolejkowania [[PBSPro]].<br />
<br />
Uruchamianie obliczeń odbywa się w ramach kolejek, które różnią się między sobą priorytetem, limitami czy prawami dostępu (a czasem również dostępnymi zasobami).<br />
<br />
Uruchamianie typowych obliczeń na klastrze nie wymaga podawania kolejki, gdyż wyboru odpowiedniej kolejki dokonuje system kolejkowy na podstawie podanych przez użytkownika wymagań odnośnie czasu wykonania. <br />
<br />
Podstawowe kolejki na klastrze Bem przeznaczone dla wszystkich użytkowników KDM:<br />
* '''main''' - zadania należy zlecać do tej kolejki '''podając limit czasu''' (przy użyciu konstrukcji opisanej w dalszej części artykułu: '''-l walltime=X''')<br />
* short, short48h, short168h, normal, infinity - użytkownik nie ma możliwości bezpośredniego wstawiania zadań do tych kolejek, dokona tego system kolejkowy automatycznie, w oparciu o podany limit czasu.<br />
Kolejki dostępne na klastrze Bem dla użytkowników infrastruktury PL-Grid:<br />
* plgrid, plgrid-long, plgrid-testing<br />
<br />
W systemie kolejkowym zakładane są także czasowo dedykowane kolejki na specyficzne potrzeby projektowe lub grup badawczych.<br />
<br />
== Sprawdzanie stanu kolejek ==<br />
Do sprawdzenia stanu kolejki służy polecenie '''qstat'''. Można korzystać z następujących jego parametrów:<br />
* '''-r''' - pokazuje uruchomione zadania<br />
* '''-i''' - pokazuje zadania oczekujące<br />
* '''-u''' - pokazuje zadania wybranego użytkownika<br />
* '''-f''' - pokazuje szczegółowe informacje o zadaniach (lub zadaniu, jeżeli podamy jego identyfikator po parametrze)<br />
<br />
Konfigurację kolejek można przeglądać za pomocą komendy:<br />
> '''qstat -q'''<br />
<br />
Dokładniejsze informacje na temat kolejki wyświetla komenda:<br />
> '''qstat -Qf nazwa_kolejki'''<br />
<br />
== Zasoby ==<br />
Po wyborze odpowiedniej kolejki należy zadeklarować ilość wymaganych zasobów.<br />
<br />
Przydział zasobów może odbywać się w jednej, spójnej części (dla zadań szeregowych lub zrównoleglonych w obrębie jednego węzła) lub kilku części (dla zadań zrównoleglonych przy użyciu bibliotek MPI). Deklarację buduje się używając wyrażenia<br />
'''select''' dla parametru '''-l''' polecenia '''qsub''' (opisanego w dalszej części). Jej format jest następujący:<br />
<br />
<pre><br />
select=X:zasób1=wartość1:zasób2=wartość2+Y:zasób3=wartość3:zasób4=wartość4<br />
</pre><br />
gdzie:<br />
* '''X''' - liczba części alokacji (tzw. chunków) pierwszego zbioru zasobów<br />
* '''zasób1=wartość1:zasób2=wartość2''' - opis pierwszego zbioru zasobów<br />
* '''Y''' - liczba części drugiego zbioru zasobów<br />
* '''zasób3=wartość3:zasób4=wartość4''' - opis drugiego zbioru zasobów<br />
<br />
Liczba zbiorów zasobów może być różna (równa 1 lub większa). Alokowane części mogą (ale nie muszą) znaleźć się na różnych węzłach.<br />
<br />
Dostępne parametry:<br />
* '''ncpus''' - liczba rdzeni obliczeniowych<br />
** domyślnie: 1<br />
** maksymalnie: <br />
*** 24 na 720 węzłach<br />
*** 28 na 192 węzłach<br />
* '''mem''' - rozmiar pamięci<br />
** domyślnie: 2000 MB <br />
** maksymalnie:<br />
*** 60 000 MB na 688 węzłach<br />
*** 125 000 MB na 214 węzłach<br />
*** 512 000 MB na 10 węzłach<br />
<br />
Osobnym słowem kluczowym, którego używa się podczas żądania zasobów, jest liczba procesów MPI w danej części alokacji (w chunku):<br />
* '''mpiprocs''' - liczba procesów MPI<br />
** domyślnie: 1<br />
** maksymalnie: 24 lub 28<br />
<br />
Należy skorzystać z tego parametru, kiedy w jednej części alokacji chcemy uruchomić więcej niż jeden proces MPI. W takim wypadku wartość <br />
<br />
; Przykładowe definicje wymagań<br />
<br />
Zadanie uruchamia jeden zestaw, w którym jeden proces będzie mógł uruchomić 4 wątki OpenMP lub po prostu cztery procesy i wymaga 4096 MB RAM na cały zestaw. Całość uruchomi się w ramach jednego węzła:<br />
<br />
<pre><br />
select=1:ncpus=4:mem=4096MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po jeden proces, a każdy proces wymaga 512 MB RAM. Poszczególne zestawy mogą znaleźć się na dowolnej kombinacji węzłów - jednym lub więcej:<br />
<br />
<pre><br />
select=8:ncpus=1:mem=512MB<br />
</pre><br />
<br />
Zadanie uruchamia 8 zestawów po 4 procesy MPI, po 4 w każdej części alokacji (i domyślne 2000 MB na każde 4 procesy):<br />
<br />
<pre><br />
select=8:ncpus=4:mpiprocs=4<br />
</pre><br />
<br />
Zadanie wymaga 16GB RAM (i domyślnie jednego rdzenia):<br />
<br />
<pre><br />
select=1:mem=16GB<br />
</pre><br />
<br />
Zadanie wymaga 4 zestawów po 2 procesy MPI, z których każdy uruchomi po 12 wątków OpenMP i 16GB pamięci per każdy zestaw:<br />
<br />
<pre><br />
select=4:ncpus=12:mpiprocs=2:mem=16GB<br />
</pre><br />
Alokacja w powyższym przypadku będzia wygłądać następująco:<br />
<br />
<pre><br />
węzeł pierwszy:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy proces OpenMP<br />
\_ drugi proces OpenMP<br />
\_ ...<br />
\_ 12-ty proces OpenMP<br />
proces MPI drugi<br />
\_ pierwszy proces OpenMP<br />
\_ drugi proces OpenMP<br />
\_ ...<br />
\_ 12-ty proces OpenMP<br />
<br />
węzeł drugi:<br />
\_<br />
proces MPI pierwszy<br />
\_ pierwszy proces OpenMP<br />
\_ drugi proces OpenMP<br />
\_ ...<br />
\_ 12-ty proces OpenMP<br />
proces MPI drugi<br />
\_ pierwszy proces OpenMP<br />
\_ drugi proces OpenMP<br />
\_ ...<br />
\_ 12-ty proces OpenMP<br />
</pre><br />
<br />
== Wstawianie zadań ==<br />
Do wstawiania zadań do kolejki służy polecenie '''qsub'''. {{uwaga2|Polecenie należy wykonywać na węźle dostępowym!}} Opis zadania powinien być zawarty w skrypcie powłoki. Następnie taki skrypt przekazywany jest do kolejki jako parametr polecenia qsub (lub na standardowe wejście tej komendy). Najważniejsze parametry polecenia można znaleźć poniżej:<br />
* '''-q''' - wybór kolejki<br />
* '''-l''' specyfikacja wymagań - wartości parametru mogą być następujące<br />
** '''select=''' - opis wymagań<br />
** '''software=''' - informacja o używanym oprogramowaniu<br />
{{uwaga2| Proszę korzystać z powyższego parametru - pozwala to administratorom sporządzać statystyki wykorzystania}}<br />
* '''-N''' - nazwa zadania (jej długość nie może przekraczać 12 znaków)<br />
* '''-m''' - włączenie wysyłania powiadomień o zdarzeniach<br />
** '''b''' - o rozpoczęciu zadania<br />
** '''e''' - o zakończeniu zadania<br />
* '''-I''' - zadanie interaktywne (w tym przypadku nie należy przekazywać skryptu)<br />
* '''-X''' - przekierowanie wyświetlania (ma sens w przypadku zadań interaktywnych, wymaga logowania z przekierowaniem wyświetlania <br />
<br />
Cenną cechą programu '''qsub''' jest możliwość przekazywania parametrów w skrypcie podanym jako argument, poprzez linie zaczynające się od:<br />
<pre><br />
#PBS<br />
</pre><br />
<br />
== Usuwanie zadań ==<br />
Jeżeli z jakiegoś powodu istnieje potrzeba usunięcia zadania - należy skorzystać z polecenia '''qdel''', które przyjmuje jako parametr identyfikator zadania. Można kasować zadania zarówno oczekujące w kolejce jak i uruchomione.<br />
<br />
== Rezerwacje ==<br />
Może się zdarzyć, że dostęp do zasobów potrzebny jest w określonym czasie np. za 3 tygodnie w poniedziałek między godziną 8 a 16. W takich przypadkach należy skorzystać z rezerwacji - '''powoduje to powstanie nowej kolejki''', do której wstawione zadania nie będą konkurować o dostęp z innymi zadaniami. Należy jednak pamięć, że nie zawsze będzie to możliwe (będzie tylko wtedy kiedy system kolejkowy w żądanym czasie będzie w stanie zapewnić zasoby). Tworzenie rezerwacji odbywa się poleceniem '''pbs_rsub''', którego najważniejsze parametry to:<br />
* '''-R''' - czas rozpoczęcia rezerwacji w formacie YYYYMMDDHHmm (201302010456 oznacza w takim przypadku 4:56 01.02.2013)<br />
* '''-E''' - czas zakończenia rezerwacji w formacie YYYYMMDDHHmm<br />
* '''-l''' - specyfikacja zasobów rezerwacji (w formacie takim, jak w przypadku zadań)<br />
* '''-r''' - reguła rekurencji (jeżeli rezerwacja ma się powtarzać cyklicznie, więcej na ten temat w manualu polecenia pbs_rsub)<br />
* '''-U''' - lista użytkowników, którzy mogą korzystać z rezerwacji<br />
<br />
Do wyświetlenia informacji o rezerwacjach służy polecenie '''pbs_rstat'''. Bez parametrów listuje ono założone rezerwacje, a szczegóły o wybranej można zobaczyć dodając parametr '''-f''' i identyfikator. Aby usunąć rezerwację należy użyć polecenia '''pbs_rdel'''.<br />
<br />
== Przykłady ==<br />
=== Uruchomienie obliczeń na postawie skryptu ===<br />
* zawartość skryptu uruchom.sh<br />
<source lang=bash><br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=6:00:00<br />
#PBS -l select=1:ncpus=2:mem=2048MB<br />
#PBS -l software=test_qsub<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
cd $PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
</source><br />
* wstawienie skryptu<br />
<pre><br />
qsub uruchom.sh<br />
</pre><br />
<br />
=== Uruchomienie zadania interaktywnego ===<br />
<pre><br />
qsub -I -l walltime=6:00:00 -l select=1:ncpus=1:mem=2048MB -l software=CFX_14.5<br />
</pre><br />
<br />
=== Przekazanie skryptu przez standardowe wejście '''qsub''' ===<br />
* zawartość pliku skrypt.sh<br />
<source lang=bash><br />
#!/bin/bash<br />
cat << EOF | qsub<br />
#!/bin/bash<br />
#PBS -q main<br />
#PBS -l walltime=2:00:00<br />
#PBS -l select=1:mem=512MB<br />
#PBS -l software=qsub_stdin<br />
#PBS -m be<br />
<br />
# wejscie do katalogu, z ktorego zostalo wstawione zadania<br />
# \ przez $ jest wymagany, aby powloka nie podmienila<br />
# $PBS_O_WORKDIR na wartosc podczas wstawiania - tylko<br />
# podczas dzialania zadania na wezle<br />
<br />
cd \$PBS_O_WORKDIR<br />
<br />
# uruchom program<br />
./test1 > wynik.txt<br />
EOF<br />
</source><br />
* wstawienie zadania:<br />
<pre><br />
chmod +x skrypt.sh<br />
./skrypt.sh<br />
</pre><br />
<br />
Więcej o poleceniu '''qsub''' można znaleźć w manualu - poprzez uruchomienie polecenia:<br />
<pre><br />
man qsub<br />
</pre><br />
<br />
=== Zlecenie rezerwacji ===<br />
Próba utworzenia rezerwacji w bieżącym dniu (dlatego pominięto rok, miesiąc i dzień w wymaganiach) od 12:00 do 14:00, powtarzającej się w poniedziałki, środy i piątki aż do 31.12.2018, na zasobach składających się z dwóch części po 1 rdzeniu i 2000 MB RAM, z której mogą korzystać użytkownicy user1 oraz user2<br />
<pre><br />
pbs_rsub -R 1200 -E 1400 -r "FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20181231" -l select=2:ncpus=1:mem=2000MB -U user1,user2<br />
</pre><br />
Jeżeli utworzenie rezerwacji będzie możliwe - system kolejkowy wyśle wiadomość (na adres zarejestrowany w bazie) z potwierdzeniem.<br />
<br />
<br />
'''Zobacz też:''' [[PBSPro]]<br />
<br />
{{systemy kolejkowe}}<br />
<br />
[[Kategoria:Systemy kolejkowe]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Materials_Studio&diff=5683Materials Studio2017-03-13T15:07:17Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < [[Biovia]] < Materials Studio</small><br />
{{uwaga2|Z dniem '''30 września 2014''' zmienił się serwer licencji krajowej. Nowy serwer dostępny jest pod adresem: '''licenses2.icm.edu.pl'''.}}<br />
{{uwaga2|Przed uruchomieniem aplikacji należy aktywować połączenie VPN z serwerem w WCSS (zobacz [[korzystanie z VPN]]). Połączenie VPN powinno pozostać aktywne przez cały czas korzystania z klienta.}}<br />
{{aplikacja|logo=[[Plik:Biovia-logo.png]] |nazwa=Materials Studio|serwer=[[Bem]] (+ Gateway)|wersja=8.0 | serwer2=[[Klaster kampusowy]] |wersja21=8.0 | serwer3=Do pobrania |wersja31=7.0 SP1, SP2 |kontakt=}}<br />
'''Materials Studio''' - oprogramowanie chemiczne do modelowania molekularnego firmy [[Biovia]] (dawniej Accelrys). Materials Studio to pełne środowisko do projektowania materiałów, pracujące w architekturze klient serwer. Użytkownik tworzy zadanie obliczeniowe na komputerze klienckim (swoim pececie pracującym pod Windows) i uruchamia obliczenia na komputerze z zainstalowanym serwerem MS (może to być ten sam komputer lub zdalny serwer z uruchomionym Gateway'em).<br />
<br />
== Licencja ==<br />
WCSS uczestniczy w licencji krajowej koordynowanej przez ICM. W ramach tej licencji w 2016/2017 r. dostępne są wszystkie moduły pakietu Materials Studio (zobacz też [[Biovia]]).<br />
<br />
=== Informacja o wykorzystaniu ===<br />
Uprzejmie przypominamy o konieczności zamieszczania w publikacjach informacji o wykorzystaniu krajowej licencji Biovia (d. Accelrys). <br />
<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Uruchamianie aplikacji ==<br />
Użytkownik może korzystać z MS zainstalowanego na serwerach WCSS lub zainstalować ten pakiet na swoim komputerze. <br />
<br />
Pakiet składa się z dwóch części: klienta i serwera. Klient jest dostępny na systemy Microsoft Windows, serwer na systemy Microsoft Windows i Unix.<br />
<br />
Pliki instalacyjne aplikacji można pobrać z [[Serwer_FTP|serwera FTP]].<br />
<br />
Środowisko graficzne Materials Studio służące do wizualizacji i projektowania jest dostępne w postaci klienta na system Microsoft Windows. Klient ma możliwość współpracy z serwerem zainstalowanym lokalnie lub na innym komputerze w sieci.<br />
<br />
Klient Materials Studio pozwala także na zapisanie plików wejściowych z danymi modelu tak, że po przekopiowaniu ich na serwer można niezależnie zlecić na nim obliczenia. Pozwala również skonfigurować połączenie ze zdalnym serwerem obliczeniowym i bezpośrednio z poziomu klienta zlecać na niego obliczenia.<br />
<br />
Po zainstalowaniu oprogramowania należy:<br />
* skonfigurować w kliencie [[Konfiguracja klienta Materials Studio - serwer licencji|serwer licencji krajowej]],<br />
* skonfigurować w systemie [[Korzystanie z VPN|połączenie VPN]], żeby móc ze swojej stacji łączyć się z serwerem licencji. Połączenie VPN należy uruchamiać przed rozpoczęciem pracy z aplikacją. Połączenie VPN powinno pozostać aktywne przez cały czas korzystania z klienta.<br />
<br />
=== Obliczenia zdalne przez Gateway ===<br />
WCSS udostępnia bramę Materials Studio na klastrze [[Bem]]. Dzięki temu można z poziomu interfejsu klienta zlecać obliczenia do wykonania na węzłach obliczeniowych. Wymagana jest do tego odpowiednia konfiguracja: z menu w kliencie Materials Studio należy wybrać '''Tools''', następnie '''Server console'''. W oknie '''Server console''' należy dodać nowy '''Gateway''' o parametrach:<br />
<br />
adres: '''bem.wcss.pl'''<br />
port: '''18888'''<br />
połączenie: HTTPS<br />
<br />
Zobacz też szczegółowe instrukcje:<br />
* [[Konfiguracja klienta Materials Studio | '''Jak sprawdzić prawidłową konfigurację klienta?''']]<br />
* [[Konfiguracja klienta Materials Studio - serwer licencji | '''Jak wskazać serwer licencji?''']]<br />
<br />
Dla tak podłączonego serwera można obejrzeć listę dostępnych modułów.<br />
<br />
Do korzystania z Gatewaya konieczne jest uzyskanie poświadczeń (nazwy użytkownika i hasła) - w tym celu należy skontaktować się z [[Kontakt|administratorami]] prosząc o założenie konta w Gatewayu.<br />
<br />
==== Status zadań ====<br />
Zadania zlecane przez Gateway trafiają do systemu kolejkowego PBS. Status zadań i ich historię można obserwować z poziomu klienta lub przez stronę [[https://bem.wcss.pl:18888|WWW]].<br />
<br />
==== Zmiana hasła w Gateway'u ====<br />
Użytkownik może samodzielnie zmienić swoje hasło do Gateway'a. Należy w tym celu:<br />
* wejść na stronę WWW: https://bem.wcss.pl:18888<br />
* kliknąć w lewym menu pozycję "Password" i zalogować się dotychczasowym loginem i hasłem,<br />
* podać w formularzu stare i nowe hasło.<br />
<br />
=== Obliczenia wsadowe ===<br />
Obliczenia można zlecać także w trybie wsadowym. Po zapisaniu z poziomu interfejsu klienta plików wejściowych, przekopiowaniu ich a serwer w WCSS, można zlecić obliczenia z wykorzystaniem gotowych skryptów <code>sub-moduł</code> (istnieją tylko dla niektórych modułów MS) lub poleceń dostępnych w katalogu instalacji (trzeba pamiętać o wstawieniu ich do jednej z kolejek PBS). <br />
<br />
;Gotowe skrypty<br />
W ścieżce <code>/usr/local/bin</code> znajdują się gotowe skrypty wstawiające do kolejek PBS obliczenia niektórych modułów MS:<br />
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:<br />
<br />
> sub-castep-8.0<br />
Usage: /usr/local/bin/sub-castep-8.0 [parameters] name1 [name2] [name3] [...]<br />
Parameters:<br />
-q queue (default - main)<br />
-n nodes (default - 1)<br />
-p cores (per node, default - 1)<br />
-m memory (per node, in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
-i "additional parameters ..."<br />
<br />
'''Uwaga'''<br />
<br />
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).<br />
<br />
;Polecenia dostępne na klastrze [[Bem]]<br />
'''AmorphousCell''' /home/biovia/MaterialsStudio8.0/etc/AmorphousCell/bin/RunAmorphousCell.sh<br />
'''CASTEP''' /home/biovia/MaterialsStudio8.0/etc/CASTEP/bin/RunCASTEP.sh<br />
'''DFTB+''' /home/biovia/MaterialsStudio8.0/etc/DFTB/bin/RunDFTB.sh<br />
'''DFTBpara''' /home/biovia/MaterialsStudio8.0/etc/DFTBpara/bin/RunDFTBpara.sh<br />
'''Dmol3''' /home/biovia/MaterialsStudio8.0/etc/DMol3/bin/RunDMol3.sh<br />
'''GULP''' /home/biovia/MaterialsStudio8.0/etc/GULP/bin/RunGULP.sh <br />
'''Kinetix''' /home/biovia/MaterialsStudio8.0/etc/Kinetix/bin/RunKinetix.sh <br />
'''MesoDyn''' /home/biovia/MaterialsStudio8.0/etc/MesoDyn/bin/RunMesoDyn.sh <br />
'''ONETEP''' /home/biovia/MaterialsStudio8.0/etc/ONETEP/bin/RunONETEP.sh <br />
'''QMERA''' /home/biovia/MaterialsStudio8.0/etc/QMERA/bin/RunQMERA.sh <br />
'''VAMP''' /home/biovia/MaterialsStudio8.0/etc/VAMP/bin/RunVAMP.sh<br />
<br />
<br />
;Przykład <br />
Obliczenia można uruchomić poleceniem (przykład dla modułu VAMP):<br />
<br />
> /home/biovia/MaterialsStudio8.0/etc/VAMP/bin/RunVAMP.sh -q main filename.input<br />
<br />
gdzie:<br />
* <code>filename.input</code> to plik z danymi do obliczeń,<br />
* <code>-q main</code> to nazwa kolejki (należy podawać main)<br />
<br />
'''Zobacz też''': [[CASTEP]]<br />
<br />
=== Obliczenia na infrastrukturze PLATON-U3 ===<br />
Na infrastrukturze PLATON-U3 ([[klaster kampusowy]]) dostępna jest pełna instalacja Materials Studio (klient i lokalny gateway). W celu skorzystania z aplikacji należy zarejestrować się jako użytkownik Platon-U3 w WCSS na stronie usługi (https://wcss.cloud.pionier.net.pl) i następnie założyć rezerwację na maszynę wirtualną z Materials Studio. Po uzyskaniu dostępu do maszyny wirtualnej i uruchomieniu aplikacji można zlecać obliczenia na maszynę wirtualną przez lokalny gateway lub na klaster [[Bem]] przez gateway bem.wcss.pl.<br />
<br />
Sposób rezerwacji i korzystania z aplikacji na klastrze kampusowym jest opisany na stronie [https://wcss.cloud.pionier.net.pl/index.php?page=faq infrastruktury PLATON U3].<br />
<br />
== Dokumentacja ==<br />
* Tutoriale dostępne są z poziomu aplikacji klienta.<br />
* [http://accelrys.com/products/materials-studio/ Strona pakietu w serwisie Biovia]<br />
<br />
<br />
{{biovia}}<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=FDS-SMV&diff=5677FDS-SMV2017-02-02T16:11:27Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]]</small><br />
<br />
{{aplikacja|nazwa=FDS-SMV|logo=[[Plik:fds-smv_logo.gif|209px]]|serwer=[[Bem]]|wersje=6.3.2, 6.5.3}}<br />
<br />
'''Fire Dynamics Simulator''' - to program do symulacji pożaru i rozprzestrzeniania się dymu. '''Smokeview''' jest aplikacją do wizualizacji wyników symulacji FDS.<br />
<br />
=== FDS w WCSS ===<br />
<br />
Pakiet FDS jest darmowy. Zainstalowany jest na klastrze Bem w katalogu /usr/local/fds-smv/.<br />
<br />
;Uruchamianie <br />
Zadania obliczeniowe należy uruchamiać za pośrednictwem systemu kolejkowego.<br />
<br />
Do wstawiania zadań do systemu kolejkowego służy polecenie sub-fds lub sub-fds-WERSJA<br />
<br />
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:<br />
<br />
> sub-fds<br />
Usage: /usr/local/bin/sub-fds-6.5.3 input.fds [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-n nodes (default - 1)<br />
-p cores (per node, default - 1)<br />
-m memory (per node, in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
<br />
Na przykład<br />
<br />
> sub-fds-6.5.3 test.fds -q main -n 1 -p 2 -m 4000 -w 2 <br />
<br />
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.<br />
<br />
<br />
'''Uwaga'''<br />
<br />
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).<br />
<br />
'''Zobacz też:''' [[Jak korzystać z kolejek PBS]]?<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
=== Dokumentacja ===<br />
;Strona oficjalna FDS w sieci<br />
* http://www.fire.nist.gov/fds/<br />
<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]]<br />
<br />
{{oprogramowanie}}<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Abaqus&diff=5675Abaqus2017-02-01T16:33:34Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < ABAQUS</small><br />
<br />
{{aplikacja|nazwa=Abaqus|logo=[[Plik:Ablogo.jpg|center]]|serwer=[[Bem]]|wersja=6.14-2|serwer2=[[Klaster kampusowy]] |wersja21=Od lutego 2015 '''wyłącznie 6.14-AP'''|wersja22=6.12-3 |wersja23=6.13-3 |serwer3=Do pobrania|wersja31=Od stycznia 2015 '''wyłącznie 6.14-AP'''|wersja32=6.12-3 |wersja33=6.13-3 |kontakt=kdm@wcss.pl}}<br />
<br />
'''ABAQUS''' (Abaqus Unified FEA) - pakiet komercyjny dostarczany przez Dassault Systemes, służący do analizy nieliniowej układów z wykorzystaniem metody elementów skończonych w zakresie skomplikowanych badań inżynierskich. Stosowany jest w zagadnieniach mechaniki ciała stałego i płynów oraz do oceny wytrzymałościowej elementów maszyn i konstrukcji z uwzględnieniem obciążenia, temperatury, punktów łączeń, ewentualnych zderzeń i innych warunków środowiskowych. ABAQUS używany jest z powodzeniem podczas badań sejsmicznych i geotechnicznych, w akustyce, w przemyśle samochodowym, itp.<br />
<br />
W styczniu 2015 została zainstalowana wersja 6.14-AP. Od tego dnia można będzie wykorzystywać '''wyłącznie wersję 6.14-AP'''. Starsze wersje nie będą dostępne. Dotyczy to także dokumentacji.<br />
<br />
Od lutego 2017 dostępna jest również wersja '''2017'''.<br />
<br />
== Informacje ogólne ==<br />
ABAQUS jest obecnie własnością firmy SIMULIA, należącej do Dassault Systèmes. Pakiet dostępny jest na wielu platformach sprzętowych.<br />
<br />
Pakiet ma budowę modułową, co pozwala na dosyć swobodną konfigurację całości w zależności od specyfiki zastosowań. Użytkownik ma ponadto możliwość dopisywania własnych procedur. Podstawowe moduły biblioteczne to:<br />
<br />
*'''ABAQUS/Standard'''<br />
:Jest to moduł ogólnego przeznaczenia do przeprowadzania analiz metodą elementów skończonych. Zawiera wszystkie procedury analizy poza dynamiczną analizą nieliniową stosującą całkowanie równań ruchu metodą jawną. Pakiet napisany jest w języku Fortran. Jego pierwsza wersja powstała w 1978 roku.<br />
*'''ABAQUS/Explicit'''<br />
:Moduł przeznaczony do rozwiązywania zagadnień dynamicznych z użyciem metody jawnej całkowania równań ruchu. Stosowany do analiz przy ekstremalnych obciążeniach mechanicznych, siłowych lub termicznych.<br />
*'''ABAQUS/CAE'''<br />
:CAE (ang. ''Complete ABAQUS Environment'') dostarcza prostego i spójnego interfejsu do tworzenia, zlecania, monitorowania i przetwarzania wyników otrzymanych z symulacji ABAQUS/Standard i ABAQUS/Explicit. Łączy w sobie funkcjonalność preprocesora ABAQUS/Pre i postprocesora ABAQUS/Post ze starszych wersji ABAQUSa.<br />
:Pakiet CAE podzielony jest na moduły, z których każdy definiuje logiczny aspekt procesu tworzenia i analizowania modelu, np. definiowanie geometrii, definiowanie własności materiału. Każdy moduł posiada swój własny zestaw kluczy, parametrów i danych służących do utworzenia pliku wejściowego (z rozszerzeniem <code>.inp</code>) dla modułu obliczeniowego (Standard lub Explicit). Moduł obliczeniowy (ang. ''solver'') czyta plik wejściowy, dokonuje obliczeń podczas których wysyła informacje do CAE pozwalające śledzić postępy, na końcu umieszcza rezultaty w bazie wyników (plik z rozszerzeniem <code>.odb</code>). Wyniki zapisane w bazie można wczytać do CAE i dalej przetwarzać. Jeżeli przewidywany czas obliczeń jest zbyt długi należy opuścić środowisko CAE po utworzeniu pliku wejściowego i posłużyć się poleceniem <code>abaqus</code> do zlecenia obliczeń. Po zakończeniu symulacji można uruchomić CAE ponownie i wczytać bazę modelu (plik z rozszerzeniem <code>.cae</code>) i bazę wyników (plik z rozszerzeniem <code>.odb</code>) w celu wizualizacji układu.<br />
[[Plik:Image001.gif|right|380px|thumb|Tryby równoległej pracy Abaqusa]]<br />
Abaqus umożliwia równoległe wykonywanie obliczeń w trybach MPI i wątków (threads). Schemat prezentuje możliwe tryby równoległej pracy Abaqusa dla różnych jego modułów.<br />
<br />
== Licencja ==<br />
Licencje zakupione przez WCSS są dostępne '''wyłącznie do badań'''.<br />
*Do nauki można otrzymać wersję Abaqus Student Edition <br />
http://www.budsoft.com.pl/abaqusFEA/abaqus-dla-studentow<br />
*Do obliczeń komercyjnych należy zakupić odpowiednią licencję z własnych środków.<br />
<br />
WCSS posiada '''35''' tokenów licencyjnych współdzielonych przez pakiety Standard, Explicit, Foundation, Aqua, Design, CFD, AMS, Euler Lagrange, Multiphysics, CSE, Cosim Acusolve, Cosim Direct. Tokeny są współdzielone przez wszystkich użytkowników ABAQUSa w WCSS.<br />
<br />
Każde zadanie ABAQUSa zabiera 5 tokenów licencji oraz 1 token za każdy dodatkowy procesor, tak więc można np. uruchomić alternatywnie:<br />
<br />
* 7 zadań jednoprocesorowych: 7*5 tokenów = 35 tokenów, 7 CPU<br />
* 3 zadania 7-procesorowe: 3*(5+6) = 33 tokeny, 21 CPU<br />
<br />
Innym ograniczeniem jest liczba licencji CAE, w 2015 roku jest to '''4'''.<br />
<br />
Liczbę dostępnych tokenów można sprawdzić wykonując polecenie na serwerze z zainstalowanym pakietem:<br />
<br />
> abaqus licensing -ru<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
=== Umowa Użytkownika Akademickiego ===<br />
Użytkownik licencji Abaqus podpisuje Umowę Użytkownika Akademickiego (będącą załącznikiem A do Umowy Licencyjnej). Tekst oryginalny w języku angielskim, dostępne jest polskie tłumaczenie.<br />
<br />
== Korzystanie w WCSS ==<br />
W [[WCSS]] ABAQUS dostępny jest na klastrze [[Bem]] oraz na [[klaster kampusowy|klastrze kampusowym PLATON U3]]. Zaleca się, aby obliczenia długotrwałe uruchamiać na Bemie.<br />
<br />
<br />
Najlepszym sposobem na korzystanie z interfejsu graficznego programu ABAQUS jest zalogowanie się za pomocą protokołu NX na maszynę ui.wcss.pl. Służy do tego klient [[Jak korzystać z NoMachine|NoMachine]].<br />
<br />
=== Bem ===<br />
Na klastrze [[Bem]] dostępna jest wersja 6.14-2 oraz 2017. Instalacja umożliwia równoległe wykonywanie obliczeń w trybie wątków (threads) oraz uruchomienie interfejsu graficznego CAE.<br />
<br />
===== Środowisko i praca interaktywna =====<br />
Interfejs graficzny CAE można uruchomić w kolejce jako zadanie interaktywne:<br />
> qsub -X -I -l walltime=4:00:00<br />
> module load abaqus<br />
> abaqus cae<br />
<br />
Krótki opis jak wywoływać polecenia ABAQUSa dostępny jest po wydaniu komendy:<br />
> abaqus help<br />
<br />
===== Uruchamianie zadań w kolejce =====<br />
Obliczeniowe zadania pakietu ABAQUS należy uruchamiać korzystając z dostępnego skryptu sub-abaqus-6.14 <br />
<br />
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:<br />
> sub-abaqus<br />
Usage: /usr/local/bin/sub-abaqus input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-p cores (default - 1)<br />
-m memory (in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
-j job_name<br />
<br />
Na przykład<br />
<br />
> sub-abaqus test.inp -q main -p 2 -m 4000 -w 2 -j job_name<br />
<br />
Zadanie uruchomione zostanie na 2 rdzeniach, wymaga 4000 MB RAM (po 2000 MB na proces), walltime zadania jest równy 2 godziny.<br />
<br />
<br />
'''Uwaga'''<br />
<br />
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).<br />
<br />
===== Środowisko i praca interaktywna =====<br />
Na klastrze Bem interfejs graficzny CAE można uruchomić w kolejce jako zadanie interaktywne.<br />
<br />
Do uruchomiania aplikacji w zadaniu interaktywnym służą następujące polecenia:<br />
> qsub -I -X -l walltime=06:00:00 -N Abaqus_6.14-2<br />
> module load abaqus<br />
> abaqus cae<br />
<br />
Krótki opis jak wywoływać polecenia ABAQUSa dostępny jest po wydaniu komendy:<br />
> abaqus help<br />
<br />
<br />
Jak uzyskać informacje o kolejkach dostępnych na klastrze Bem opisano w artykule [[Konfiguracja kolejek PBS]].<br />
<br />
=== Klaster kampusowy ===<br />
Aby korzystać z aplikacji w infrastrukturze PLATON U3 w WCSS wymagana jest rejestracja w [https://wcss.cloud.pionier.net.pl/ portalu].<br />
<br />
== Korzystanie na własnym komputerze ==<br />
Zarejestrowany użytkownik WCSS może zainstalować oprogramowanie Abaqus na własnym komputerze i zdalnie korzystać z licencji udostępnianej przez WCSS. Dostęp do serwera licencji możliwy jest poprzez system [[Korzystanie z VPN|VPN]]. Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]]<br />
<br />
=== Dostęp do serwera licencji ===<br />
Podczas instalacji jako adres serwera licencji należy podać:<br />
<br />
'''27000@menkar.wcss.pl'''<br />
<br />
Gdyby zachodziła konieczność zmiany tej informacji już po instalacji programu, to można to zrobić edytując plik '''abaqus_v6.env''', który należy wyszukać w katalogu instalacji (dokładna lokalizacja może być różna dla różnych wersji). Adres serwera licencji podany jest tam jako wartość parametru '''abaquslm_license_file''', np.<br />
<br />
'''abaquslm_license_file="27000@menkar.wcss.pl"'''<br />
<br />
<br />
== Dokumentacja ==<br />
* [http://www.3ds.com Strona domowa Dassault Systemes]<br />
* [http://www.3ds.com/products/simulia/portfolio/abaqus/overview/ Opis produktu na stronie producenta]<br />
* [http://www.budsoft.com.pl/ Strona przedstawiciela ABAQUSa w Polsce]<br />
<br />
=== Publikacje wprowadzające do MES ===<br />
* Wiesław Śródka, "[http://www.dbc.wroc.pl/Content/970/srodka.pdf Trzy lekcje metody elementów skończonych: materiały pomocnicze do przedmiotu wytrzymałość materiałów]", Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 2004.<br />
* E. Rusiński, J. Czmochowski, T. Smolnicki, "[http://www.dbc.wroc.pl/dlibra/docmetadata?id=462 Zaawansowana metoda elementów skończonych w konstrukcjach nośnych]", Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 2000.<br />
<br />
<br />
{{oprogramowanie}}<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Lustre&diff=5667Lustre2016-11-16T12:39:53Z<p>Dzieko: </p>
<hr />
<div>===Lustre w WCSS===<br />
[[Grafika:Lustre.jpg|thumb|400px|Lustre w KDM WCSS]]<br />
<br />
Współdzielony system plików Lustre składa się z:<br />
<br />
* dwie macierze dyskowe DDN SFA14KX-40,<br />
* 2 serwery MDS i 8 serwerów OSS,<br />
* przesyłanie danych przez sieć [[Infiniband]] - podłączenie macierzy, serwerów MDS i OSS w pełni redundantne (bez pojedyńczych punktów awarii),<br />
* pojemność surowa: 1500 TB,<br />
* parametry wydajnościowe (blok 1MB):<br />
** zapis liniowy z dowolnego węzła klastra [[Bem]]: 5 GB/s<br />
** łączny odczyt liniowy: 75 GB/s,<br />
** łączny zapis liniowy: 75 GB/s.<br />
<br />
===Zalecenia dla użytkowników===<br />
<br />
* Zawartość dysku /lustre nie jest w żaden sposób zabezpieczana przez WCSS i może zostać w każdej chwili skasowana lub utracona bez ostrzeżenia. Użytkownicy powinni zabezpieczać ważne wyniki we własnym zakresie.<br />
* Nie wolno tworzyć wielu małych plików - system Lustre jest zoptymalizowany do przetwarzania dużych plików.<br />
* Każde zadanie obliczeniowe automatycznie tworzy podkatalog na dysku /lustre a jego ścieżka jest przechowywania w zmiennej $TMPDIR. Zachęcamy użytkowników do umieszczania tam danych tymczasowych generowanych podczas obliczeń. Katalog ten jest automatycznie kasowany po zakończeniu zadania.<br />
* Brak limitów (kwot) dyskowych (na razie ;).<br />
* Pliki nie używane dłużej niż 1 miesiąc będą automatycznie kasowane.<br />
<br />
=== Interesujące strony ===<br />
<br />
* Opis systemu plików Lustre: http://pl.wikipedia.org/wiki/Lustre_(system_plików)<br />
* Lustre: http://www.lustre.org/<br />
* Macierze DDN: http://www.datadirectnet.com/<br />
* Infrastruktura [[Infiniband]]: http://www.voltaire.com<br />
<br />
[[Kategoria:Storage]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Xaim&diff=5661Xaim2016-10-26T09:16:48Z<p>Dzieko: /* Środowisko i praca interaktywna */</p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Xaim</small><br />
<br />
'''Xaim''' - [http://pl.wikipedia.org/wiki/Interfejs_graficzny GUI] dla aplikacji bazujących na Kwantowej teorii atomów w cząsteczkach, takich jak :<br />
*Xaim-EXTREME<br />
*Xaim-FLOPO<br />
<br />
Program jako input wykorzystuje pliki o rozszerzeniu .wfn zawierającege dane na temat geometrii cząsteczki.<br />
<br />
=== Środowisko i praca interaktywna ===<br />
Praca z pakietem w trybie interaktywnym jest możliwa po uruchomieniu zadania interaktywnego w jednej z kolejek [[PBS]], np:<br />
> qsub -I -l walltime=1:00:00<br />
<br />
Środowisko programu inicjalizowane jest w powłoce przez polecenie:<br />
> module load xaim (dla wersji domyślnej - najnowszej)<br />
<br />
Po ustawieniu środowiska dla danej wersji można korzystać z polecenia do uruchamiania programu głównego (oraz szeregu narzędzi), np.:<br />
> xaim <plik_wejsciowy><br />
<br />
Podręcznik użytkownika:<br />
http://www.quimica.urv.es/XAIM/Xaim-1.0.pdf<br />
<br />
[[Kategoria:Oprogramowanie obecnie niewspierane]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Xaim&diff=5660Xaim2016-10-26T09:08:30Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Xaim</small><br />
<br />
'''Xaim''' - [http://pl.wikipedia.org/wiki/Interfejs_graficzny GUI] dla aplikacji bazujących na Kwantowej teorii atomów w cząsteczkach, takich jak :<br />
*Xaim-EXTREME<br />
*Xaim-FLOPO<br />
<br />
Program jako input wykorzystuje pliki o rozszerzeniu .wfn zawierającege dane na temat geometrii cząsteczki.<br />
<br />
=== Środowisko i praca interaktywna ===<br />
Praca z pakietem w trybie interaktywnym jest możliwa po uruchomieniu zadania interaktywnego w jednej z kolejek [[PBS]], np:<br />
> qsub -I -q short6h<br />
<br />
Środowisko programu inicjalizowane jest w powłoce przez polecenie:<br />
> module load xaim (dla wersji domyślnej - najnowszej)<br />
<br />
Po ustawieniu środowiska dla danej wersji można korzystać z polecenia do uruchamiania programu głównego (oraz szeregu narzędzi), np.:<br />
> xaim <plik_wejsciowy><br />
<br />
Podręcznik użytkownika:<br />
http://www.quimica.urv.es/XAIM/Xaim-1.0.pdf<br />
<br />
[[Kategoria:Oprogramowanie obecnie niewspierane]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Gaussian&diff=5551Gaussian2016-04-22T12:26:02Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Gaussian</small><br />
<br />
{{aplikacja|nazwa=Gaussian|logo=[[Plik:Gausslogo.jpg|noframe|center]]|serwer=[[Bem]]|wersja='''2009 E01''', 2009 D01, 2009 B01, 2003 E01}}<br />
<br />
'''Gaussian''' jest jednym z najpopularniejszych programów do modelowania układów cząsteczkowych z wykorzystaniem mechaniki kwantowej. Stosowany jest przez chemików, fizyków i inżynierów w dziedzinie chemii teoretycznej i eksperymentalnej. Program jest szczególnie przydatny w obszarach, w których szybko zachodzące zmiany i krótko trwające stany pośrednie układów uniemożliwiają obserwację eksperymentalną zachodzących w nich procesów. Gaussian umożliwia badanie układów na poziomie ab initio oraz na poziomie bardziej uproszczonym (np. półempirycznym).<br />
<br />
== Informacje ogólne ==<br />
<br />
Pakiet Gaussian został pierwotnie opracowany przez zespół J.A. Pople'a. Pierwsza wersja pakietu udostępniona została w 1976 roku pod nazwą Gaussian-76. Kolejne wersje nazywano odpowiednio do roku, w którym były wydawane, Gaussian-80, -82, -86, -88, -90, -92, -94, -98, -03 i wersja -09.<br />
<br />
Gaussian 98/03 posiada zdolność prognozowania wielu własności cząsteczek i reakcji, włączając:<br />
* energie i struktury molekularne,<br />
* energie i struktury stanów przejściowych,<br />
* częstości drgań,<br />
* widma IR i Raman'owskie,<br />
* własności termochemiczne,<br />
* energie wiązań i ścieżki reakcji,<br />
* orbitale molekularne,<br />
* ładunki atomowe,<br />
* momenty multipolowe,<br />
* stałe ekranowania i podatności magnetyczne NMR,<br />
* powinowactwo elektronowe i potencjały jonizacyjne,<br />
* polaryzowalności i hiperpolaryzowalności,<br />
* potencjały elektrostatyczne i gęstości elektronowe,<br />
* i wiele innych.<br />
<br />
Obliczenia dla danego układu cząsteczek mogą być wykonywane w fazie gazowej lub roztworze, w stanie podstawowym oraz w stanie wzbudzonym.<br />
<br />
Nowości Gaussiana 03 to m.in. poszerzona funkcjonalność metody ONIOM czy metody rozwiązywania PCM (ang.''Polarizable Continuum Model'').<br />
<br />
Program Gaussian można uruchamiać na większości z dostępnych platform sprzętowych i systemowych, począwszy od komputerów klasy PC/Macintosh z Windows, Linux lub MacOS, poprzez praktycznie wszystkie uniksowe stacje robocze, po superkomputery wszystkich producentów. Gaussian może być wykonywany równolegle w środowiskach SMP (oraz rozproszonych, po zakupieniu dodatkowego pakietu Linda).<br />
<br />
== GAUSSIAN w WCSS ==<br />
W [[WCSS]] pakiet GAUSSIAN jest dostępny na klastrach [[Supernova]] i [[Bem]].<br />
<br />
=== Zalecenia ogólne ===<br />
<br />
* Podstawowe aspekty wydajności obliczeń Gaussianem zostały omówione częściowo na stronie producenta: http://www.gaussian.com/g_ur/m_eff.htm .<br />
<br />
* Oszacowanie wymaganej pamięci i wskazówki dot. wydajności obliczeń: http://www.gaussian.com/g_tech/g_ur/m_eff.htm<br />
:W szczególności należy zwrócić uwagę, że alokowanie bardzo dużej pamięci nie wpływa liniowo na wydajność obliczeń. Użycie zbyt dużej pamięci może wręcz spowolnić działanie programu. Do oszacowania pamięci dla obliczeń częstości w HF i DFT można użyć programu ''freqmem'' (http://www.gaussian.com/g_tech/g_ur/m_utils.htm). Powinno to dawać również rozsądne szacunki dla optymalizacji i metod post-HF.<br />
<br />
* Najwięcej problemów sprawiają zadania wymagające dużo dysku. Jeśli zadanie generuje kilkadziesiąt (lub więcej) GB danych, to wyszukanie wartości całki w takim pliku zajmuje więcej czasu niż jej doliczenie na szybkiej maszynie. Wtedy należy używać trybu ''direct:''<br />
SCF=DIRECT<br />
:Dodatkowo, silne obciążenie podsystemu dyskowego komputera stopuje całą maszynę. Oczywiście, zadania, których nie można uruchomić w trybie bezpośrednim, ciągle można liczyć w WCSS. Prosimy jednak pamiętać, że jeśli zagrozi to przepełnieniem dysków <code>/scratch</code> i przerwaniem innych zadań, to zadanie takie zostanie zabite. Użytkownicy wymagający więcej przestrzeni dyskowej proszeni są o [[kontakt]] przed rozpoczęciem obliczeń.<br />
<br />
* Gaussian zainstalowany jest na poszczególnych maszynach w podkatalogach <code>/usr/local/gaussian/WERSJA/</code> lub <code>/usr/local/gaussian-WERSJA/</code>.<br />
<br />
* Jeśli istnieje potrzeba użycia poleceń takich jak ''formchk'', to należy to zrobić w zadaniu interaktywnym (przykładowe uruchomienie poniżej).<br />
qsub -I -l walltime=06:00:00 -l select=1:ncpus=1:mem=1000MB -l software=formchk<br />
module load gaussian/g09.E.01<br />
formchk<br />
<br />
* Gaussian nie akceptuje DOS-owego znaku powrotu karetki (znak <code>^M</code>) w plikach danych. Sprawdzenie można wykonać poleceniem:<br />
vim -b plik-danych<br />
<br />
* Sposób cytowania zalecany przez producenta znajduje się na stronie:<br />
*:http://www.gaussian.com/g_tech/g_ur/m_citation.htm<br />
<br />
* Informacje o wykonywaniu zadań równoległych: http://www.gaussian.com/<br />
<br />
=== Wstawianie zadań ===<br />
<br />
* Zadania obliczeniowe należy uruchamiać za pośrednictwem systemu kolejkowego.<br />
<br />
* Do wstawiania zadań Gaussiana do systemu kolejkowania [[PBS]] można wykorzystać skrypty przygotowane przez WCSS. Jest to metoda zalecana, ale nie konieczna - można używać własnych skryptów:<br />
<br />
sub-gaussian sub-gaussian-2003-E.01 sub-gaussian-2009-B.01 sub-gaussian-2009-D.01 <br />
sub-gaussian-2003-e01 sub-gaussian-2009-b01 sub-gaussian-2009-d01 sub-gaussian-2009-E.01 <br />
sub-gaussian-2003-e.01 sub-gaussian-2009-b.01 sub-gaussian-2009-d.01<br />
<br />
<br />
Uruchomienie skryptu sub-gaussian bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować (uruchamia domyślną wersję programu):<br />
<br />
> sub-gaussian-2009-E.01 <br />
Usage: /usr/local/bin/sub-gaussian-2009-E.01 input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-p cores (default - 24, possible values: 4, 12, 24)<br />
-m memory (in MB, default - 56000, may be set up to 121000)<br />
-w walltime (in hours, default - 504)<br />
-b memory_buffer (in MB, default - 4000) - do not use it for typical calculation<br />
-f (run formchk on the checkpoint file on the end)<br />
<br />
* Dla wersji 2003 zadania są automatycznie konfigurowane do wykorzystania 4 i 500 MB pamięci. <br />
<br />
* Pozostałe parametry konfiguracyjne znajdują się w pliku /usr/local/gaussian/WERSJA/g0X/Default.Route<br />
<br />
=== Znane problemy ===<br />
<br />
* Problemy napotkane w wersji 2009-A do D:<br />
** Gaussian bardzo agresywnie alokuje pamięć w niektórych przypadkach. W efekcie system operacyjny Linux nie nadąża zrzucać buforów dyskowych, aby zwolnić pamięć. Skutkuje to błędami ''"memory allocation failed"''. Jest to wina algorytmów zastosowanych w programie. Autorzy nie reagują na nasze raporty błędów. Wdrożone zostało obejście problemu, ale nie zawsze skuteczne. Zalecamy sukcesywne zwiększanie wartości bufora podawanego jako opcja " -b " dla skryptu '''sub-gaussian'''.<br />
<br />
* Problemy napotkane w wersji 2009-D01:<br />
** Użycie O3LYP skutkuje komunikatem ''"Different local and non-local exchange scaling not allowed for this functional"''. jest to błąd i należy użyć starszej wersji programu.<br />
** Użycie Add/Mod Redundant:<br />
<br />
There was a change in the "ModRedundant/AddRedundant" code in G09 rev.<br />
C.01 and later. We have found that the input of a value to modify an<br />
internal coordinate from that present in the input structure can cause<br />
a number of problems and it is not guaranteed to work, so we have<br />
disabled this function (the online documentation of "Geom" and "Opt"<br />
should reflect the change now). In G09 rev. C.01 and D.01, the syntax<br />
on the "ModRedundant" section is only valid when the value of the<br />
coordinate is not set, so it uses the value that corresponds with the<br />
input geometry, for example:<br />
<br />
D 5 1 6 10 S 20 5.000000<br />
<br />
If the value of the bond/angle/dihedral coordinate that the user wants<br />
to freeze/scan is not at the desired value in the input geometry, then<br />
one should modify the input geometry and not give different values<br />
here (for example, by opening the input structure with GaussView, then<br />
using the "Bond/Angle/Dihedral" tool and move the slide to get the<br />
exact value of the desired coordinate). If one uses the "Redundant<br />
Coordinate Editor" in GaussView to define the redundant internal<br />
coordinates to freeze or scan, then one should leave as "Don't Set"<br />
the pull down menu in that window. The options "Set" and "Increment"<br />
in such window are no longer available in G09 rev. C.01.<br />
<br />
When one uses the "Bond", "Angle" and "Dihedral" tools in GaussView,<br />
one has several modes in which this internal coordinate can be<br />
modified, such as rotating groups, rotating atoms, or keeping one side<br />
frozen but rotating only the other side. The fact that a modification<br />
of one internal coordinate can be done in several different ways<br />
underscores why the "old syntax" of allowing modification of the<br />
coordinate value is problematic. Because of the redundancy of the<br />
"redundant internal coordinates", some internal coordinates could be<br />
strongly coupled with others. Thus, a modification of the value in one<br />
internal coordinate might not be possible without modifying the values<br />
of other redundant internal coordinates, therefore becoming a not<br />
well-defined problem because there could be multiple solutions<br />
depending on how many other (and which) internal coordinates are<br />
allowed to be modified and by how much. This is our motivation for<br />
disabling the "old syntax". We understand that the "old syntax" may<br />
have worked for users in many cases before but we considered that this<br />
was not reliable enough to be of general use.<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Dokumentacja ==<br />
Dokumentacja Gaussiana 94 i 98 dostępna jest w formie drukowanej:<br />
* E. Frisch, Michael J. Frisch, James B. Foresman, "Gaussian 94 User's Reference", Manual Version: 5.1, February, 1996<br />
* E. Frisch, Michael J. Frisch, "Gaussian 98 User's Reference", Manual Version: 6.1, January, 1999<br />
* E. Frisch, Michael J. Frisch, Alice B. Nielsen, "Gaussian 98 Programmer's Reference", Manual Version: 6.0, August, 1998<br />
<br />
=== Gaussian w sieci ===<br />
<br />
* [http://www.gaussian.com Strona domowa Gaussiana]<br />
* [http://server.ccl.net/cca/documents/dyoung/topics-orig/gaussian.html Krótki przewodnik dla początkujących]<br />
* [http://www.spectroscopynow.com/Spy/basehtml/SpyH/1,2466,5-0-0-0-0-home-0-0,00.html Baza wiedzy o NMR, IR, RAMAN *]<br />
* [http://arrhenius.rider.edu:16080/nmr/NMR_tutor/dictionary/dict_intro.html słownik on-line pojęć NMR *]<br />
* [http://www.molnet.eu/index.php?option=com_content&view=category&id=34&Itemid=53 Gaussian w praktyce]<br />
* [http://joaquinbarroso.com/category/white-papers/gaussian/ Dr. Joaquin Barroso's blog]<br />
* [http://docs.notur.no/application-support/chemistry-applications/gaussian-1/troubleshooting-gaussian-calculations Troubleshooting Gaussian calculations]<br />
* [http://accelrys.com/products/datasheets/interface-to-gaussian.pdf Materials Studio user interface to Gaussian]<br />
* [http://www.teokem.lu.se/~ulf/Methods/gaussian.html How to start and run a simple calculation with Gaussian]<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]], [[Obliczenia wibracyjnie rozdzielczych widm elektronowych w Gaussianie 09]]<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=GAMESS&diff=5301GAMESS2016-02-16T15:49:29Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < GAMESS</small><br />
{{aplikacja|nazwa=GAMESS|logo=[[Plik:Gamess.png]]|serwer=[[Bem]]|wersja=2014.12.05-R1}}<br />
<br />
'''GAMESS''' (ang. ''The General Atomic and Molecular Electronic Structure System'') jest wielofunkcyjnym pakietem do obliczeń metodą ''ab initio'' w dziedzinie chemii kwantowej. Program rozwijany jest na Uniwersytecie Stanowym Iowa przez profesora Marka Gordona oraz członków jego grupy.<br />
<br />
== Informacje ogólne ==<br />
Niektóre z możliwości programu to:<br />
* wyznaczanie funkcji falowych metodami SCF wielu typów (RHF, UHF, ROHF, GVB, MCSCF) oraz poprawki korelacyjne (CI, PT2, CC, DFT) dla niektórych z nich<br />
* wyznaczanie gradientów analitycznych dla optymalizacji geometrii, poszukiwania stanów pzejściowych oraz dróg reakcji<br />
* wyznaczanie hessianu energii w celu przewidywania częstości drgań i własności termochemicznych<br />
* wyznaczanie wielu własności molekularnych, od momentów dipolowych po hiperpolaryzowalności<br />
* szeroki wachlarz baz funkcyjnych obejmuje atomy aż do radonu, bazy można także wczytywać z zewnątrz.<br />
<br />
Wraz z pakietem udostępnianych jest kilka programów graficznych pozwalających obejrzeć rezultaty obliczeń. Wiele obliczeń może być realizowanych z użyciem technik bezpośrednich jak również równolegle na odpowiedniej platformie sprzętowej. Poniższa tabela zawiera zestawienie możliwości GAMESS-a.<br />
<br />
;Zestawienie możliwości pakietu GAMESS<br />
{|style="border:1px solid #737889; margin-right:2px; margin-left:2px; padding-left:2px;" cellspacing="0" <br />
|'''Typ SCF= '''<br />
|''' RHF '''<br />
|''' ROHF'''<br />
|'''UHf'''<br />
|'''GVB'''<br />
|'''MCSCF'''<br />
|-<br />
|energia<br />
|CDP<br />
|CDP<br />
|CDP<br />
|CDP<br />
|CDP<br />
|-<br />
|gradienty analityczne<br />
|CDP<br />
|CDP<br />
|CDP<br />
|CDP<br />
|CDP<br />
|-<br />
|numeryczny Hessian<br />
|CDP<br />
|CDP<br />
|CDP<br />
|CDP<br />
|CDP<br />
|-<br />
|analityczny Hessian<br />
|CDP<br />
|CDP<br />
| -<br />
|CDP<br />
| -<br />
|-<br />
|energia CI<br />
|CDP<br />
|CDP<br />
| -<br />
|CDP<br />
|CDP<br />
|-<br />
|gradient CI<br />
|CD<br />
| -<br />
| -<br />
| -<br />
| -<br />
|-<br />
|energia MP2<br />
|CDP<br />
|CDP<br />
|CDP<br />
| -<br />
|CP<br />
|-<br />
|gradient MP2<br />
|CDP<br />
| -<br />
|CD<br />
| -<br />
| -<br />
|-<br />
|energia CC<br />
|CD<br />
| -<br />
| -<br />
| -<br />
| -<br />
|-<br />
|energia DFT<br />
|CDP<br />
|CDP<br />
|CDP<br />
| -<br />
| -<br />
|-<br />
|gradient DFT<br />
|CDP<br />
|CDP<br />
|CDP<br />
| -<br />
| -<br />
|-<br />
|energia MOPAC<br />
|tak<br />
|tak<br />
|tak<br />
|tak<br />
| -<br />
|-<br />
|gradient MOPAC<br />
|tak<br />
|tak<br />
|tak<br />
| -<br />
| -<br />
|}<br />
<small><br />
Legenda:<br />
<br />
C = konwencjonalne przechowywanie całek na dysku (ang. Conventional storage)<br />
<br />
D = bezpośrednie obliczanie całek AO (ang. Direct evaluation)<br />
<br />
P = możliwe wykonanie rówoległe (ang. Parallel execution)<br />
</small><br />
<br />
== GAMESS w WCSS ==<br />
Pakiet GAMESS jest dostępny na klastrze [[Bem]].<br />
<br />
;Wstawianie zadań do kolejki:<br />
<br />
sub-gamess<br />
<br />
Usage: /usr/local/bin/sub-gamess input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-n nodes (default - 1)<br />
-p cores (per node, default - 2)<br />
-m memory (per node, in MB, default - 2000)<br />
-w walltime (in hours, default - 504)<br />
-b external basis set path<br />
<br />
Wyniki w plik.out, pliki PUNCH i IRCDATA w katalogu zadania.<br />
<br />
GAMESS wykorzystuje InfiniBand. Możliwe są obliczenia na więcej niż jednym węźle obliczeniowym.<br />
<br />
== Informacje o wykorzystaniu ==<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Dokumentacja ==<br />
Dokumentacja znajduje się w podkatalogach <code>/usr/local/gamess/WERSJA/doc/</code> na poszczególnych systemach obliczeniowych KDM WCSS:<br />
<br />
* INTRO.DOC - wstępne informacje wraz z listą możliwości i listą autorów pakietu<br />
* INPUT.DOC - dokładny opis struktury pliku wejściowego<br />
* TESTS.DOC - przykładowe pliki wejściowe<br />
* REFS.DOC - odnośniki i sposoby użycia programu<br />
* PROG.DOC - kompilacja, struktura programu i lista plików<br />
* IRON.DOC - informacje specyficzne dla typu maszyny<br />
<br />
=== GAMESS w sieci ===<br />
* [http://www.msg.ameslab.gov/GAMESS/GAMESS.html Strona domowa GAMESSa]<br />
<br />
== Zobacz też ==<br />
* [[Oprogramowanie KDM]]<br />
<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dziekohttps://kdm.wcss.pl/w/index.php?title=Gaussian&diff=5300Gaussian2016-02-16T15:45:39Z<p>Dzieko: </p>
<hr />
<div><small>< [[Podręcznik użytkownika KDM]] < [[Oprogramowanie KDM]] < [[Oprogramowanie naukowe]] < Gaussian</small><br />
<br />
{{aplikacja|nazwa=Gaussian|logo=[[Plik:Gausslogo.jpg|noframe|center]]|serwer=[[Supernova]]|serwer2=[[Bem]]|wersja=2009 E01, 2009 D01, 2009 C01, 2009 B02, 2003 E01|wersja21=2009 E01, 2009 D01, 2009 B01}}<br />
<br />
'''Gaussian''' jest jednym z najpopularniejszych programów do modelowania układów cząsteczkowych z wykorzystaniem mechaniki kwantowej. Stosowany jest przez chemików, fizyków i inżynierów w dziedzinie chemii teoretycznej i eksperymentalnej. Program jest szczególnie przydatny w obszarach, w których szybko zachodzące zmiany i krótko trwające stany pośrednie układów uniemożliwiają obserwację eksperymentalną zachodzących w nich procesów. Gaussian umożliwia badanie układów na poziomie ab initio oraz na poziomie bardziej uproszczonym (np. półempirycznym).<br />
<br />
== Informacje ogólne ==<br />
<br />
Pakiet Gaussian został pierwotnie opracowany przez zespół J.A. Pople'a. Pierwsza wersja pakietu udostępniona została w 1976 roku pod nazwą Gaussian-76. Kolejne wersje nazywano odpowiednio do roku, w którym były wydawane, Gaussian-80, -82, -86, -88, -90, -92, -94, -98, -03 i wersja -09.<br />
<br />
Gaussian 98/03 posiada zdolność prognozowania wielu własności cząsteczek i reakcji, włączając:<br />
* energie i struktury molekularne,<br />
* energie i struktury stanów przejściowych,<br />
* częstości drgań,<br />
* widma IR i Raman'owskie,<br />
* własności termochemiczne,<br />
* energie wiązań i ścieżki reakcji,<br />
* orbitale molekularne,<br />
* ładunki atomowe,<br />
* momenty multipolowe,<br />
* stałe ekranowania i podatności magnetyczne NMR,<br />
* powinowactwo elektronowe i potencjały jonizacyjne,<br />
* polaryzowalności i hiperpolaryzowalności,<br />
* potencjały elektrostatyczne i gęstości elektronowe,<br />
* i wiele innych.<br />
<br />
Obliczenia dla danego układu cząsteczek mogą być wykonywane w fazie gazowej lub roztworze, w stanie podstawowym oraz w stanie wzbudzonym.<br />
<br />
Nowości Gaussiana 03 to m.in. poszerzona funkcjonalność metody ONIOM czy metody rozwiązywania PCM (ang.''Polarizable Continuum Model'').<br />
<br />
Program Gaussian można uruchamiać na większości z dostępnych platform sprzętowych i systemowych, począwszy od komputerów klasy PC/Macintosh z Windows, Linux lub MacOS, poprzez praktycznie wszystkie uniksowe stacje robocze, po superkomputery wszystkich producentów. Gaussian może być wykonywany równolegle w środowiskach SMP (oraz rozproszonych, po zakupieniu dodatkowego pakietu Linda).<br />
<br />
== GAUSSIAN w WCSS ==<br />
W [[WCSS]] pakiet GAUSSIAN jest dostępny na klastrach [[Supernova]] i [[Bem]].<br />
<br />
=== Zalecenia ogólne ===<br />
<br />
* Podstawowe aspekty wydajności obliczeń Gaussianem zostały omówione częściowo na stronie producenta: http://www.gaussian.com/g_ur/m_eff.htm .<br />
<br />
* Oszacowanie wymaganej pamięci i wskazówki dot. wydajności obliczeń: http://www.gaussian.com/g_tech/g_ur/m_eff.htm<br />
:W szczególności należy zwrócić uwagę, że alokowanie bardzo dużej pamięci nie wpływa liniowo na wydajność obliczeń. Użycie zbyt dużej pamięci może wręcz spowolnić działanie programu. Do oszacowania pamięci dla obliczeń częstości w HF i DFT można użyć programu ''freqmem'' (http://www.gaussian.com/g_tech/g_ur/m_utils.htm). Powinno to dawać również rozsądne szacunki dla optymalizacji i metod post-HF.<br />
<br />
* Najwięcej problemów sprawiają zadania wymagające dużo dysku. Jeśli zadanie generuje kilkadziesiąt (lub więcej) GB danych, to wyszukanie wartości całki w takim pliku zajmuje więcej czasu niż jej doliczenie na szybkiej maszynie. Wtedy należy używać trybu ''direct:''<br />
SCF=DIRECT<br />
:Dodatkowo, silne obciążenie podsystemu dyskowego komputera stopuje całą maszynę. Oczywiście, zadania, których nie można uruchomić w trybie bezpośrednim, ciągle można liczyć w WCSS. Prosimy jednak pamiętać, że jeśli zagrozi to przepełnieniem dysków <code>/scratch</code> i przerwaniem innych zadań, to zadanie takie zostanie zabite. Użytkownicy wymagający więcej przestrzeni dyskowej proszeni są o [[kontakt]] przed rozpoczęciem obliczeń.<br />
<br />
* Gaussian zainstalowany jest na poszczególnych maszynach w podkatalogach <code>/usr/local/gaussian/WERSJA/</code> lub <code>/usr/local/gaussian-WERSJA/</code>.<br />
<br />
* Jeśli istnieje potrzeba użycia poleceń takich jak ''formchk'', to należy to zrobić w zadaniu interaktywnym (przykładowe uruchomienie poniżej).<br />
qsub -I -q short6h -l software=formchk<br />
module load gaussian/g09.B.01<br />
formchk<br />
<br />
* Gaussian nie akceptuje DOS-owego znaku powrotu karetki (znak <code>^M</code>) w plikach danych. Sprawdzenie można wykonać poleceniem:<br />
vim -b plik-danych<br />
<br />
* Sposób cytowania zalecany przez producenta znajduje się na stronie:<br />
*:http://www.gaussian.com/g_tech/g_ur/m_citation.htm<br />
<br />
* Informacje o wykonywaniu zadań równoległych: http://www.gaussian.com/<br />
<br />
=== Wstawianie zadań ===<br />
<br />
* Do wstawiania zadań Gaussiana do systemu kolejkowania [[PBS]] można wykorzystać skrypty przygotowane przez WCSS. Jest to metoda zalecana ale nie konieczna - można używać własnych skryptów:<br />
<br />
sub-gaussian sub-gaussian-2009-a02 sub-gaussian-2009-c01-bigmem <br />
sub-gaussian-2003-d01 sub-gaussian-2009-b01 sub-gaussian-2009-d01<br />
<br />
:Na klastrze [[Supernova]]:<br />
<br />
/usr/local/bin/sub-gaussian plik_danych.inp kolejka liczba_procesorow pamiec_w_MB<br />
<br />
:Na klastrze [[Bem]]:<br />
<br />
sub-gaussian<br />
Usage: /usr/local/bin/sub-gaussian input_file [parameters]<br />
Parameters:<br />
-q queue (default - main)<br />
-p cores (default - 24, possible values: 4, 12, 24)<br />
-m memory (in MB, default - 56000, may be set up to 121000)<br />
-w walltime (in hours, default - 504)<br />
-b memory_buffer (in MB, default - 4000) - do not use it for typical calculation<br />
<br />
* Dla wersji 2003 (dostepna jedynie na klastrze Supernova) zadania są automatycznie konfigurowane do wykorzystania 4 lub 8 procesorów i 7 lub 15 GB pamięci oraz kolejki normal. Jeśli zachodzi potrzeba zmiany tych ustawień, to należy skopiować dany skrypt do własnego katalogu i zmodyfikować go według wskazówek zawartych w treści skryptu. Następnie należy wstawić zadanie do kolejki przy pomocy tak zmienionego skryptu:<br />
/home/USERNAME/moj-katalog/sub-gaussian <parametry><br />
<br />
* Pozostałe parametry konfiguracyjne znajdują się w pliku /usr/local/gaussian-WERSJA/g0X/Default.Route<br />
<br />
=== Znane problemy ===<br />
<br />
* Problemy napotkane w wersji 2009-A do D:<br />
** Gaussian bardzo agresywnie alokuje pamięć w niektórych przypadkach. W efekcie system operacyjny Linux nie nadąża zrzucać buforów dyskowych, aby zwolnić pamięć. Skutkuje to błędami ''"memory allocation failed"''. Jest to wina algorytmów zastosowanych w programie. Autorzy nie reagują na nasze raporty błędów. Wdrożone zostało obejście problemu, ale nie zawsze skuteczne. Zalecamy zmodyfikowane na własne potrzeby skryptu '''sub-gaussian''' i sukcesywne zwiększanie tam wartości zmiennej BUFOR.<br />
<br />
* Problemy napotkane w wersji 2009-D01:<br />
** Użycie O3LYP skutkuje komunikatem ''"Different local and non-local exchange scaling not allowed for this functional"''. jest to błąd i należy użyć starszej wersji programu.<br />
** Użycie Add/Mod Redundant:<br />
<br />
There was a change in the "ModRedundant/AddRedundant" code in G09 rev.<br />
C.01 and later. We have found that the input of a value to modify an<br />
internal coordinate from that present in the input structure can cause<br />
a number of problems and it is not guaranteed to work, so we have<br />
disabled this function (the online documentation of "Geom" and "Opt"<br />
should reflect the change now). In G09 rev. C.01 and D.01, the syntax<br />
on the "ModRedundant" section is only valid when the value of the<br />
coordinate is not set, so it uses the value that corresponds with the<br />
input geometry, for example:<br />
<br />
D 5 1 6 10 S 20 5.000000<br />
<br />
If the value of the bond/angle/dihedral coordinate that the user wants<br />
to freeze/scan is not at the desired value in the input geometry, then<br />
one should modify the input geometry and not give different values<br />
here (for example, by opening the input structure with GaussView, then<br />
using the "Bond/Angle/Dihedral" tool and move the slide to get the<br />
exact value of the desired coordinate). If one uses the "Redundant<br />
Coordinate Editor" in GaussView to define the redundant internal<br />
coordinates to freeze or scan, then one should leave as "Don't Set"<br />
the pull down menu in that window. The options "Set" and "Increment"<br />
in such window are no longer available in G09 rev. C.01.<br />
<br />
When one uses the "Bond", "Angle" and "Dihedral" tools in GaussView,<br />
one has several modes in which this internal coordinate can be<br />
modified, such as rotating groups, rotating atoms, or keeping one side<br />
frozen but rotating only the other side. The fact that a modification<br />
of one internal coordinate can be done in several different ways<br />
underscores why the "old syntax" of allowing modification of the<br />
coordinate value is problematic. Because of the redundancy of the<br />
"redundant internal coordinates", some internal coordinates could be<br />
strongly coupled with others. Thus, a modification of the value in one<br />
internal coordinate might not be possible without modifying the values<br />
of other redundant internal coordinates, therefore becoming a not<br />
well-defined problem because there could be multiple solutions<br />
depending on how many other (and which) internal coordinates are<br />
allowed to be modified and by how much. This is our motivation for<br />
disabling the "old syntax". We understand that the "old syntax" may<br />
have worked for users in many cases before but we considered that this<br />
was not reliable enough to be of general use.<br />
<br />
=== Informacje o wykorzystaniu ===<br />
{{Podziękowanie_WCSS}}<br />
<br />
== Dokumentacja ==<br />
Dokumentacja Gaussiana 94 i 98 dostępna jest w formie drukowanej:<br />
* E. Frisch, Michael J. Frisch, James B. Foresman, "Gaussian 94 User's Reference", Manual Version: 5.1, February, 1996<br />
* E. Frisch, Michael J. Frisch, "Gaussian 98 User's Reference", Manual Version: 6.1, January, 1999<br />
* E. Frisch, Michael J. Frisch, Alice B. Nielsen, "Gaussian 98 Programmer's Reference", Manual Version: 6.0, August, 1998<br />
<br />
=== Gaussian w sieci ===<br />
<br />
* [http://www.gaussian.com Strona domowa Gaussiana]<br />
* [http://server.ccl.net/cca/documents/dyoung/topics-orig/gaussian.html Krótki przewodnik dla początkujących]<br />
* [http://www.spectroscopynow.com/Spy/basehtml/SpyH/1,2466,5-0-0-0-0-home-0-0,00.html Baza wiedzy o NMR, IR, RAMAN *]<br />
* [http://arrhenius.rider.edu:16080/nmr/NMR_tutor/dictionary/dict_intro.html słownik on-line pojęć NMR *]<br />
* [http://www.molnet.eu/index.php?option=com_content&view=category&id=34&Itemid=53 Gaussian w praktyce]<br />
* [http://joaquinbarroso.com/category/white-papers/gaussian/ Dr. Joaquin Barroso's blog]<br />
* [http://docs.notur.no/application-support/chemistry-applications/gaussian-1/troubleshooting-gaussian-calculations Troubleshooting Gaussian calculations]<br />
* [http://accelrys.com/products/datasheets/interface-to-gaussian.pdf Materials Studio user interface to Gaussian]<br />
* [http://www.teokem.lu.se/~ulf/Methods/gaussian.html How to start and run a simple calculation with Gaussian]<br />
<br />
'''Zobacz też:''' [[Oprogramowanie KDM]], [[Obliczenia wibracyjnie rozdzielczych widm elektronowych w Gaussianie 09]]<br />
{{oprogramowanie}}<br />
<br />
[[Kategoria:Oprogramowanie]]<br />
[[Kategoria:Podręcznik użytkownika]]</div>Dzieko