<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://kdm.wcss.pl/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Magda</id>
	<title>KdmWiki - Wkład użytkownika [pl]</title>
	<link rel="self" type="application/atom+xml" href="https://kdm.wcss.pl/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Magda"/>
	<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/wiki/Specjalna:Wk%C5%82ad/Magda"/>
	<updated>2026-04-12T23:42:55Z</updated>
	<subtitle>Wkład użytkownika</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Materials_Studio&amp;diff=5664</id>
		<title>Materials Studio</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Materials_Studio&amp;diff=5664"/>
		<updated>2016-11-03T08:46:45Z</updated>

		<summary type="html">&lt;p&gt;Magda: /* Obliczenia na infrastrukturze PLATON-U3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Oprogramowanie KDM]] &amp;lt; [[Oprogramowanie naukowe]] &amp;lt; [[Biovia]] &amp;lt; Materials Studio&amp;lt;/small&amp;gt;&lt;br /&gt;
{{uwaga2|Z dniem &#039;&#039;&#039;30 września 2014&#039;&#039;&#039; zmienił się serwer licencji krajowej. Nowy serwer dostępny jest pod adresem: &#039;&#039;&#039;licenses2.icm.edu.pl&#039;&#039;&#039;.}}&lt;br /&gt;
{{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.}}&lt;br /&gt;
{{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=}}&lt;br /&gt;
&#039;&#039;&#039;Materials Studio&#039;&#039;&#039; - 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&#039;em).&lt;br /&gt;
&lt;br /&gt;
== Licencja ==&lt;br /&gt;
WCSS uczestniczy w licencji krajowej koordynowanej przez ICM. W ramach tej licencji w 2014/2015 r. dostępne są wszystkie moduły pakietu Materials Studio (zobacz też [[Biovia]]).&lt;br /&gt;
&lt;br /&gt;
=== Informacja o wykorzystaniu ===&lt;br /&gt;
Uprzejmie przypominamy o konieczności zamieszczania w publikacjach informacji o wykorzystaniu krajowej licencji Biovia (d. Accelrys). &lt;br /&gt;
&lt;br /&gt;
{{Podziękowanie_WCSS}}&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie aplikacji ==&lt;br /&gt;
Użytkownik może korzystać z MS zainstalowanego na serwerach WCSS lub zainstalować ten pakiet na swoim komputerze. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{note|Aby uzyskać dostęp do pakietów instalacyjnych oprogramowania i do serwera licencji należy uzyskać [[Jak zostać użytkownikiem KDM|grant/konto obliczeniowe]] w WCSS i zawnioskować o dostęp wysyłając e-mail pod adres kdm @ wcss.pl.}}&lt;br /&gt;
&lt;br /&gt;
=== Klient i obliczenia lokalne ===&lt;br /&gt;
Środowisko graficzne Materials Studio służące do wizualizacji i projektowania jest dostępne tylko w postaci klienta na system Microsoft Windows. Klient ma możliwość współpracy z serwerem zainstalowanym lokalnie lub na innym komputerze w sieci.&lt;br /&gt;
&lt;br /&gt;
Aby pracować w MS w pełni lokalnie instaluje się klienta wraz z serwerem w wersji na system Windows. Można również, na swoim drugim komputerze w sieci lokalnej z systemem klasy Unix, zainstalować serwer w wersji na Unixa. Są to opcje korzystne, jeśli użytkownik potrzebuje na bieżąco śledzić w interfejsie graficznym przebieg obliczeń.&lt;br /&gt;
&lt;br /&gt;
Klient MS 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 przez tzw. Gateway.&lt;br /&gt;
&lt;br /&gt;
Po zainstalowaniu oprogramowania należy:&lt;br /&gt;
* skonfigurować w kliencie [[Konfiguracja klienta Materials Studio - serwer licencji|serwer licencji krajowej]],&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Obliczenia zdalne przez Gateway ===&lt;br /&gt;
WCSS udostępnia serwer MS na klastrze [[Bem]]. Na klastrze działa tzw. &#039;&#039;&#039;Gateway&#039;&#039;&#039;, za pośrednictwem którego można zdalnie, z poziomu interfejsu klienta, zlecać obliczenia do wykonania na serwerze. Aby móc to robić należy: pobrać oprogramowanie (pliki instalacyjne udostępniane są na wniosek użytkownika), zainstalować pakiet na swoim komputerze (wystarczy instalacja klienta MS), uruchomić klienta, utworzyć nowy projekt i wybrać z menu &#039;&#039;&#039;Tools&#039;&#039;&#039; polecenie &#039;&#039;&#039;Server console&#039;&#039;&#039;. Następnie w oknie &#039;&#039;&#039;Server console&#039;&#039;&#039; należy dodać nowy &#039;&#039;&#039;Gateway&#039;&#039;&#039; o parametrach:&lt;br /&gt;
&lt;br /&gt;
 adres: &#039;&#039;&#039;bem.wcss.pl&#039;&#039;&#039;&lt;br /&gt;
 port: &#039;&#039;&#039;18888&#039;&#039;&#039;&lt;br /&gt;
 połączenie: HTTPS&lt;br /&gt;
&lt;br /&gt;
Zobacz też szczegółowe instrukcje:&lt;br /&gt;
* [[Konfiguracja klienta Materials Studio | &#039;&#039;&#039;Jak sprawdzić prawidłową konfigurację klienta?&#039;&#039;&#039;]]&lt;br /&gt;
* [[Konfiguracja klienta Materials Studio - serwer licencji | &#039;&#039;&#039;Jak wskazać serwer licencji?&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
Dla tak podłączonego serwera można obejrzeć listę dostępnych modułów.&lt;br /&gt;
&lt;br /&gt;
Aby mieć możliwość zdalnego zlecania zadań przez Gateway, trzeba uzyskać &#039;&#039;&#039;login i hasło do Gateway&#039;a&#039;&#039;&#039; (niezależny od loginu i hasła systemowego). Użytkowników zainteresowanych uzyskaniem dostępu prosimy o skontaktowanie się w tym celu z [[kontakt|administratorami]].&lt;br /&gt;
&lt;br /&gt;
==== Status zadań ====&lt;br /&gt;
Zadania zlecane przez Gateway trafiają do systemu kolejkowego PBS, do kolejki wybranej przed zleceniem obliczeń. Status zadań i ich historię można obserwować z poziomu klienta lub przez stronę WWW Gateway&#039;a: https://bem.wcss.pl:18888/&lt;br /&gt;
&lt;br /&gt;
==== Zmiana hasła w Gateway&#039;u ====&lt;br /&gt;
Użytkownik może samodzielnie zmienić swoje hasło do Gateway&#039;a. Należy w tym celu:&lt;br /&gt;
* wejść na stronę WWW Gateway&#039;a:  https://bem.wcss.pl:18888/&lt;br /&gt;
* kliknąć w lewym menu pozycję &amp;quot;Password&amp;quot; i zalogować się dotychczasowym loginem i hasłem,&lt;br /&gt;
* podać w formularzu stare i nowe hasło.&lt;br /&gt;
&lt;br /&gt;
=== Obliczenia wsadowe ===&lt;br /&gt;
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 &amp;lt;code&amp;gt;sub-moduł&amp;lt;/code&amp;gt; (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). &lt;br /&gt;
&lt;br /&gt;
;Gotowe skrypty&lt;br /&gt;
W ścieżce &amp;lt;code&amp;gt;/usr/local/bin&amp;lt;/code&amp;gt; znajdują się gotowe skrypty wstawiające do kolejek PBS obliczenia niektórych modułów MS:&lt;br /&gt;
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; sub-castep-8.0&lt;br /&gt;
 Usage: /usr/local/bin/sub-castep-8.0 [parameters] name1 [name2] [name3] [...]&lt;br /&gt;
 Parameters:&lt;br /&gt;
 -q queue (default - main)&lt;br /&gt;
 -n nodes (default - 1)&lt;br /&gt;
 -p cores (per node, default - 1)&lt;br /&gt;
 -m memory (per node, in MB, default - 2000)&lt;br /&gt;
 -w walltime (in hours, default - 504)&lt;br /&gt;
 -i &amp;quot;additional parameters ...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Uwaga&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
;Polecenia dostępne na klastrze [[Bem]]&lt;br /&gt;
 &#039;&#039;&#039;AmorphousCell&#039;&#039;&#039; /home/biovia/MaterialsStudio8.0/etc/AmorphousCell/bin/RunAmorphousCell.sh&lt;br /&gt;
 &#039;&#039;&#039;CASTEP&#039;&#039;&#039;        /home/biovia/MaterialsStudio8.0/etc/CASTEP/bin/RunCASTEP.sh&lt;br /&gt;
 &#039;&#039;&#039;DFTB+&#039;&#039;&#039;         /home/biovia/MaterialsStudio8.0/etc/DFTB/bin/RunDFTB.sh&lt;br /&gt;
 &#039;&#039;&#039;DFTBpara&#039;&#039;&#039;      /home/biovia/MaterialsStudio8.0/etc/DFTBpara/bin/RunDFTBpara.sh&lt;br /&gt;
 &#039;&#039;&#039;Dmol3&#039;&#039;&#039;         /home/biovia/MaterialsStudio8.0/etc/DMol3/bin/RunDMol3.sh&lt;br /&gt;
 &#039;&#039;&#039;GULP&#039;&#039;&#039;          /home/biovia/MaterialsStudio8.0/etc/GULP/bin/RunGULP.sh &lt;br /&gt;
 &#039;&#039;&#039;Kinetix&#039;&#039;&#039;       /home/biovia/MaterialsStudio8.0/etc/Kinetix/bin/RunKinetix.sh &lt;br /&gt;
 &#039;&#039;&#039;MesoDyn&#039;&#039;&#039;       /home/biovia/MaterialsStudio8.0/etc/MesoDyn/bin/RunMesoDyn.sh &lt;br /&gt;
 &#039;&#039;&#039;ONETEP&#039;&#039;&#039;        /home/biovia/MaterialsStudio8.0/etc/ONETEP/bin/RunONETEP.sh &lt;br /&gt;
 &#039;&#039;&#039;QMERA&#039;&#039;&#039;         /home/biovia/MaterialsStudio8.0/etc/QMERA/bin/RunQMERA.sh &lt;br /&gt;
 &#039;&#039;&#039;VAMP&#039;&#039;&#039;          /home/biovia/MaterialsStudio8.0/etc/VAMP/bin/RunVAMP.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Przykład &lt;br /&gt;
Obliczenia można uruchomić poleceniem (przykład dla modułu VAMP):&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; /home/biovia/MaterialsStudio8.0/etc/VAMP/bin/RunVAMP.sh -q main filename.input&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
* &amp;lt;code&amp;gt;filename.input&amp;lt;/code&amp;gt; to plik z danymi do obliczeń,&lt;br /&gt;
* &amp;lt;code&amp;gt;-q main&amp;lt;/code&amp;gt; to nazwa kolejki (należy podawać main)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zobacz też&#039;&#039;&#039;: [[CASTEP]]&lt;br /&gt;
&lt;br /&gt;
=== Obliczenia na infrastrukturze PLATON-U3 ===&lt;br /&gt;
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 (domyślnie skonfigurowany).&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&lt;br /&gt;
== Dokumentacja ==&lt;br /&gt;
* Tutoriale dostępne są z poziomu aplikacji klienta.&lt;br /&gt;
* [http://accelrys.com/products/materials-studio/ Strona pakietu w serwisie Biovia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{biovia}}&lt;br /&gt;
&lt;br /&gt;
{{oprogramowanie}}&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Oprogramowanie]]&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Materials_Studio&amp;diff=5663</id>
		<title>Materials Studio</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Materials_Studio&amp;diff=5663"/>
		<updated>2016-11-03T08:45:32Z</updated>

		<summary type="html">&lt;p&gt;Magda: /* Status zadań */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Oprogramowanie KDM]] &amp;lt; [[Oprogramowanie naukowe]] &amp;lt; [[Biovia]] &amp;lt; Materials Studio&amp;lt;/small&amp;gt;&lt;br /&gt;
{{uwaga2|Z dniem &#039;&#039;&#039;30 września 2014&#039;&#039;&#039; zmienił się serwer licencji krajowej. Nowy serwer dostępny jest pod adresem: &#039;&#039;&#039;licenses2.icm.edu.pl&#039;&#039;&#039;.}}&lt;br /&gt;
{{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.}}&lt;br /&gt;
{{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=}}&lt;br /&gt;
&#039;&#039;&#039;Materials Studio&#039;&#039;&#039; - 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&#039;em).&lt;br /&gt;
&lt;br /&gt;
== Licencja ==&lt;br /&gt;
WCSS uczestniczy w licencji krajowej koordynowanej przez ICM. W ramach tej licencji w 2014/2015 r. dostępne są wszystkie moduły pakietu Materials Studio (zobacz też [[Biovia]]).&lt;br /&gt;
&lt;br /&gt;
=== Informacja o wykorzystaniu ===&lt;br /&gt;
Uprzejmie przypominamy o konieczności zamieszczania w publikacjach informacji o wykorzystaniu krajowej licencji Biovia (d. Accelrys). &lt;br /&gt;
&lt;br /&gt;
{{Podziękowanie_WCSS}}&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie aplikacji ==&lt;br /&gt;
Użytkownik może korzystać z MS zainstalowanego na serwerach WCSS lub zainstalować ten pakiet na swoim komputerze. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{note|Aby uzyskać dostęp do pakietów instalacyjnych oprogramowania i do serwera licencji należy uzyskać [[Jak zostać użytkownikiem KDM|grant/konto obliczeniowe]] w WCSS i zawnioskować o dostęp wysyłając e-mail pod adres kdm @ wcss.pl.}}&lt;br /&gt;
&lt;br /&gt;
=== Klient i obliczenia lokalne ===&lt;br /&gt;
Środowisko graficzne Materials Studio służące do wizualizacji i projektowania jest dostępne tylko w postaci klienta na system Microsoft Windows. Klient ma możliwość współpracy z serwerem zainstalowanym lokalnie lub na innym komputerze w sieci.&lt;br /&gt;
&lt;br /&gt;
Aby pracować w MS w pełni lokalnie instaluje się klienta wraz z serwerem w wersji na system Windows. Można również, na swoim drugim komputerze w sieci lokalnej z systemem klasy Unix, zainstalować serwer w wersji na Unixa. Są to opcje korzystne, jeśli użytkownik potrzebuje na bieżąco śledzić w interfejsie graficznym przebieg obliczeń.&lt;br /&gt;
&lt;br /&gt;
Klient MS 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 przez tzw. Gateway.&lt;br /&gt;
&lt;br /&gt;
Po zainstalowaniu oprogramowania należy:&lt;br /&gt;
* skonfigurować w kliencie [[Konfiguracja klienta Materials Studio - serwer licencji|serwer licencji krajowej]],&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Obliczenia zdalne przez Gateway ===&lt;br /&gt;
WCSS udostępnia serwer MS na klastrze [[Bem]]. Na klastrze działa tzw. &#039;&#039;&#039;Gateway&#039;&#039;&#039;, za pośrednictwem którego można zdalnie, z poziomu interfejsu klienta, zlecać obliczenia do wykonania na serwerze. Aby móc to robić należy: pobrać oprogramowanie (pliki instalacyjne udostępniane są na wniosek użytkownika), zainstalować pakiet na swoim komputerze (wystarczy instalacja klienta MS), uruchomić klienta, utworzyć nowy projekt i wybrać z menu &#039;&#039;&#039;Tools&#039;&#039;&#039; polecenie &#039;&#039;&#039;Server console&#039;&#039;&#039;. Następnie w oknie &#039;&#039;&#039;Server console&#039;&#039;&#039; należy dodać nowy &#039;&#039;&#039;Gateway&#039;&#039;&#039; o parametrach:&lt;br /&gt;
&lt;br /&gt;
 adres: &#039;&#039;&#039;bem.wcss.pl&#039;&#039;&#039;&lt;br /&gt;
 port: &#039;&#039;&#039;18888&#039;&#039;&#039;&lt;br /&gt;
 połączenie: HTTPS&lt;br /&gt;
&lt;br /&gt;
Zobacz też szczegółowe instrukcje:&lt;br /&gt;
* [[Konfiguracja klienta Materials Studio | &#039;&#039;&#039;Jak sprawdzić prawidłową konfigurację klienta?&#039;&#039;&#039;]]&lt;br /&gt;
* [[Konfiguracja klienta Materials Studio - serwer licencji | &#039;&#039;&#039;Jak wskazać serwer licencji?&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
Dla tak podłączonego serwera można obejrzeć listę dostępnych modułów.&lt;br /&gt;
&lt;br /&gt;
Aby mieć możliwość zdalnego zlecania zadań przez Gateway, trzeba uzyskać &#039;&#039;&#039;login i hasło do Gateway&#039;a&#039;&#039;&#039; (niezależny od loginu i hasła systemowego). Użytkowników zainteresowanych uzyskaniem dostępu prosimy o skontaktowanie się w tym celu z [[kontakt|administratorami]].&lt;br /&gt;
&lt;br /&gt;
==== Status zadań ====&lt;br /&gt;
Zadania zlecane przez Gateway trafiają do systemu kolejkowego PBS, do kolejki wybranej przed zleceniem obliczeń. Status zadań i ich historię można obserwować z poziomu klienta lub przez stronę WWW Gateway&#039;a: https://bem.wcss.pl:18888/&lt;br /&gt;
&lt;br /&gt;
==== Zmiana hasła w Gateway&#039;u ====&lt;br /&gt;
Użytkownik może samodzielnie zmienić swoje hasło do Gateway&#039;a. Należy w tym celu:&lt;br /&gt;
* wejść na stronę WWW Gateway&#039;a:  https://bem.wcss.pl:18888/&lt;br /&gt;
* kliknąć w lewym menu pozycję &amp;quot;Password&amp;quot; i zalogować się dotychczasowym loginem i hasłem,&lt;br /&gt;
* podać w formularzu stare i nowe hasło.&lt;br /&gt;
&lt;br /&gt;
=== Obliczenia wsadowe ===&lt;br /&gt;
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 &amp;lt;code&amp;gt;sub-moduł&amp;lt;/code&amp;gt; (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). &lt;br /&gt;
&lt;br /&gt;
;Gotowe skrypty&lt;br /&gt;
W ścieżce &amp;lt;code&amp;gt;/usr/local/bin&amp;lt;/code&amp;gt; znajdują się gotowe skrypty wstawiające do kolejek PBS obliczenia niektórych modułów MS:&lt;br /&gt;
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; sub-castep-8.0&lt;br /&gt;
 Usage: /usr/local/bin/sub-castep-8.0 [parameters] name1 [name2] [name3] [...]&lt;br /&gt;
 Parameters:&lt;br /&gt;
 -q queue (default - main)&lt;br /&gt;
 -n nodes (default - 1)&lt;br /&gt;
 -p cores (per node, default - 1)&lt;br /&gt;
 -m memory (per node, in MB, default - 2000)&lt;br /&gt;
 -w walltime (in hours, default - 504)&lt;br /&gt;
 -i &amp;quot;additional parameters ...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Uwaga&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
;Polecenia dostępne na klastrze [[Bem]]&lt;br /&gt;
 &#039;&#039;&#039;AmorphousCell&#039;&#039;&#039; /home/biovia/MaterialsStudio8.0/etc/AmorphousCell/bin/RunAmorphousCell.sh&lt;br /&gt;
 &#039;&#039;&#039;CASTEP&#039;&#039;&#039;        /home/biovia/MaterialsStudio8.0/etc/CASTEP/bin/RunCASTEP.sh&lt;br /&gt;
 &#039;&#039;&#039;DFTB+&#039;&#039;&#039;         /home/biovia/MaterialsStudio8.0/etc/DFTB/bin/RunDFTB.sh&lt;br /&gt;
 &#039;&#039;&#039;DFTBpara&#039;&#039;&#039;      /home/biovia/MaterialsStudio8.0/etc/DFTBpara/bin/RunDFTBpara.sh&lt;br /&gt;
 &#039;&#039;&#039;Dmol3&#039;&#039;&#039;         /home/biovia/MaterialsStudio8.0/etc/DMol3/bin/RunDMol3.sh&lt;br /&gt;
 &#039;&#039;&#039;GULP&#039;&#039;&#039;          /home/biovia/MaterialsStudio8.0/etc/GULP/bin/RunGULP.sh &lt;br /&gt;
 &#039;&#039;&#039;Kinetix&#039;&#039;&#039;       /home/biovia/MaterialsStudio8.0/etc/Kinetix/bin/RunKinetix.sh &lt;br /&gt;
 &#039;&#039;&#039;MesoDyn&#039;&#039;&#039;       /home/biovia/MaterialsStudio8.0/etc/MesoDyn/bin/RunMesoDyn.sh &lt;br /&gt;
 &#039;&#039;&#039;ONETEP&#039;&#039;&#039;        /home/biovia/MaterialsStudio8.0/etc/ONETEP/bin/RunONETEP.sh &lt;br /&gt;
 &#039;&#039;&#039;QMERA&#039;&#039;&#039;         /home/biovia/MaterialsStudio8.0/etc/QMERA/bin/RunQMERA.sh &lt;br /&gt;
 &#039;&#039;&#039;VAMP&#039;&#039;&#039;          /home/biovia/MaterialsStudio8.0/etc/VAMP/bin/RunVAMP.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Przykład &lt;br /&gt;
Obliczenia można uruchomić poleceniem (przykład dla modułu VAMP):&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; /home/biovia/MaterialsStudio8.0/etc/VAMP/bin/RunVAMP.sh -q main filename.input&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
* &amp;lt;code&amp;gt;filename.input&amp;lt;/code&amp;gt; to plik z danymi do obliczeń,&lt;br /&gt;
* &amp;lt;code&amp;gt;-q main&amp;lt;/code&amp;gt; to nazwa kolejki (należy podawać main)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zobacz też&#039;&#039;&#039;: [[CASTEP]]&lt;br /&gt;
&lt;br /&gt;
=== Obliczenia na infrastrukturze PLATON-U3 ===&lt;br /&gt;
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 [[Supernova]] przez gateway accelrys.wcss.pl (domyślnie skonfigurowany).&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&lt;br /&gt;
== Dokumentacja ==&lt;br /&gt;
* Tutoriale dostępne są z poziomu aplikacji klienta.&lt;br /&gt;
* [http://accelrys.com/products/materials-studio/ Strona pakietu w serwisie Biovia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{biovia}}&lt;br /&gt;
&lt;br /&gt;
{{oprogramowanie}}&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Oprogramowanie]]&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Materials_Studio&amp;diff=5662</id>
		<title>Materials Studio</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Materials_Studio&amp;diff=5662"/>
		<updated>2016-11-03T08:02:47Z</updated>

		<summary type="html">&lt;p&gt;Magda: /* Zmiana hasła w Gateway&amp;#039;u */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Oprogramowanie KDM]] &amp;lt; [[Oprogramowanie naukowe]] &amp;lt; [[Biovia]] &amp;lt; Materials Studio&amp;lt;/small&amp;gt;&lt;br /&gt;
{{uwaga2|Z dniem &#039;&#039;&#039;30 września 2014&#039;&#039;&#039; zmienił się serwer licencji krajowej. Nowy serwer dostępny jest pod adresem: &#039;&#039;&#039;licenses2.icm.edu.pl&#039;&#039;&#039;.}}&lt;br /&gt;
{{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.}}&lt;br /&gt;
{{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=}}&lt;br /&gt;
&#039;&#039;&#039;Materials Studio&#039;&#039;&#039; - 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&#039;em).&lt;br /&gt;
&lt;br /&gt;
== Licencja ==&lt;br /&gt;
WCSS uczestniczy w licencji krajowej koordynowanej przez ICM. W ramach tej licencji w 2014/2015 r. dostępne są wszystkie moduły pakietu Materials Studio (zobacz też [[Biovia]]).&lt;br /&gt;
&lt;br /&gt;
=== Informacja o wykorzystaniu ===&lt;br /&gt;
Uprzejmie przypominamy o konieczności zamieszczania w publikacjach informacji o wykorzystaniu krajowej licencji Biovia (d. Accelrys). &lt;br /&gt;
&lt;br /&gt;
{{Podziękowanie_WCSS}}&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie aplikacji ==&lt;br /&gt;
Użytkownik może korzystać z MS zainstalowanego na serwerach WCSS lub zainstalować ten pakiet na swoim komputerze. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
{{note|Aby uzyskać dostęp do pakietów instalacyjnych oprogramowania i do serwera licencji należy uzyskać [[Jak zostać użytkownikiem KDM|grant/konto obliczeniowe]] w WCSS i zawnioskować o dostęp wysyłając e-mail pod adres kdm @ wcss.pl.}}&lt;br /&gt;
&lt;br /&gt;
=== Klient i obliczenia lokalne ===&lt;br /&gt;
Środowisko graficzne Materials Studio służące do wizualizacji i projektowania jest dostępne tylko w postaci klienta na system Microsoft Windows. Klient ma możliwość współpracy z serwerem zainstalowanym lokalnie lub na innym komputerze w sieci.&lt;br /&gt;
&lt;br /&gt;
Aby pracować w MS w pełni lokalnie instaluje się klienta wraz z serwerem w wersji na system Windows. Można również, na swoim drugim komputerze w sieci lokalnej z systemem klasy Unix, zainstalować serwer w wersji na Unixa. Są to opcje korzystne, jeśli użytkownik potrzebuje na bieżąco śledzić w interfejsie graficznym przebieg obliczeń.&lt;br /&gt;
&lt;br /&gt;
Klient MS 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 przez tzw. Gateway.&lt;br /&gt;
&lt;br /&gt;
Po zainstalowaniu oprogramowania należy:&lt;br /&gt;
* skonfigurować w kliencie [[Konfiguracja klienta Materials Studio - serwer licencji|serwer licencji krajowej]],&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== Obliczenia zdalne przez Gateway ===&lt;br /&gt;
WCSS udostępnia serwer MS na klastrze [[Bem]]. Na klastrze działa tzw. &#039;&#039;&#039;Gateway&#039;&#039;&#039;, za pośrednictwem którego można zdalnie, z poziomu interfejsu klienta, zlecać obliczenia do wykonania na serwerze. Aby móc to robić należy: pobrać oprogramowanie (pliki instalacyjne udostępniane są na wniosek użytkownika), zainstalować pakiet na swoim komputerze (wystarczy instalacja klienta MS), uruchomić klienta, utworzyć nowy projekt i wybrać z menu &#039;&#039;&#039;Tools&#039;&#039;&#039; polecenie &#039;&#039;&#039;Server console&#039;&#039;&#039;. Następnie w oknie &#039;&#039;&#039;Server console&#039;&#039;&#039; należy dodać nowy &#039;&#039;&#039;Gateway&#039;&#039;&#039; o parametrach:&lt;br /&gt;
&lt;br /&gt;
 adres: &#039;&#039;&#039;bem.wcss.pl&#039;&#039;&#039;&lt;br /&gt;
 port: &#039;&#039;&#039;18888&#039;&#039;&#039;&lt;br /&gt;
 połączenie: HTTPS&lt;br /&gt;
&lt;br /&gt;
Zobacz też szczegółowe instrukcje:&lt;br /&gt;
* [[Konfiguracja klienta Materials Studio | &#039;&#039;&#039;Jak sprawdzić prawidłową konfigurację klienta?&#039;&#039;&#039;]]&lt;br /&gt;
* [[Konfiguracja klienta Materials Studio - serwer licencji | &#039;&#039;&#039;Jak wskazać serwer licencji?&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
Dla tak podłączonego serwera można obejrzeć listę dostępnych modułów.&lt;br /&gt;
&lt;br /&gt;
Aby mieć możliwość zdalnego zlecania zadań przez Gateway, trzeba uzyskać &#039;&#039;&#039;login i hasło do Gateway&#039;a&#039;&#039;&#039; (niezależny od loginu i hasła systemowego). Użytkowników zainteresowanych uzyskaniem dostępu prosimy o skontaktowanie się w tym celu z [[kontakt|administratorami]].&lt;br /&gt;
&lt;br /&gt;
==== Status zadań ====&lt;br /&gt;
Zadania zlecane przez Gateway trafiają do systemu kolejkowego PBS, do kolejki wybranej przed zleceniem obliczeń. Status zadań i ich historię można obserwować z poziomu klienta lub przez stronę WWW Gateway&#039;a: https://accelrys.wcss.pl:18888/&lt;br /&gt;
&lt;br /&gt;
==== Zmiana hasła w Gateway&#039;u ====&lt;br /&gt;
Użytkownik może samodzielnie zmienić swoje hasło do Gateway&#039;a. Należy w tym celu:&lt;br /&gt;
* wejść na stronę WWW Gateway&#039;a:  https://bem.wcss.pl:18888/&lt;br /&gt;
* kliknąć w lewym menu pozycję &amp;quot;Password&amp;quot; i zalogować się dotychczasowym loginem i hasłem,&lt;br /&gt;
* podać w formularzu stare i nowe hasło.&lt;br /&gt;
&lt;br /&gt;
=== Obliczenia wsadowe ===&lt;br /&gt;
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 &amp;lt;code&amp;gt;sub-moduł&amp;lt;/code&amp;gt; (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). &lt;br /&gt;
&lt;br /&gt;
;Gotowe skrypty&lt;br /&gt;
W ścieżce &amp;lt;code&amp;gt;/usr/local/bin&amp;lt;/code&amp;gt; znajdują się gotowe skrypty wstawiające do kolejek PBS obliczenia niektórych modułów MS:&lt;br /&gt;
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; sub-castep-8.0&lt;br /&gt;
 Usage: /usr/local/bin/sub-castep-8.0 [parameters] name1 [name2] [name3] [...]&lt;br /&gt;
 Parameters:&lt;br /&gt;
 -q queue (default - main)&lt;br /&gt;
 -n nodes (default - 1)&lt;br /&gt;
 -p cores (per node, default - 1)&lt;br /&gt;
 -m memory (per node, in MB, default - 2000)&lt;br /&gt;
 -w walltime (in hours, default - 504)&lt;br /&gt;
 -i &amp;quot;additional parameters ...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Uwaga&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
;Polecenia dostępne na klastrze [[Bem]]&lt;br /&gt;
 &#039;&#039;&#039;AmorphousCell&#039;&#039;&#039; /home/biovia/MaterialsStudio8.0/etc/AmorphousCell/bin/RunAmorphousCell.sh&lt;br /&gt;
 &#039;&#039;&#039;CASTEP&#039;&#039;&#039;        /home/biovia/MaterialsStudio8.0/etc/CASTEP/bin/RunCASTEP.sh&lt;br /&gt;
 &#039;&#039;&#039;DFTB+&#039;&#039;&#039;         /home/biovia/MaterialsStudio8.0/etc/DFTB/bin/RunDFTB.sh&lt;br /&gt;
 &#039;&#039;&#039;DFTBpara&#039;&#039;&#039;      /home/biovia/MaterialsStudio8.0/etc/DFTBpara/bin/RunDFTBpara.sh&lt;br /&gt;
 &#039;&#039;&#039;Dmol3&#039;&#039;&#039;         /home/biovia/MaterialsStudio8.0/etc/DMol3/bin/RunDMol3.sh&lt;br /&gt;
 &#039;&#039;&#039;GULP&#039;&#039;&#039;          /home/biovia/MaterialsStudio8.0/etc/GULP/bin/RunGULP.sh &lt;br /&gt;
 &#039;&#039;&#039;Kinetix&#039;&#039;&#039;       /home/biovia/MaterialsStudio8.0/etc/Kinetix/bin/RunKinetix.sh &lt;br /&gt;
 &#039;&#039;&#039;MesoDyn&#039;&#039;&#039;       /home/biovia/MaterialsStudio8.0/etc/MesoDyn/bin/RunMesoDyn.sh &lt;br /&gt;
 &#039;&#039;&#039;ONETEP&#039;&#039;&#039;        /home/biovia/MaterialsStudio8.0/etc/ONETEP/bin/RunONETEP.sh &lt;br /&gt;
 &#039;&#039;&#039;QMERA&#039;&#039;&#039;         /home/biovia/MaterialsStudio8.0/etc/QMERA/bin/RunQMERA.sh &lt;br /&gt;
 &#039;&#039;&#039;VAMP&#039;&#039;&#039;          /home/biovia/MaterialsStudio8.0/etc/VAMP/bin/RunVAMP.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Przykład &lt;br /&gt;
Obliczenia można uruchomić poleceniem (przykład dla modułu VAMP):&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; /home/biovia/MaterialsStudio8.0/etc/VAMP/bin/RunVAMP.sh -q main filename.input&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
* &amp;lt;code&amp;gt;filename.input&amp;lt;/code&amp;gt; to plik z danymi do obliczeń,&lt;br /&gt;
* &amp;lt;code&amp;gt;-q main&amp;lt;/code&amp;gt; to nazwa kolejki (należy podawać main)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zobacz też&#039;&#039;&#039;: [[CASTEP]]&lt;br /&gt;
&lt;br /&gt;
=== Obliczenia na infrastrukturze PLATON-U3 ===&lt;br /&gt;
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 [[Supernova]] przez gateway accelrys.wcss.pl (domyślnie skonfigurowany).&lt;br /&gt;
&lt;br /&gt;
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].&lt;br /&gt;
&lt;br /&gt;
== Dokumentacja ==&lt;br /&gt;
* Tutoriale dostępne są z poziomu aplikacji klienta.&lt;br /&gt;
* [http://accelrys.com/products/materials-studio/ Strona pakietu w serwisie Biovia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{biovia}}&lt;br /&gt;
&lt;br /&gt;
{{oprogramowanie}}&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Oprogramowanie]]&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Matlab&amp;diff=5649</id>
		<title>Matlab</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Matlab&amp;diff=5649"/>
		<updated>2016-10-10T06:28:45Z</updated>

		<summary type="html">&lt;p&gt;Magda: /* Licencja udostępniana przez WCSS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Plik:en.jpg|right|link={{PAGENAME}}/en]]&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Oprogramowanie KDM]] &amp;lt; [[Oprogramowanie naukowe]] &amp;lt; Matlab&amp;lt;/small&amp;gt;&lt;br /&gt;
{{uwaga|&#039;&#039;&#039;Licencja WCSS jest przeznaczona dla użytkowników WCSS, do celów badawczych.&#039;&#039;&#039; 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 &#039;&#039;&#039;wydziałowymi&#039;&#039;&#039; lub Działem Informatyzacji PWr. WCSS nie dysponuje informacjami o administratorach wydziałowych.}}&lt;br /&gt;
{{aplikacja|nazwa=Matlab|logo=[[Grafika:Matlab1.png]]|serwer=[[Bem]]|wersja=&#039;&#039;&#039;R2015a&#039;&#039;&#039;|wersja2=R2014b|serwer2=[[Klaster kampusowy]]|wersja21=R2013a}}&lt;br /&gt;
&#039;&#039;&#039;MATLAB&#039;&#039;&#039; 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.&lt;br /&gt;
&lt;br /&gt;
== Informacje ogólne ==&lt;br /&gt;
Główne funkcjonalności MATLAB-a:&lt;br /&gt;
* obliczenia numeryczne do szybkiego generowania wyników&lt;br /&gt;
* grafika do wizualizacji i analizy danych&lt;br /&gt;
* interaktywny język i środowisko programistyczne&lt;br /&gt;
* narzędzia do budowy własnego GUI&lt;br /&gt;
* integracja z zewnętrznymi aplikacjami składającymi się z komponentów C, C++, Fortran, Java, COM, Excel.&lt;br /&gt;
* import danych z plików i urządzeń zewnętrznych (dodatkowo dostęp do baz danych i kolejnych urządzeń)&lt;br /&gt;
* konwersja aplikacji MATLAB-a na C i C++ przy użyciu kompilatora.&lt;br /&gt;
&lt;br /&gt;
== Licencja udostępniana przez WCSS ==&lt;br /&gt;
Aktualnie dostępna wersja to &#039;&#039;&#039;R2016a&#039;&#039;&#039; 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/&lt;br /&gt;
Pliki instalacyjne można pobrać z [[Serwer_FTP|serwera FTP]]. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Matlab&#039;&#039;&#039; (30) - pakiet główny&lt;br /&gt;
* &#039;&#039;&#039;Bioinformatics Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Communications System Toolbox&#039;&#039;&#039; (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.&lt;br /&gt;
*&#039;&#039;&#039;Curve Fitting Toolbox&#039;&#039;&#039; (1) - poprzez interfejs graficzny i command-line udostępnia funkcje dla różnych aplikacji typu &#039;&#039;curve-fitting&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Data Acquisition Toolbox&#039;&#039;&#039; (1) - zestaw funkcji M-file i dynamicznych bibliotek (DLL) MEX-file napisanych w oparciu o środowisko obliczeniowe MATLABa.&lt;br /&gt;
* &#039;&#039;&#039;Spreadsheet Link EX&#039;&#039;&#039; (2) - pakiet pozwala na integrację Matlaba z programem Microsoft Excel.&lt;br /&gt;
* &#039;&#039;&#039;Filter Design HDL Coder&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Fixed-Point Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Fuzzy Logic Toolbox&#039;&#039;&#039; (1) - rozszerza środowisko MATLABa o narzędzia do projektowania systemów opartych o logikę rozmytą. &lt;br /&gt;
* &#039;&#039;&#039;Global Optimization Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Image Processing Toolbox&#039;&#039;&#039; (1) - przetwarzanie obrazów&lt;br /&gt;
* &#039;&#039;&#039;Neural Network Toolbox&#039;&#039;&#039; (10) - projektowanie i symulacja sieci neuronowych&lt;br /&gt;
* &#039;&#039;&#039;Optimization Toolbox&#039;&#039;&#039; (10) - rozszerza środowisko Matlaba o narzędzia i algorytmy do optymalizacji. &lt;br /&gt;
* &#039;&#039;&#039;Signal Processing Toolbox&#039;&#039;&#039; (10) - przetwarzanie sygnałów&lt;br /&gt;
* &#039;&#039;&#039;DSP System Toolbox&#039;&#039;&#039; (6)- symulacja procesów cyfrowej obróbki sygnałów&lt;br /&gt;
* &#039;&#039;&#039;Simulink&#039;&#039;&#039; (30) - interaktywne środowisko przeznaczone do modelowania, symulacji i analizy dynamicznych systemów.&lt;br /&gt;
** &#039;&#039;&#039;Simulink Design Optimization&#039;&#039;&#039; (1) - zawiera także Simulink Response Optimization, interfejs graficzny (GUI) do dostrajania i optymalizowania systemów sterowania i fizycznych.&lt;br /&gt;
** &#039;&#039;&#039;Simulink Fixed-Point&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;HDL Coder&#039;&#039;&#039;, dawniej &#039;&#039;&#039;Simulink HDL Coder&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Matlab Coder&#039;&#039;&#039; (1) &lt;br /&gt;
* &#039;&#039;&#039;Matlab Compiler&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Statistics Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Wavelet Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Parallel Computing Toolbox&#039;&#039;&#039; (5)&lt;br /&gt;
* &#039;&#039;&#039;Distributed Computing Engine&#039;&#039;&#039; (32)&lt;br /&gt;
&lt;br /&gt;
Licencje zdezaktualizowane:&lt;br /&gt;
* &#039;&#039;&#039;Communications Blockset&#039;&#039;&#039; (5) - rozszerza pakiet Simulink o bibliotekę elementów konstrukcyjnych służących do budowy i symulacji fizycznej warstwy systemów i komponentów komunikacji.&lt;br /&gt;
* &#039;&#039;&#039;Filter Design Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
=== Informacje o wykorzystaniu ===&lt;br /&gt;
{{Podziękowanie_WCSS}}&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie na klastrze Bem ==&lt;br /&gt;
MATLAB dostępny jest na klastrze [[Bem]] (katalog instalacji odpowiednio: /usr/local/matlab/WERSJA). &lt;br /&gt;
&lt;br /&gt;
=== Praca interaktywna na klastrze ===&lt;br /&gt;
*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]&lt;br /&gt;
&lt;br /&gt;
*Następnie w celu pracy interaktywnej z aplikacją należy uruchomić zadanie interaktywne w kolejce, z opcją &amp;lt;code&amp;gt;-X&amp;lt;/code&amp;gt;, np.:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;qsub -I -X -l walltime=6:00:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Środowisko aplikacji&lt;br /&gt;
&lt;br /&gt;
MATLAB pobiera ustawienia środowiska z pliku &amp;lt;code&amp;gt;.matlab7rc.sh&amp;lt;/code&amp;gt;. Przed uruchomieniem pobiera plik z pierwszej lokalizacji, kolejno przeszukuje: &amp;lt;code&amp;gt;./&amp;lt;/code&amp;gt; (kat. bieżący), &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; (kat. domowy użytkownika), &amp;lt;code&amp;gt;$MATLAB/bin&amp;lt;/code&amp;gt; (kat. domyślny). Wzorcowy plik &amp;lt;code&amp;gt;.matlabXrc.sh&amp;lt;/code&amp;gt; znajduje się w katalogu instalacji danej wersji MATLAB-a &amp;lt;code&amp;gt;$MATLAB_TOP/bin/&amp;lt;/code&amp;gt;. Użytkownik może skopiować ten plik do swojego katalogu domowego i zmienić w razie potrzeby ustawione wartości zmiennych: &amp;lt;code&amp;gt;ARCH, LD_LIBRARY_PATH, LM_LICENCE_FILE, MATLAB&amp;lt;/code&amp;gt; (wskazuje na katalog instalacji) i kilku innych.&lt;br /&gt;
&lt;br /&gt;
Przed użyciem MATLABa należy załadować odpowiedni moduł.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;module load matlab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Powyższe polecenie wczyta domyślną wersję. Można też wybrać konkretną wersję modułu wydając polecenie:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;module load matlab/R2015a&#039;&#039;&#039;&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;module load matlab/R2014b&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Aby sprawdzić ustawienia przesyłane do MATLAB-a podczas uruchamiania wystarczy wydać polecenie:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;matlab -n&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Aplikacja nie zostanie przy tym uruchomiona.&lt;br /&gt;
&lt;br /&gt;
;Uruchamianie aplikacji&lt;br /&gt;
&lt;br /&gt;
Do uruchamiania programu służy polecenie:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;matlab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Wstawianie zadań wsadowych do kolejki ===&lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;&#039;&amp;lt;code&amp;gt;qsub&amp;lt;/code&amp;gt;&#039;&#039;&#039; lub skorzystać z gotowego skryptu sub-matlab (uruchamia domyślną wersję programu)&lt;br /&gt;
&lt;br /&gt;
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; sub-matlab&lt;br /&gt;
 Usage: /usr/local/bin/sub-matlab input_file [parameters]&lt;br /&gt;
 Parameters:&lt;br /&gt;
 -q queue (default - main)&lt;br /&gt;
 -p cores (default - 1)&lt;br /&gt;
 -m memory (in MB, default - 2000)&lt;br /&gt;
 -w walltime (in hours, default - 504)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na przykład&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; sub-matlab test.inp -q main -p 2 -m 4000 -w 2 &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Uwaga&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zobacz też:&#039;&#039;&#039; [[Jak korzystać z kolejek PBS]]?&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie na infrastrukturze PLATON-U3 ==&lt;br /&gt;
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). &lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie na własnych komputerach ==&lt;br /&gt;
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]]. &lt;br /&gt;
Dostęp do serwera licencji możliwy jest poprzez system [[Korzystanie z VPN|VPN]].&lt;br /&gt;
&lt;br /&gt;
==== Instalacja na systemach z rodziny Windows ====&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;SERVER menkar.wcss.pl 0007e905907d 27002&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;USE_SERVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Następnie należy uruchomić instalację i podać kod PLP oraz ścieżkę do pliku licencji na kolejnych etapach instalacji.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
==== Instalacja na systemach z rodziny Linux/UNIX ====&lt;br /&gt;
Przed instalacją należy zgłosić się do WCSS po pobranie kodu PLP wymaganego do instalacji.  Przed uruchomieniem aplikacji należy ustawić zmienną środowiskową &amp;lt;code&amp;gt;LM_LICENSE_FILE&amp;lt;/code&amp;gt; na wartość &amp;lt;code&amp;gt;&amp;quot;27002@menkar.wcss.pl&amp;quot;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Shell typu csh (csh, tcsh):&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;setenv LM_LICENSE_FILE &amp;quot;27002@menkar.wcss.pl&amp;quot; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Shell typu sh (sh, bsh, bash, ksh, ...):&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;export LM_LICENSE_FILE=&amp;quot;27002@menkar.wcss.pl&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rodzaj shella sprawdzamy przez:&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;echo $SHELL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ewentualny test licencji:&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;scieżka/do/katalogu/instalacji/matlab/etc/lmstat -a -c 27002@menkar.wcss.pl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie zadań zdalnie na klastrze Supernova ==&lt;br /&gt;
WCSS umożliwia zlecanie zdalnie zadań obliczeniowych na klaster Supernova. Jest to możliwe na dwa sposoby: &lt;br /&gt;
# korzystając ze środowiska MATLAB-a dostępnego na infrastrukturze [[Klaster kampusowy|PLATON-U3]],&lt;br /&gt;
# korzystając ze środowiska MATLAB-a zainstalowanego na własnym komputerze.&lt;br /&gt;
&lt;br /&gt;
W obydwu przypadkach, aby zlecić zadanie zdalne korzystając z interfejsu Matlaba należy wcześniej odpowiednio go skonfigurować:&lt;br /&gt;
* pobrać plik [[http://kdm.wcss.wroc.pl/w/images/matlab_wcss.zip zip]] i rozpakować w lokalizacji przeszukiwanej przez Matlaba (listę tych miejsc można znaleźć klikając przycisk &#039;&#039;&#039;Set Path&#039;&#039;&#039; w polu &#039;&#039;&#039;Environment&#039;&#039;&#039;),&lt;br /&gt;
* pobrać plik [[http://kdm.wcss.wroc.pl/w/images/Supernova.zip zip]] i rozpakować w dowolnej lokalizacji (plik &#039;&#039;&#039;Supernova.settings&#039;&#039;&#039;, który jest w archiwum będzie potrzebny w następnym kroku),&lt;br /&gt;
* w polu &#039;&#039;&#039;Environment&#039;&#039;&#039; kliknąć na przycisk &#039;&#039;&#039;Parallel&#039;&#039;&#039; i wybrać pozycję &#039;&#039;&#039;Manage Cluster Profiles&#039;&#039;&#039;,&lt;br /&gt;
* w oknie które się pojawi kliknąć na przycisk &#039;&#039;&#039;Add&#039;&#039;&#039; i wybrać pozycję &#039;&#039;&#039;Import&#039;&#039;&#039;,&lt;br /&gt;
* wskazać lokalizację pliku &#039;&#039;&#039;Supernova.settings&#039;&#039;&#039; wypakowanego z archiwum,&lt;br /&gt;
* zaznaczyć pozycję &#039;&#039;&#039;Supernova&#039;&#039;&#039; na liście &#039;&#039;&#039;Cluster Profile&#039;&#039;&#039; i kliknąć przycisk &#039;&#039;&#039;Edit&#039;&#039;&#039;,&lt;br /&gt;
* w części SubmitFunctions należy zmienić 3. parametr funkcji (&#039;&#039;&#039;/home/tyciu&#039;&#039;&#039;), tak aby wskazywał lokalizację &#039;&#039;&#039;własnego katalogu domowego&#039;&#039;&#039; na klastrze,&lt;br /&gt;
* po kliknięciu przycisku &#039;&#039;&#039;Done&#039;&#039;&#039; można już korzystać ze zdalnego zlecania zadań.&lt;br /&gt;
&lt;br /&gt;
=== Uruchamianie zdalne z infrastruktury PLATON-U3 ===&lt;br /&gt;
Chcąc korzystać z MATLAB-a na Supernovej poprzez infrastrukturę PLATON-U3, należy zarejestrować się jako użytkownik PLATON-U3 w WCSS i założyć odpowiednią rezerwację. Po uzyskaniu dostępu do aplikacji należy ją skonfigurować (jak opisane powyżej) i zweryfikować, czy aplikacja działa poprawnie.&lt;br /&gt;
&lt;br /&gt;
==== Weryfikacja poprawności konfiguracji ====&lt;br /&gt;
W celu przeprowadzenia weryfikacji trzeba wykonać kilka, wymienionych poniżej, kroków:&lt;br /&gt;
# W zakładce &amp;lt;code&amp;gt;ENVIRONMENT &amp;gt; Set Path&amp;lt;/code&amp;gt; sprawdzić listę ścieżek. Ścieżka rozpoczynająca się od &amp;lt;code&amp;gt;\\wcss-sts&amp;lt;/code&amp;gt; znajduje się na dysku Z.&lt;br /&gt;
# W pasku wyboru ścieżki wybrać katalog znajdujący się na dysku Z, w którym zapisywane będą pliki związane ze zleceniami.&lt;br /&gt;
# W zakładce &amp;lt;code&amp;gt;ENVIRONMENT &amp;gt; Parallel &amp;gt; Manage Cluster Profiles &amp;gt; Cluster Profile&amp;lt;/code&amp;gt; wybrać profil &amp;lt;code&amp;gt;Supernova&amp;lt;/code&amp;gt;.&lt;br /&gt;
# W profilu &amp;lt;code&amp;gt;Supernova&amp;lt;/code&amp;gt; wybrać zakładkę &amp;lt;code&amp;gt;Validation Results&amp;lt;/code&amp;gt;, a następnie przeprowadzić weryfikację poprawności działania za pomocą przycisku &amp;lt;code&amp;gt;Validate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Tworzenie nowego skryptu ====&lt;br /&gt;
Nowy skrypt Matlaba tworzy się za pomocą przycisku &amp;lt;code&amp;gt;New Script&amp;lt;/code&amp;gt;:&lt;br /&gt;
# W pasku wyboru ścieżki wybrać katalog znajdujący się na dysku Z, w którym zapisywane będą pliki związane z obliczeniami.&lt;br /&gt;
# W menu, w zakładce &amp;lt;code&amp;gt;HOME&amp;lt;/code&amp;gt; użyć przycisku &amp;lt;code&amp;gt;New Script&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Po podaniu programowi poleceń w postaci skryptu, należy ów skrypt zapisać w katalogu wybranym w podpunkcie 1.&lt;br /&gt;
# W celu uruchomienia skryptu należy kliknąć na niego (powinien być widoczny w polu &amp;lt;code&amp;gt;Current Folder&amp;lt;/code&amp;gt;) prawym przyciskiem myszy (PPM), a następnie użyć polecenia &amp;lt;code&amp;gt;Run&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Testowanie poprawności zlecania zadań ====&lt;br /&gt;
W celu przetestowania poprawności działania własnych skryptów do zlecania zadań należy:&lt;br /&gt;
# Otworzyć nowy skrypt przyciskiem &amp;lt;code&amp;gt;New Script&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Wkleić poniższy kod (*).&lt;br /&gt;
# Zapisać skrypt pod dowolną nazwą w wybranym katalogu znajdującym się w ścieżkach Matlaba.&lt;br /&gt;
# Zlecić zadanie za pomocą &amp;lt;code&amp;gt;PPM &amp;gt; Run&amp;lt;/code&amp;gt;.&lt;br /&gt;
(*)&lt;br /&gt;
 &#039;&#039;&#039;c = parcluster(&#039;Supernova&#039;);&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;job1 = createJob(c);&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;createTask(job1, @rand, 1, {3,3});&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;createTask(job1, @rand, 1, {3,3});&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;createTask(job1, @rand, 1, {3,3});&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;createTask(job1, @rand, 1, {3,3});&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;createTask(job1, @rand, 1, {3,3});&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;submit(job1);&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wait(job1);&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;results = fetchOutputs(job1);&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;results{1:5};&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kod zleca wygenerowanie 5 macierzy 3 na 3  zawierających losowe liczby zmiennoprzecinkowe o wartościach zawierających się między 0 a 1 - każda macierz generowana jest w osobnym tasku.&lt;br /&gt;
Polecenie &amp;lt;code&amp;gt;&#039;parcluster&#039;&amp;lt;/code&amp;gt; służy do wyboru profilu z listy znajdującej się w &amp;lt;code&amp;gt;ENVIRONMENT &amp;gt; Parallel &amp;gt; Manage Cluster Profiles &amp;gt; Cluster Profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
Polecenie &amp;lt;code&amp;gt;&#039;createJob&#039;&amp;lt;/code&amp;gt; tworzy zadanie, a polecenie &amp;lt;code&amp;gt;&#039;createTask&#039;&amp;lt;/code&amp;gt; - podzadanie. Polecenie &amp;lt;code&amp;gt;&#039;submit&#039;&amp;lt;/code&amp;gt; zleca zadanie do systemu kolejkowego (PBS) na klastrze zdefiniowanym w profilu,&lt;br /&gt;
a polecenie &amp;lt;code&amp;gt;&#039;wait&#039;&amp;lt;/code&amp;gt; wymusza oczekiwanie na zakończenie zadania przed kontynuowaniem postępowania zawartego w skrypcie.&lt;br /&gt;
&lt;br /&gt;
W celu sprawdzenia wyników należy w oknie &amp;lt;code&amp;gt;Command Window&amp;lt;/code&amp;gt; wprowadzić kolejno następujące komendy:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;c = parcluster(&#039;Supernova&#039;)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;finished_jobs = findJob(c,&#039;State&#039;,&#039;finished&#039;)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wyświetli się lista zakończonych zadań na profilu &amp;lt;code&amp;gt;Supernova&amp;lt;/code&amp;gt;. Należy wybrać zadanie, którego wyniki chcemy przejrzeć (np. 5.) i postępować według poniższych kroków:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;finished_jobs = findJob(c,&#039;State&#039;,&#039;finished&#039;, &#039;ID&#039;, 5)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;results = fetchOutputs(finished_jobs)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;results{1:numel(results)}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Dokumentacja ==&lt;br /&gt;
* Dokumentacja &#039;&#039;on-line&#039;&#039; dostępna jest lokalnie po zalogowaniu się na klastrze i [[Nova]] i wydaniu polecenia &#039;&#039;&#039;doc&#039;&#039;&#039; z poziomu MATLAB-a.&lt;br /&gt;
* &#039;&#039;&amp;quot;Komputerowa symulacja układów automatycznej regulacji w środowisku MATLAB/SIMULINK&amp;quot;&#039;&#039; 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)&lt;br /&gt;
*: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.&lt;br /&gt;
*&#039;&#039;&amp;quot;Programowanie w Matlabie dla elektryków&amp;quot;&#039;&#039; s.215,rw. 2005, Sobierajski M., Łabuzek M., [http://www.oficyna.pwr.wroc.pl/ Oficyna Wydawnicza PWr] (Cena: 22,00) &lt;br /&gt;
*: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.&lt;br /&gt;
*:;Spis treści: &lt;br /&gt;
*::Wstęp&lt;br /&gt;
*:# Pierwsze kroki w Matlabie&lt;br /&gt;
*:# Podstawowe operacje macierzowe i tablicowe&lt;br /&gt;
*:# Tworzenie skryptów i współpraca z plikami danych&lt;br /&gt;
*:# Tworzenie plików funkcyjnych&lt;br /&gt;
*:# Wykresy w Matlabie&lt;br /&gt;
*:# Interfejs graficzny użytkownika&lt;br /&gt;
*:# Rozwiązywanie zadań opisanych równaniami różniczkowymi&lt;br /&gt;
*:# Współpraca z plikami zewnętrznymi&lt;br /&gt;
*:# Rozwiązywanie zadań optymalizacji&lt;br /&gt;
*:# Analiza statystyczna pomiarów&lt;br /&gt;
*:# Analiza harmonicznych&lt;br /&gt;
*:# Równania różniczkowe&lt;br /&gt;
*:# Analiza stabilności lokalnej i globalnej&lt;br /&gt;
*:# Rozwiązywanie równań różniczkowych z elementami nieliniowymi&lt;br /&gt;
*:# Wprowadzenie do Simulinka&lt;br /&gt;
*:# Modelowanie równania różniczkowego&lt;br /&gt;
*:# Modelowanie układu równań różniczkowych&lt;br /&gt;
*:# Grupowanie i maskowanie bloków&lt;br /&gt;
*::Literatura&lt;br /&gt;
&lt;br /&gt;
;MATLAB w sieci&lt;br /&gt;
* [http://www.mathworks.com/products/matlab/ Strona domowa MATLABa]&lt;br /&gt;
* [http://vistula.wis.pk.edu.pl/~sciezor/matlab.pdff Podstawy programowania w języku Matlab]&lt;br /&gt;
* [http://www.mathworks.com/company/newsletters/articles/gpu-programming-in-matlab.html?s_v1=48010423_1-AUVSR GPU Programming in MATLAB]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zobacz też:&#039;&#039;&#039; [[Oprogramowanie KDM]]&lt;br /&gt;
&lt;br /&gt;
{{oprogramowanie}}&lt;br /&gt;
[[Kategoria:Oprogramowanie]]&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Matlab&amp;diff=5648</id>
		<title>Matlab</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Matlab&amp;diff=5648"/>
		<updated>2016-10-10T06:26:52Z</updated>

		<summary type="html">&lt;p&gt;Magda: /* Uruchamianie na własnych komputerach */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Plik:en.jpg|right|link={{PAGENAME}}/en]]&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Oprogramowanie KDM]] &amp;lt; [[Oprogramowanie naukowe]] &amp;lt; Matlab&amp;lt;/small&amp;gt;&lt;br /&gt;
{{uwaga|&#039;&#039;&#039;Licencja WCSS jest przeznaczona dla użytkowników WCSS, do celów badawczych.&#039;&#039;&#039; 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 &#039;&#039;&#039;wydziałowymi&#039;&#039;&#039; lub Działem Informatyzacji PWr. WCSS nie dysponuje informacjami o administratorach wydziałowych.}}&lt;br /&gt;
{{aplikacja|nazwa=Matlab|logo=[[Grafika:Matlab1.png]]|serwer=[[Bem]]|wersja=&#039;&#039;&#039;R2015a&#039;&#039;&#039;|wersja2=R2014b|serwer2=[[Klaster kampusowy]]|wersja21=R2013a}}&lt;br /&gt;
&#039;&#039;&#039;MATLAB&#039;&#039;&#039; 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.&lt;br /&gt;
&lt;br /&gt;
== Informacje ogólne ==&lt;br /&gt;
Główne funkcjonalności MATLAB-a:&lt;br /&gt;
* obliczenia numeryczne do szybkiego generowania wyników&lt;br /&gt;
* grafika do wizualizacji i analizy danych&lt;br /&gt;
* interaktywny język i środowisko programistyczne&lt;br /&gt;
* narzędzia do budowy własnego GUI&lt;br /&gt;
* integracja z zewnętrznymi aplikacjami składającymi się z komponentów C, C++, Fortran, Java, COM, Excel.&lt;br /&gt;
* import danych z plików i urządzeń zewnętrznych (dodatkowo dostęp do baz danych i kolejnych urządzeń)&lt;br /&gt;
* konwersja aplikacji MATLAB-a na C i C++ przy użyciu kompilatora.&lt;br /&gt;
&lt;br /&gt;
== Licencja udostępniana przez WCSS ==&lt;br /&gt;
Aktualnie dostępna wersja to &#039;&#039;&#039;R2016a&#039;&#039;&#039; dla systemów Linux (x86, x86_64), Mac (Intel) i Windows (Server 2008, Server 2008R2, XP SP3, Vista, 7). Prosimy o [[kontakt]] z administratorami w celu wypożyczenia płyt instalacyjnych (tylko DVD). Wymagania pakietu: http://www.mathworks.com/support/sysreq/&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Matlab&#039;&#039;&#039; (30) - pakiet główny&lt;br /&gt;
* &#039;&#039;&#039;Bioinformatics Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Communications System Toolbox&#039;&#039;&#039; (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.&lt;br /&gt;
*&#039;&#039;&#039;Curve Fitting Toolbox&#039;&#039;&#039; (1) - poprzez interfejs graficzny i command-line udostępnia funkcje dla różnych aplikacji typu &#039;&#039;curve-fitting&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Data Acquisition Toolbox&#039;&#039;&#039; (1) - zestaw funkcji M-file i dynamicznych bibliotek (DLL) MEX-file napisanych w oparciu o środowisko obliczeniowe MATLABa.&lt;br /&gt;
* &#039;&#039;&#039;Spreadsheet Link EX&#039;&#039;&#039; (2) - pakiet pozwala na integrację Matlaba z programem Microsoft Excel.&lt;br /&gt;
* &#039;&#039;&#039;Filter Design HDL Coder&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Fixed-Point Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Fuzzy Logic Toolbox&#039;&#039;&#039; (1) - rozszerza środowisko MATLABa o narzędzia do projektowania systemów opartych o logikę rozmytą. &lt;br /&gt;
* &#039;&#039;&#039;Global Optimization Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Image Processing Toolbox&#039;&#039;&#039; (1) - przetwarzanie obrazów&lt;br /&gt;
* &#039;&#039;&#039;Neural Network Toolbox&#039;&#039;&#039; (10) - projektowanie i symulacja sieci neuronowych&lt;br /&gt;
* &#039;&#039;&#039;Optimization Toolbox&#039;&#039;&#039; (10) - rozszerza środowisko Matlaba o narzędzia i algorytmy do optymalizacji. &lt;br /&gt;
* &#039;&#039;&#039;Signal Processing Toolbox&#039;&#039;&#039; (10) - przetwarzanie sygnałów&lt;br /&gt;
* &#039;&#039;&#039;DSP System Toolbox&#039;&#039;&#039; (6)- symulacja procesów cyfrowej obróbki sygnałów&lt;br /&gt;
* &#039;&#039;&#039;Simulink&#039;&#039;&#039; (30) - interaktywne środowisko przeznaczone do modelowania, symulacji i analizy dynamicznych systemów.&lt;br /&gt;
** &#039;&#039;&#039;Simulink Design Optimization&#039;&#039;&#039; (1) - zawiera także Simulink Response Optimization, interfejs graficzny (GUI) do dostrajania i optymalizowania systemów sterowania i fizycznych.&lt;br /&gt;
** &#039;&#039;&#039;Simulink Fixed-Point&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;HDL Coder&#039;&#039;&#039;, dawniej &#039;&#039;&#039;Simulink HDL Coder&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Matlab Coder&#039;&#039;&#039; (1) &lt;br /&gt;
* &#039;&#039;&#039;Matlab Compiler&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Statistics Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Wavelet Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
* &#039;&#039;&#039;Parallel Computing Toolbox&#039;&#039;&#039; (5)&lt;br /&gt;
* &#039;&#039;&#039;Distributed Computing Engine&#039;&#039;&#039; (32)&lt;br /&gt;
&lt;br /&gt;
Licencje zdezaktualizowane:&lt;br /&gt;
* &#039;&#039;&#039;Communications Blockset&#039;&#039;&#039; (5) - rozszerza pakiet Simulink o bibliotekę elementów konstrukcyjnych służących do budowy i symulacji fizycznej warstwy systemów i komponentów komunikacji.&lt;br /&gt;
* &#039;&#039;&#039;Filter Design Toolbox&#039;&#039;&#039; (1)&lt;br /&gt;
=== Informacje o wykorzystaniu ===&lt;br /&gt;
{{Podziękowanie_WCSS}}&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie na klastrze Bem ==&lt;br /&gt;
MATLAB dostępny jest na klastrze [[Bem]] (katalog instalacji odpowiednio: /usr/local/matlab/WERSJA). &lt;br /&gt;
&lt;br /&gt;
=== Praca interaktywna na klastrze ===&lt;br /&gt;
*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]&lt;br /&gt;
&lt;br /&gt;
*Następnie w celu pracy interaktywnej z aplikacją należy uruchomić zadanie interaktywne w kolejce, z opcją &amp;lt;code&amp;gt;-X&amp;lt;/code&amp;gt;, np.:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;qsub -I -X -l walltime=6:00:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
;Środowisko aplikacji&lt;br /&gt;
&lt;br /&gt;
MATLAB pobiera ustawienia środowiska z pliku &amp;lt;code&amp;gt;.matlab7rc.sh&amp;lt;/code&amp;gt;. Przed uruchomieniem pobiera plik z pierwszej lokalizacji, kolejno przeszukuje: &amp;lt;code&amp;gt;./&amp;lt;/code&amp;gt; (kat. bieżący), &amp;lt;code&amp;gt;$HOME&amp;lt;/code&amp;gt; (kat. domowy użytkownika), &amp;lt;code&amp;gt;$MATLAB/bin&amp;lt;/code&amp;gt; (kat. domyślny). Wzorcowy plik &amp;lt;code&amp;gt;.matlabXrc.sh&amp;lt;/code&amp;gt; znajduje się w katalogu instalacji danej wersji MATLAB-a &amp;lt;code&amp;gt;$MATLAB_TOP/bin/&amp;lt;/code&amp;gt;. Użytkownik może skopiować ten plik do swojego katalogu domowego i zmienić w razie potrzeby ustawione wartości zmiennych: &amp;lt;code&amp;gt;ARCH, LD_LIBRARY_PATH, LM_LICENCE_FILE, MATLAB&amp;lt;/code&amp;gt; (wskazuje na katalog instalacji) i kilku innych.&lt;br /&gt;
&lt;br /&gt;
Przed użyciem MATLABa należy załadować odpowiedni moduł.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;module load matlab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Powyższe polecenie wczyta domyślną wersję. Można też wybrać konkretną wersję modułu wydając polecenie:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;module load matlab/R2015a&#039;&#039;&#039;&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;module load matlab/R2014b&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Aby sprawdzić ustawienia przesyłane do MATLAB-a podczas uruchamiania wystarczy wydać polecenie:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;matlab -n&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Aplikacja nie zostanie przy tym uruchomiona.&lt;br /&gt;
&lt;br /&gt;
;Uruchamianie aplikacji&lt;br /&gt;
&lt;br /&gt;
Do uruchamiania programu służy polecenie:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;matlab&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Wstawianie zadań wsadowych do kolejki ===&lt;br /&gt;
&lt;br /&gt;
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 &#039;&#039;&#039;&amp;lt;code&amp;gt;qsub&amp;lt;/code&amp;gt;&#039;&#039;&#039; lub skorzystać z gotowego skryptu sub-matlab (uruchamia domyślną wersję programu)&lt;br /&gt;
&lt;br /&gt;
Uruchomienie skryptu bez podania argumentów wyświetli podpowiedź jak należy te argumenty specyfikować:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; sub-matlab&lt;br /&gt;
 Usage: /usr/local/bin/sub-matlab input_file [parameters]&lt;br /&gt;
 Parameters:&lt;br /&gt;
 -q queue (default - main)&lt;br /&gt;
 -p cores (default - 1)&lt;br /&gt;
 -m memory (in MB, default - 2000)&lt;br /&gt;
 -w walltime (in hours, default - 504)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na przykład&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; sub-matlab test.inp -q main -p 2 -m 4000 -w 2 &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Uwaga&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zobacz też:&#039;&#039;&#039; [[Jak korzystać z kolejek PBS]]?&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie na infrastrukturze PLATON-U3 ==&lt;br /&gt;
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). &lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie na własnych komputerach ==&lt;br /&gt;
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]]. &lt;br /&gt;
Dostęp do serwera licencji możliwy jest poprzez system [[Korzystanie z VPN|VPN]].&lt;br /&gt;
&lt;br /&gt;
==== Instalacja na systemach z rodziny Windows ====&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;SERVER menkar.wcss.pl 0007e905907d 27002&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;USE_SERVER&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Następnie należy uruchomić instalację i podać kod PLP oraz ścieżkę do pliku licencji na kolejnych etapach instalacji.&lt;br /&gt;
&lt;br /&gt;
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]].&lt;br /&gt;
&lt;br /&gt;
==== Instalacja na systemach z rodziny Linux/UNIX ====&lt;br /&gt;
Przed instalacją należy zgłosić się do WCSS po pobranie kodu PLP wymaganego do instalacji.  Przed uruchomieniem aplikacji należy ustawić zmienną środowiskową &amp;lt;code&amp;gt;LM_LICENSE_FILE&amp;lt;/code&amp;gt; na wartość &amp;lt;code&amp;gt;&amp;quot;27002@menkar.wcss.pl&amp;quot;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Shell typu csh (csh, tcsh):&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;setenv LM_LICENSE_FILE &amp;quot;27002@menkar.wcss.pl&amp;quot; &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Shell typu sh (sh, bsh, bash, ksh, ...):&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;export LM_LICENSE_FILE=&amp;quot;27002@menkar.wcss.pl&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Rodzaj shella sprawdzamy przez:&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;echo $SHELL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Ewentualny test licencji:&lt;br /&gt;
 &amp;gt; &#039;&#039;&#039;scieżka/do/katalogu/instalacji/matlab/etc/lmstat -a -c 27002@menkar.wcss.pl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Uruchamianie zadań zdalnie na klastrze Supernova ==&lt;br /&gt;
WCSS umożliwia zlecanie zdalnie zadań obliczeniowych na klaster Supernova. Jest to możliwe na dwa sposoby: &lt;br /&gt;
# korzystając ze środowiska MATLAB-a dostępnego na infrastrukturze [[Klaster kampusowy|PLATON-U3]],&lt;br /&gt;
# korzystając ze środowiska MATLAB-a zainstalowanego na własnym komputerze.&lt;br /&gt;
&lt;br /&gt;
W obydwu przypadkach, aby zlecić zadanie zdalne korzystając z interfejsu Matlaba należy wcześniej odpowiednio go skonfigurować:&lt;br /&gt;
* pobrać plik [[http://kdm.wcss.wroc.pl/w/images/matlab_wcss.zip zip]] i rozpakować w lokalizacji przeszukiwanej przez Matlaba (listę tych miejsc można znaleźć klikając przycisk &#039;&#039;&#039;Set Path&#039;&#039;&#039; w polu &#039;&#039;&#039;Environment&#039;&#039;&#039;),&lt;br /&gt;
* pobrać plik [[http://kdm.wcss.wroc.pl/w/images/Supernova.zip zip]] i rozpakować w dowolnej lokalizacji (plik &#039;&#039;&#039;Supernova.settings&#039;&#039;&#039;, który jest w archiwum będzie potrzebny w następnym kroku),&lt;br /&gt;
* w polu &#039;&#039;&#039;Environment&#039;&#039;&#039; kliknąć na przycisk &#039;&#039;&#039;Parallel&#039;&#039;&#039; i wybrać pozycję &#039;&#039;&#039;Manage Cluster Profiles&#039;&#039;&#039;,&lt;br /&gt;
* w oknie które się pojawi kliknąć na przycisk &#039;&#039;&#039;Add&#039;&#039;&#039; i wybrać pozycję &#039;&#039;&#039;Import&#039;&#039;&#039;,&lt;br /&gt;
* wskazać lokalizację pliku &#039;&#039;&#039;Supernova.settings&#039;&#039;&#039; wypakowanego z archiwum,&lt;br /&gt;
* zaznaczyć pozycję &#039;&#039;&#039;Supernova&#039;&#039;&#039; na liście &#039;&#039;&#039;Cluster Profile&#039;&#039;&#039; i kliknąć przycisk &#039;&#039;&#039;Edit&#039;&#039;&#039;,&lt;br /&gt;
* w części SubmitFunctions należy zmienić 3. parametr funkcji (&#039;&#039;&#039;/home/tyciu&#039;&#039;&#039;), tak aby wskazywał lokalizację &#039;&#039;&#039;własnego katalogu domowego&#039;&#039;&#039; na klastrze,&lt;br /&gt;
* po kliknięciu przycisku &#039;&#039;&#039;Done&#039;&#039;&#039; można już korzystać ze zdalnego zlecania zadań.&lt;br /&gt;
&lt;br /&gt;
=== Uruchamianie zdalne z infrastruktury PLATON-U3 ===&lt;br /&gt;
Chcąc korzystać z MATLAB-a na Supernovej poprzez infrastrukturę PLATON-U3, należy zarejestrować się jako użytkownik PLATON-U3 w WCSS i założyć odpowiednią rezerwację. Po uzyskaniu dostępu do aplikacji należy ją skonfigurować (jak opisane powyżej) i zweryfikować, czy aplikacja działa poprawnie.&lt;br /&gt;
&lt;br /&gt;
==== Weryfikacja poprawności konfiguracji ====&lt;br /&gt;
W celu przeprowadzenia weryfikacji trzeba wykonać kilka, wymienionych poniżej, kroków:&lt;br /&gt;
# W zakładce &amp;lt;code&amp;gt;ENVIRONMENT &amp;gt; Set Path&amp;lt;/code&amp;gt; sprawdzić listę ścieżek. Ścieżka rozpoczynająca się od &amp;lt;code&amp;gt;\\wcss-sts&amp;lt;/code&amp;gt; znajduje się na dysku Z.&lt;br /&gt;
# W pasku wyboru ścieżki wybrać katalog znajdujący się na dysku Z, w którym zapisywane będą pliki związane ze zleceniami.&lt;br /&gt;
# W zakładce &amp;lt;code&amp;gt;ENVIRONMENT &amp;gt; Parallel &amp;gt; Manage Cluster Profiles &amp;gt; Cluster Profile&amp;lt;/code&amp;gt; wybrać profil &amp;lt;code&amp;gt;Supernova&amp;lt;/code&amp;gt;.&lt;br /&gt;
# W profilu &amp;lt;code&amp;gt;Supernova&amp;lt;/code&amp;gt; wybrać zakładkę &amp;lt;code&amp;gt;Validation Results&amp;lt;/code&amp;gt;, a następnie przeprowadzić weryfikację poprawności działania za pomocą przycisku &amp;lt;code&amp;gt;Validate&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Tworzenie nowego skryptu ====&lt;br /&gt;
Nowy skrypt Matlaba tworzy się za pomocą przycisku &amp;lt;code&amp;gt;New Script&amp;lt;/code&amp;gt;:&lt;br /&gt;
# W pasku wyboru ścieżki wybrać katalog znajdujący się na dysku Z, w którym zapisywane będą pliki związane z obliczeniami.&lt;br /&gt;
# W menu, w zakładce &amp;lt;code&amp;gt;HOME&amp;lt;/code&amp;gt; użyć przycisku &amp;lt;code&amp;gt;New Script&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Po podaniu programowi poleceń w postaci skryptu, należy ów skrypt zapisać w katalogu wybranym w podpunkcie 1.&lt;br /&gt;
# W celu uruchomienia skryptu należy kliknąć na niego (powinien być widoczny w polu &amp;lt;code&amp;gt;Current Folder&amp;lt;/code&amp;gt;) prawym przyciskiem myszy (PPM), a następnie użyć polecenia &amp;lt;code&amp;gt;Run&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Testowanie poprawności zlecania zadań ====&lt;br /&gt;
W celu przetestowania poprawności działania własnych skryptów do zlecania zadań należy:&lt;br /&gt;
# Otworzyć nowy skrypt przyciskiem &amp;lt;code&amp;gt;New Script&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Wkleić poniższy kod (*).&lt;br /&gt;
# Zapisać skrypt pod dowolną nazwą w wybranym katalogu znajdującym się w ścieżkach Matlaba.&lt;br /&gt;
# Zlecić zadanie za pomocą &amp;lt;code&amp;gt;PPM &amp;gt; Run&amp;lt;/code&amp;gt;.&lt;br /&gt;
(*)&lt;br /&gt;
 &#039;&#039;&#039;c = parcluster(&#039;Supernova&#039;);&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;job1 = createJob(c);&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;createTask(job1, @rand, 1, {3,3});&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;createTask(job1, @rand, 1, {3,3});&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;createTask(job1, @rand, 1, {3,3});&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;createTask(job1, @rand, 1, {3,3});&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;createTask(job1, @rand, 1, {3,3});&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;submit(job1);&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;wait(job1);&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;results = fetchOutputs(job1);&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;results{1:5};&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kod zleca wygenerowanie 5 macierzy 3 na 3  zawierających losowe liczby zmiennoprzecinkowe o wartościach zawierających się między 0 a 1 - każda macierz generowana jest w osobnym tasku.&lt;br /&gt;
Polecenie &amp;lt;code&amp;gt;&#039;parcluster&#039;&amp;lt;/code&amp;gt; służy do wyboru profilu z listy znajdującej się w &amp;lt;code&amp;gt;ENVIRONMENT &amp;gt; Parallel &amp;gt; Manage Cluster Profiles &amp;gt; Cluster Profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
Polecenie &amp;lt;code&amp;gt;&#039;createJob&#039;&amp;lt;/code&amp;gt; tworzy zadanie, a polecenie &amp;lt;code&amp;gt;&#039;createTask&#039;&amp;lt;/code&amp;gt; - podzadanie. Polecenie &amp;lt;code&amp;gt;&#039;submit&#039;&amp;lt;/code&amp;gt; zleca zadanie do systemu kolejkowego (PBS) na klastrze zdefiniowanym w profilu,&lt;br /&gt;
a polecenie &amp;lt;code&amp;gt;&#039;wait&#039;&amp;lt;/code&amp;gt; wymusza oczekiwanie na zakończenie zadania przed kontynuowaniem postępowania zawartego w skrypcie.&lt;br /&gt;
&lt;br /&gt;
W celu sprawdzenia wyników należy w oknie &amp;lt;code&amp;gt;Command Window&amp;lt;/code&amp;gt; wprowadzić kolejno następujące komendy:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;c = parcluster(&#039;Supernova&#039;)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;finished_jobs = findJob(c,&#039;State&#039;,&#039;finished&#039;)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Wyświetli się lista zakończonych zadań na profilu &amp;lt;code&amp;gt;Supernova&amp;lt;/code&amp;gt;. Należy wybrać zadanie, którego wyniki chcemy przejrzeć (np. 5.) i postępować według poniższych kroków:&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;finished_jobs = findJob(c,&#039;State&#039;,&#039;finished&#039;, &#039;ID&#039;, 5)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;results = fetchOutputs(finished_jobs)&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;results{1:numel(results)}&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Dokumentacja ==&lt;br /&gt;
* Dokumentacja &#039;&#039;on-line&#039;&#039; dostępna jest lokalnie po zalogowaniu się na klastrze i [[Nova]] i wydaniu polecenia &#039;&#039;&#039;doc&#039;&#039;&#039; z poziomu MATLAB-a.&lt;br /&gt;
* &#039;&#039;&amp;quot;Komputerowa symulacja układów automatycznej regulacji w środowisku MATLAB/SIMULINK&amp;quot;&#039;&#039; 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)&lt;br /&gt;
*: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.&lt;br /&gt;
*&#039;&#039;&amp;quot;Programowanie w Matlabie dla elektryków&amp;quot;&#039;&#039; s.215,rw. 2005, Sobierajski M., Łabuzek M., [http://www.oficyna.pwr.wroc.pl/ Oficyna Wydawnicza PWr] (Cena: 22,00) &lt;br /&gt;
*: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.&lt;br /&gt;
*:;Spis treści: &lt;br /&gt;
*::Wstęp&lt;br /&gt;
*:# Pierwsze kroki w Matlabie&lt;br /&gt;
*:# Podstawowe operacje macierzowe i tablicowe&lt;br /&gt;
*:# Tworzenie skryptów i współpraca z plikami danych&lt;br /&gt;
*:# Tworzenie plików funkcyjnych&lt;br /&gt;
*:# Wykresy w Matlabie&lt;br /&gt;
*:# Interfejs graficzny użytkownika&lt;br /&gt;
*:# Rozwiązywanie zadań opisanych równaniami różniczkowymi&lt;br /&gt;
*:# Współpraca z plikami zewnętrznymi&lt;br /&gt;
*:# Rozwiązywanie zadań optymalizacji&lt;br /&gt;
*:# Analiza statystyczna pomiarów&lt;br /&gt;
*:# Analiza harmonicznych&lt;br /&gt;
*:# Równania różniczkowe&lt;br /&gt;
*:# Analiza stabilności lokalnej i globalnej&lt;br /&gt;
*:# Rozwiązywanie równań różniczkowych z elementami nieliniowymi&lt;br /&gt;
*:# Wprowadzenie do Simulinka&lt;br /&gt;
*:# Modelowanie równania różniczkowego&lt;br /&gt;
*:# Modelowanie układu równań różniczkowych&lt;br /&gt;
*:# Grupowanie i maskowanie bloków&lt;br /&gt;
*::Literatura&lt;br /&gt;
&lt;br /&gt;
;MATLAB w sieci&lt;br /&gt;
* [http://www.mathworks.com/products/matlab/ Strona domowa MATLABa]&lt;br /&gt;
* [http://vistula.wis.pk.edu.pl/~sciezor/matlab.pdff Podstawy programowania w języku Matlab]&lt;br /&gt;
* [http://www.mathworks.com/company/newsletters/articles/gpu-programming-in-matlab.html?s_v1=48010423_1-AUVSR GPU Programming in MATLAB]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zobacz też:&#039;&#039;&#039; [[Oprogramowanie KDM]]&lt;br /&gt;
&lt;br /&gt;
{{oprogramowanie}}&lt;br /&gt;
[[Kategoria:Oprogramowanie]]&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Szkolenie_dla_pocz%C4%85tkuj%C4%85cych_u%C5%BCytkownik%C3%B3w_WCSS&amp;diff=5646</id>
		<title>Szkolenie dla początkujących użytkowników WCSS</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Szkolenie_dla_pocz%C4%85tkuj%C4%85cych_u%C5%BCytkownik%C3%B3w_WCSS&amp;diff=5646"/>
		<updated>2016-09-26T06:46:30Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Szkolenia dla początkujących użytkowników KDM WCSS przeprowadzane są cyklicznie. &lt;br /&gt;
__NOTOC__&lt;br /&gt;
====Najbliższe szkolenie====&lt;br /&gt;
* Terminy szkoleń ustalane są indywidualnie. Szkolenia odbywają się od poniedziałku do piątku w godzinach 8:00 - 15:00.&lt;br /&gt;
* Miejsce: PWr, s. 101/7, bud. D-2, pl. Grunwaldzki 9.&lt;br /&gt;
* Czas trwania: 1 godzina.&lt;br /&gt;
&lt;br /&gt;
Zainteresowanych prosimy o kontakt pod adresem kdm@wcss.pl.&lt;br /&gt;
&lt;br /&gt;
====Tematyka tych szkoleń obejmuje====&lt;br /&gt;
# Dostęp do zasobów.&lt;br /&gt;
# Podstawy powłoki systemowej.&lt;br /&gt;
# Przydatne narzędzia.&lt;br /&gt;
# Podstawy systemu kolejkowego.&lt;br /&gt;
&lt;br /&gt;
====Materiały do samodzielnej nauki====&lt;br /&gt;
# [[Samouczek Linux]]&lt;br /&gt;
# [[System kolejkowy]]&lt;br /&gt;
# [[PBS]]&lt;br /&gt;
&lt;br /&gt;
== Minione szkolenia ==&lt;br /&gt;
* [[Szkolenie dla początkujących użytkowników WCSS 2010-11]]&lt;br /&gt;
* [[Szkolenie dla początkujących użytkowników WCSS 2010-03]]&lt;br /&gt;
* [[Szkolenie dla początkujących użytkowników WCSS 2011-02]]&lt;br /&gt;
* [[Szkolenie dla początkujących użytkowników WCSS 2012-03]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Szkolenia]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Szkolenie_dla_pocz%C4%85tkuj%C4%85cych_u%C5%BCytkownik%C3%B3w_WCSS&amp;diff=5645</id>
		<title>Szkolenie dla początkujących użytkowników WCSS</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Szkolenie_dla_pocz%C4%85tkuj%C4%85cych_u%C5%BCytkownik%C3%B3w_WCSS&amp;diff=5645"/>
		<updated>2016-09-26T06:14:30Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Szkolenia dla początkujących użytkowników KDM WCSS przeprowadzane są cyklicznie. &lt;br /&gt;
__NOTOC__&lt;br /&gt;
====Najbliższe szkolenie====&lt;br /&gt;
* Terminy szkoleń ustalane są indywidualnie. Szkolenia możliwe są od poniedziałku do piątku w godzinach 8:00 - 15:00.&lt;br /&gt;
* Miejsce: PWr, s. 101/7, bud. D-2, pl. Grunwaldzki 9.&lt;br /&gt;
&lt;br /&gt;
Zainteresowanych prosimy o kontakt pod adresem kdm@wcss.pl.&lt;br /&gt;
&lt;br /&gt;
====Tematyka tych szkoleń obejmuje====&lt;br /&gt;
# Dostęp do zasobów.&lt;br /&gt;
# Podstawy powłoki systemowej.&lt;br /&gt;
# Przydatne narzędzia.&lt;br /&gt;
# Podstawy systemu kolejkowego.&lt;br /&gt;
&lt;br /&gt;
====Materiały do samodzielnej nauki====&lt;br /&gt;
# [[Samouczek Linux]]&lt;br /&gt;
# [[System kolejkowy]]&lt;br /&gt;
# [[PBS]]&lt;br /&gt;
&lt;br /&gt;
== Minione szkolenia ==&lt;br /&gt;
* [[Szkolenie dla początkujących użytkowników WCSS 2010-11]]&lt;br /&gt;
* [[Szkolenie dla początkujących użytkowników WCSS 2010-03]]&lt;br /&gt;
* [[Szkolenie dla początkujących użytkowników WCSS 2011-02]]&lt;br /&gt;
* [[Szkolenie dla początkujących użytkowników WCSS 2012-03]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Szkolenia]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=PGI_Server&amp;diff=5643</id>
		<title>PGI Server</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=PGI_Server&amp;diff=5643"/>
		<updated>2016-09-06T08:20:59Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Oprogramowanie KDM]] &amp;lt; [[Oprogramowanie systemowe i narzędziowe]]&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portland Server&#039;&#039;&#039; - zestaw kompilatorów niezależnego producenta Portland Group. Dostępne na klastrze  [[Bem]] w katalogach /usr/local/pgi/. WCSS posiada licencję na kompilatory PGI Fortran/C/C++ Server for Linux.&lt;br /&gt;
&lt;br /&gt;
;Użycie&lt;br /&gt;
&lt;br /&gt;
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ł:&lt;br /&gt;
 module avail pgi&lt;br /&gt;
 module load pgi/&amp;lt;wybrana_wersja&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Wywołanie:&lt;br /&gt;
* pgf77, pgf90 - języki Fortran 77, 2003 i HPF&lt;br /&gt;
* pgcc, pgCC - języki C i C++&lt;br /&gt;
* pgdbg - debugger.&lt;br /&gt;
&lt;br /&gt;
Sprawdzenie wersji:&lt;br /&gt;
 pgf77 -V&lt;br /&gt;
&lt;br /&gt;
Szybki system pomocy:&lt;br /&gt;
 pgf77 -help&lt;br /&gt;
&lt;br /&gt;
;Zalecenia ogólne&lt;br /&gt;
&lt;br /&gt;
* dostosowanie do konkretnego procesora: -tp=XXX&lt;br /&gt;
* optymalizacja: -fast, -fastsse, -OX, -MX&lt;br /&gt;
* sterowanie precyzją: -pc=XX -MX&lt;br /&gt;
* wsparcie dla OpenMP: -mp&lt;br /&gt;
* automatyczne zrównoleglanie kodu: -MX&lt;br /&gt;
&lt;br /&gt;
;Linki zewnętrzne&lt;br /&gt;
*[http://www.pgroup.com Strona domowa kompilatorów]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zobacz też:&#039;&#039;&#039; [[Oprogramowanie systemowe i narzędziowe]], [[maszyny obliczeniowe]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Kompilatory]]&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Kompilacja_aplikacji_na_klastrze&amp;diff=5642</id>
		<title>Kompilacja aplikacji na klastrze</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Kompilacja_aplikacji_na_klastrze&amp;diff=5642"/>
		<updated>2016-09-02T08:00:51Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; Kompilacja aplikacji na klastrze&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Użytkownik może kompilować swoje oprogramowanie zgodnie z regułami pracy na klastrze. Niedopuszczalna jest kompilacja na węźle dostępowym (bem.wcss.pl). &lt;br /&gt;
&lt;br /&gt;
Kompilację programu należy traktować jako jedno z zadań i wstawiać do jednej z kolejek systemu [[PBS]]. Najprościej jest zgłosić żądanie o dostęp do zasobów w trybie interaktywnym, wówczas system kolejkowy przydziela powłokę (&#039;&#039;shell&#039;&#039;) umożliwiając interaktywną pracę na węzłach obliczeniowych.&lt;br /&gt;
&lt;br /&gt;
W tym celu należy wykonać polecenie (kolejki i wymagania są przykładowe):&lt;br /&gt;
* zadanie interaktywne, z limitem &amp;lt;code&amp;gt;walltime&amp;lt;/code&amp;gt; 6 godzin , z zasobami - &amp;lt;code&amp;gt;1 rdzeń i 1 GB pamięci RAM&amp;lt;/code&amp;gt;:&lt;br /&gt;
 &#039;&#039;&#039;qsub -I -l walltime=06:00:00 -l software=icc -l select=1:ncpus=1:mem=1000mb&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Uwaga:&#039;&#039;&#039; Zadania kompilacji powinny być oznaczone parametrem &amp;lt;code&amp;gt;-l software=nazwa_kompilatora&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Przykład zastosowania:&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;$ qsub -I -l walltime=06:00:00 -l software=gcc -l select=1:ncpus=1:mem=1000mb&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;$ module load gcc/5.2.0&#039;&#039;&#039; &lt;br /&gt;
 &#039;&#039;&#039; binutils/2.25 load complete.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039; gcc/5.2.0 load complete.&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;$ gcc hello_world.c -o hello_world&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Po przyznaniu zasobów i otrzymaniu powłoki należy przygotować swoje środowisko pracy do kompilacji korzystając z [[Korzystanie z modułów | modułów]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zobacz też:&#039;&#039;&#039;&lt;br /&gt;
* [[Kompilacja aplikacji równoległych]]&lt;br /&gt;
* [[Linkowanie z bibliotekami numerycznymi]]&lt;br /&gt;
* [[Korzystanie z modułów]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Samouczek_Linux&amp;diff=5641</id>
		<title>Samouczek Linux</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Samouczek_Linux&amp;diff=5641"/>
		<updated>2016-09-01T13:15:45Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Praca z powłoką=&lt;br /&gt;
&lt;br /&gt;
==Logowanie:==&lt;br /&gt;
&lt;br /&gt;
Aby zalogować się na zdalny komputer należy:&lt;br /&gt;
&lt;br /&gt;
W systemie Windows:&lt;br /&gt;
&lt;br /&gt;
Należy pobrać program PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) obsługa jest intuicyjna.&lt;br /&gt;
&lt;br /&gt;
Przy pierwszym logowaniu na dany komputer PuTTY wyświetli nam okienko:&lt;br /&gt;
&lt;br /&gt;
[[Plik:Putty2.png|center|628px]]&lt;br /&gt;
&lt;br /&gt;
Komunikat ten ostrzega nas, że łączymy się z komputerem, który nie jest znany. Każdy komputer (dokładniej &amp;lt;tt&amp;gt;serwer ssh&amp;lt;/tt&amp;gt;) posiada unikatowy i trudny do podrobienia identyfikator (&amp;lt;tt&amp;gt;RSA fingerprint&amp;lt;/tt&amp;gt;) po którym można go rozpoznać. Zgoda spowoduje dodanie tego hosta do listy znanych komputerów, co zagwarantuje nam, że w międzyczasie nikt nie może podszyć się pod ten komputer aby podsłuchać nasze hasło. &lt;br /&gt;
&lt;br /&gt;
W systemie Linux:&lt;br /&gt;
&lt;br /&gt;
Do logowania z konsoli w systemie Linux służy polecenie ssh np.:&lt;br /&gt;
&lt;br /&gt;
 ssh sn.wcss.pl&lt;br /&gt;
&lt;br /&gt;
Spowoduje ono nawiązanie &#039;&#039;&#039;szyfrowanego&#039;&#039;&#039; połączenia ze zdalnym komputerem. Szyfrowanie działa od samego początku połączenia, czyli nasze hasło również przesyłane jest w postaci zaszyfrowanej. Przy pierwszym połączeniu z danym komputerem &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; napisze cos takiego:&lt;br /&gt;
&lt;br /&gt;
 The authenticity of host &#039;sn.wcss.pl (156.17.248.129)&#039; can&#039;t be established.&lt;br /&gt;
 RSA key fingerprint is d5:85:f7:5a:92:9b:82:7a:d3:74:67:ab:e4:46:28:e9.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
&lt;br /&gt;
Jest to odpowiednik informacji z PuTTYego.&lt;br /&gt;
&lt;br /&gt;
Każdorazowe logowanie na zdalny komputer wymaga podania naszego hasła. Co w przypadku dłuższych haseł (trudniejszych do złamania) bywa uciążliwe. Serwer &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; pozwala na zalogowanie się za pomocą klucza &amp;lt;tt&amp;gt;RSA&amp;lt;/tt&amp;gt;. Mechanizm ten pozwala określić naszą tożsamość na podstawie zapisanego na naszym dysku klucza prywatnego. Dopóki nikt nie zdobędzie naszego klucza prywatnego możemy czuć się bezpiecznie.&lt;br /&gt;
&lt;br /&gt;
Logowanie za pomocą klucza ma jedną wadę. Jeżeli ktoś włamie się na nasz komputer to będzie mógł się zalogować na wszystkie komputery, które wpuszczają nas bez hasła. &lt;br /&gt;
&lt;br /&gt;
{{uwaga|&lt;br /&gt;
&#039;&#039;&#039;Kwestie bezpieczeństwa:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nie należy zbytnio ufać obcym maszynom. Komputery WCSS używane są przez kilkuset użytkowników i są dostępne z całego świata, co zwiększa zagrożenie atakiem. Dlatego nie jest dobrym pomysłem umożliwienie logowania się z obcych komputerów na swój przy pomocy klucza. W zasadzie ryzykowne jest każde logowanie się z zewnątrz na swój komputer, bo jeżeli stanie się on ofiarą ataku to osoba, która się włamała może bez trudu podsłuchiwać wszystko co wpisujemy, w tym nasze hasło do domowego komputera. Najbezpieczniej jest:&lt;br /&gt;
&lt;br /&gt;
* mieć różne hasła na domowym komputerze i na zdalnych komputerach&lt;br /&gt;
* kopiować pliki tylko z komputera domowego, czyli:&lt;br /&gt;
** scp plik_w_domu komputer.uczelnia.pl:~/katalog/&lt;br /&gt;
** scp komputer.uczelnia.pl:~/plik_na_uczelni ./&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Aby korzystać z logowania za pomocą klucza prywatnego musimy go najpierw wygenerować. Służy do tego polecenie:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t RSA&lt;br /&gt;
&lt;br /&gt;
Wygeneruje ono parę kluczy - prywatny i publiczny i zapisze jako .ssh/id_rsa i .ssh/id_rsa.pub. Klucz publiczny (id_rsa.pub) należy umieścić na komputerach na które się chcemy zalogować. Ten klucz może być znany przez osoby trzecie.  Zawartość pliku id_rsa powinna być chroniona przed niepowołanym dostępem (domyślnie ma prawa do odczytu tylko przez nas) ponieważ to ona jest naszą przepustką pozwalającą się zalogować na zdalnym komputerze.&lt;br /&gt;
&lt;br /&gt;
Kolejną rzeczą, którą należy zrobić jest skopiowanie klucza publicznego na wybrany komputer:&lt;br /&gt;
&lt;br /&gt;
 ssh-copy-id -i ~/.ssh/id_rsa.pub uzytkownik@sn.wcss.pl&lt;br /&gt;
&lt;br /&gt;
Jeżeli wszystko się udało i zdalny komputer pozwala na uwierzytelnianie za pomocą klucza (większość pozwala), to po wydaniu polecenia:&lt;br /&gt;
&lt;br /&gt;
 ssh sn.wcss.pl&lt;br /&gt;
&lt;br /&gt;
powinniśmy zostać zalogowani bez pytania o hasło.&lt;br /&gt;
&lt;br /&gt;
Aby się wylogować należy wpisać exit lub logout.&lt;br /&gt;
&lt;br /&gt;
Przydatne polecenia:&lt;br /&gt;
&lt;br /&gt;
* CTRL+l	clear	czyści ekran&lt;br /&gt;
* CTRL+d	exit	wylogowanie&lt;br /&gt;
* SHIFT+PgUp	pokazuje starszą zawartość ekranu&lt;br /&gt;
* strzałka w górę	pokazuje poprzednie polecenia&lt;br /&gt;
* TAB		dopełnia polecenia i nazwy plików (TAB TAB pokazuje wszystko)&lt;br /&gt;
&lt;br /&gt;
==Uruchamianie programów==&lt;br /&gt;
&lt;br /&gt;
Aby uruchomić program np. Midnight Commander, należy wpisać w konsoli jego nazwę w tym wypadku &amp;lt;code&amp;gt;mc&amp;lt;/code&amp;gt;. Katalogi, które system przeszukuje znajdują się w zmiennej $PATH. Można wypisać jej zawartość w ten sposób:&lt;br /&gt;
&lt;br /&gt;
 echo $PATH&lt;br /&gt;
&lt;br /&gt;
Jak widać, nie ma tam naszego katalogu, zatem jeżeli skompilujemy sami jakiś program, napiszemy skrypt, lub zainstalujemy coś w swoim katalogu domowym nie będzie można uruchomić tego w standardowy sposób. Są dwie możliwości uruchomienia takiego programu: podać pełną ścieżkę do pliku wykonywalnego, lub dodać jego katalog do zmiennej PATH.&lt;br /&gt;
&lt;br /&gt;
* Utworzyliśmy skrypt o nazwie test w katalogu domowym i chcemy go uruchomić podając pełną ścieżkę:&lt;br /&gt;
&lt;br /&gt;
 user@bem:~$ ./test&lt;br /&gt;
&lt;br /&gt;
* Uruchamiamy za pomocą zmiennej PATH:&lt;br /&gt;
&lt;br /&gt;
 user@bem:~$ export PATH=$PATH:/home/user/&lt;br /&gt;
 user@bem:~$ test&lt;br /&gt;
&lt;br /&gt;
Jeżeli chcemy aby nasza zmienna została zapamiętana należy pierwszy z tych wierszy umieścić w pliku .bashrc.&lt;br /&gt;
&lt;br /&gt;
Uruchomione programy zajmują nam konsolę, co oznacza, że nie możemy w czasie działania programu uruchomić drugiego, ani nawet sprawdzić zawartości katalogu. Aby sobie z tym poradzić można program uruchomić w &amp;quot;tle&amp;quot; dodając znaczek ampersand (&amp;amp;) po jego nazwie. Aby przywrócić program do normalnego trybu należy użyć polecenia fg (foreground). Już działający program można również zmusić do zwolnienia konsoli. Aby tego dokonać należy nacisnąć CTRL+z co spowoduje zatrzymanie programu, a potem wpisać jedno z poleceń fg (aby przywrócić go), bg (aby kontynuować wykonanie w tle). Polecenie jobs pokaże nam jakie i ile programów chodzi w tle.&lt;br /&gt;
&lt;br /&gt;
==Strumienie==&lt;br /&gt;
&lt;br /&gt;
Z każdym wykonującym się programem (procesem) skojarzone są trzy strumienie: wejściowy (stdin), wyjściowy (stdout) i strumień wyjściowy dla błędów (stderr). Strumień wejściowy jest to zwykle ciąg znaków wpisanych z klawiatury, strumienie wyjściowe są wypisywane na ekranie. Wszystkie strumienie można w bashu przekierować, czyli zmienić ich domyślne zachowanie.&lt;br /&gt;
Jeżeli nasz program wymaga za każdym razem wprowadzenia z klawiatury jakichś parametrów, a chcemy uruchamiać go więcej razy, dużo wygodniej będzie jeżeli zapiszemy je w jakimś pliku np. input.txt i uruchomimy nasz program tak:&lt;br /&gt;
&lt;br /&gt;
 user@bem:~$ input.txt &amp;gt; program&lt;br /&gt;
&lt;br /&gt;
Analogicznie zachowują się strumienie wyjściowe, ale z racji, że są dwa zostały ponumerowane: 1 - stdout, 2 - stderr (domyślnie przyjmowane jest, że przekierowyjemy stdout). Zatem aby zapisać wynik programu do pliku out, a ewentualne błędy do err należy napisać:&lt;br /&gt;
&lt;br /&gt;
 user@bem:~$ program 1&amp;gt;out 2&amp;gt;err&lt;br /&gt;
&lt;br /&gt;
Jeżeli chcemy mieć oba strumienie w jednym pliku (tak jak to jest na ekranie), to trzeba je połączyć:&lt;br /&gt;
&lt;br /&gt;
 user@bem:~$ program 2&amp;gt;&amp;amp;1 &amp;gt;err&lt;br /&gt;
&lt;br /&gt;
Obok zapisywania do plików jest też możliwość przekierowania wyjścia jednego programu na wejście drugiego, służy d o tego operator | (pipe). &lt;br /&gt;
&lt;br /&gt;
 user@bem:~$ echo &amp;quot;.atok am alA&amp;quot; | tr &#039;.&#039; &#039;!&#039; | rev | cowsay&lt;br /&gt;
&lt;br /&gt;
Powyższy zapis oznacza: wyjście pierwszej komendy czyli &amp;quot;.atok am alA&amp;quot; przekaż na wejście programu tr, który zamieni kropki na wykrzykniki, wyjście z tr przekaż na wejście programu rev, który odwraca otrzymany napis. A wyjście rev przekaż do programu cowsay, który zajmuje się zaawansowaną obróbką tekstu. W wyniku otrzymamy:&lt;br /&gt;
  ______________&lt;br /&gt;
 &amp;lt; Ala ma kota! &amp;gt;&lt;br /&gt;
  --------------&lt;br /&gt;
         \   ^__^&lt;br /&gt;
          \  (oo)\_______&lt;br /&gt;
             (__)\       )\/\&lt;br /&gt;
                 ||----w |&lt;br /&gt;
                 ||     ||&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sygnały==&lt;br /&gt;
&lt;br /&gt;
Każdemu wykonywanemu procesowi można wysłać sygnał. Niektóre sygnały wysyła jądro systemu, niektóre są do dyspozycji użytkownika. Sygnały służą do sterowania wykonaniem programu. Np. jeżeli nasz proces będzie próbował odczytać coś z pamięci innego procesu to otrzyma od systemu sygnał SIGSEGV, co spowoduje jego natychmiastowe zakończenie z komunikatem &amp;quot;Segmentation fault&amp;quot;. Sygnałami przydatnymi z punktu widzenia użytkownika są np.&lt;br /&gt;
&lt;br /&gt;
* SIGINT&lt;br /&gt;
* SIGKILL&lt;br /&gt;
* SIGSTOP&lt;br /&gt;
* SIGCONT&lt;br /&gt;
&lt;br /&gt;
Do wysyłania sygnałów do dowolnego procesu służy program o niewinnie brzmiącej nazwie &amp;quot;kill&amp;quot;. Wywołujemy go w ten sposób:&lt;br /&gt;
&lt;br /&gt;
 kill -sKILL &amp;lt;PID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie &amp;lt;PID&amp;gt; zastępujemy numerem procesu który chcemy unieszkodliwić. Nie można użyć nazwy programu, gdyż program może być uruchomiony w kilku kopiach i system nie będzie wiedział o które nam chodzi. Jeżeli chodzi o wszystkie to możemy użyć programy killall:&lt;br /&gt;
&lt;br /&gt;
 killall -sKILL bash&lt;br /&gt;
&lt;br /&gt;
Powyższe polecenie zakończy wszystkie sesje basha (należące do nas) i popsuje nam zabawę. Sygnał SIGINT można wysłać do aktywnego programu za pomocą skrótu CTRL-C, jest to chyba najwygodniejsze przerwanie właśnie uruchomionego programu. Jeżeli na naszym komputerze trwają jakieś obliczenia a chcemy zrobić coś innego i komputer działa zbyt wolno można użyć sygnału STOP. Polecenie:&lt;br /&gt;
&lt;br /&gt;
 kill -sSTOP &amp;lt;PID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
spowoduje zatrzymanie (nie przerwanie) działania programu i zwolni nam procesor. Aby wznowić ten program wysyłamy mu kolejny sygnał - CONT:&lt;br /&gt;
&lt;br /&gt;
 kill -sCONT &amp;lt;PID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i wszystko wraca do normy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Pliki i katalogi=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Podstawowe informacje==&lt;br /&gt;
&lt;br /&gt;
Po zalogowaniu jesteśmy automatycznie umieszczani w naszym katalogu domowym, zwykle &amp;lt;tt&amp;gt;/home/user/&amp;lt;/tt&amp;gt;. Do zmiany bieżącego katalogu służy polecenie &amp;lt;tt&amp;gt;cd&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* cd katalog&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* cd ../&lt;br /&gt;
&lt;br /&gt;
Dwie kropki oznaczają wyjście do katalogu o poziom wyższego. Aby wyświetlić pliki znajdujące się w bieżącym katalogu należy wywołać polecenie &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt;. Parametrami ls są np. l (wyświetl w formie listy), a (wyświetl pliki ukryte), h (podaj rozmiar w czytelniejszej postaci).&lt;br /&gt;
&lt;br /&gt;
 user@bem:~/$ ls -lah&amp;lt;br&amp;gt;&lt;br /&gt;
 drwxrwxr-x   4 user users  128K 2008-02-29 14:39 ala&lt;br /&gt;
 -rwxr-xr-x   1 user users  8,4K 2008-02-18 12:41 a.out&lt;br /&gt;
 -rw-r--r--   1 user users     2 2008-01-30 13:13 B&lt;br /&gt;
&lt;br /&gt;
Po lewej stronie znajdują się prawa dostępu do pliku/katalogu. User jest nazwą właściciela pliku, users nazwą jego grupy, za nimi znajduje się rozmiar pliku, data utworzenia i nazwa. Prawa dostępu są czytane w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Prawa_dostepu.png]]&lt;br /&gt;
&lt;br /&gt;
Typ d oznacza, że mamy do czynienia z katalogiem, r oznacza prawo do odczytu (read), w do zapisu (Write) i x do wykonania (eXecute). Aby zmienić prawa pliku lub katalogu na przykład na takie które nie pozwolą go odczytać nikomu poza nami (i administratorem) można użyć polecenia &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 chmod og-r B&lt;br /&gt;
&lt;br /&gt;
Co jak się można domyślić oznacza zabranie (znak minus) praw do odczytu (literka r) dla grupy i dla innych (literki g i o). Tak samo można dodawać prawa, jeżeli plik B jest skryptem to możemy mu nadać prawo do wykonywania.&lt;br /&gt;
&lt;br /&gt;
 chmod +x B&lt;br /&gt;
&lt;br /&gt;
Pominięcie o,g i u spowoduje ustawienie praw do wykonania dla wszystkich, czyli:&lt;br /&gt;
&lt;br /&gt;
 ls -lah B&amp;lt;br&amp;gt;&lt;br /&gt;
 -rwx--x--x   1 user users     2 2008-01-30 13:13 B&lt;br /&gt;
&lt;br /&gt;
Przydatne programy:&lt;br /&gt;
* du -h &amp;lt;nazwa_katalogu&amp;gt; - podaje rozmiar pliku lub katalogu z wszystkimi podkatalogami&lt;br /&gt;
* df -h - podaje ilość wolnego miejsca na dyskach&lt;br /&gt;
* file &amp;lt;nazwa_pliku&amp;gt; - podaje sporo informacji o pliku, np. rozmiar obrazka w pikselach&lt;br /&gt;
&lt;br /&gt;
==Kopiowanie==&lt;br /&gt;
&lt;br /&gt;
Do kopiowania plików służy polecenie &amp;lt;tt&amp;gt;cp&amp;lt;/tt&amp;gt;. Składnia wygląda następująco:&lt;br /&gt;
&lt;br /&gt;
 cp -r &amp;lt;źródło&amp;gt; &amp;lt;cel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Flaga r (recursive) służy do kopiowania katalogów i mówi, że mają być skopiowane wszystkie podkatalogi. Przykładowe uzycie:&lt;br /&gt;
&lt;br /&gt;
* cp plik /tmp - kopiuje plik do katalogu /tmp&lt;br /&gt;
* cp katalog1/* katalog2/ - kopiuje wszystkie pliki z katalog1 do katalog2 (omijając podkatalogi)&lt;br /&gt;
* cp -r katalog1 /tmp/katalog3 - kopiuje cały katalog1 wraz z podkatalogami do katalogu /tmp jako katalog3&lt;br /&gt;
* mv katalog1 katalog2 - zmienia nazwę katalog1 na katalog2&lt;br /&gt;
&lt;br /&gt;
Aby skopiować pliki między komputerami na przykład z naszego komputera domowego na komputer bem należy użyć polecenia &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. Scp kopiuje pliki połączeniem szyfrowanym. Osiąga maksymalnie ok. 10MB/s, o ile nasze łącze na to pozwala.&lt;br /&gt;
&lt;br /&gt;
* scp plik user@bem.wcss.pl:~/ - kopiuje plik na komputer bem do naszego katalogu domowego&lt;br /&gt;
* scp -Cr katalog user@bem.wcss.pl:~/ - kopiuje katalog, flaga C włącza kompresję (warto użyć przy słabszym połączeniu)&lt;br /&gt;
* scp user@bem.wcss.pl:~/plik ./ - kopiowanie w drugą stronę, czyli ze zdalnego komputera na lokalny&lt;br /&gt;
&lt;br /&gt;
W systemie Windows jest również program do kopiowania plików na komputery linuksowe - WinSCP (http://winscp.net/).&lt;br /&gt;
&lt;br /&gt;
==Kompresja==&lt;br /&gt;
&lt;br /&gt;
Najpopularniejszym formatem skompresowanych plików w systemach unixowych jest &amp;lt;tt&amp;gt;gz&amp;lt;/tt&amp;gt; i nowszy &amp;lt;tt&amp;gt;bz2&amp;lt;/tt&amp;gt;. Jeżeli chcemy wymieniać pliki z użytkownikami Windows lepiej będzie je spakować do formatu &amp;lt;tt&amp;gt;zip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kompresja:&lt;br /&gt;
&lt;br /&gt;
* zip -r arch.zip katalog&lt;br /&gt;
* tar -cvzf arch.tar.gz katalog&lt;br /&gt;
* tar -cvjf arch.tar.bz2 katalog&lt;br /&gt;
&lt;br /&gt;
Dekompresja:&lt;br /&gt;
&lt;br /&gt;
* unzip arch.zip&lt;br /&gt;
* tar -xvzf arch.tar.gz&lt;br /&gt;
* tar -xvjf arch.tar.bz2&lt;br /&gt;
&lt;br /&gt;
=Przydatne programy=&lt;br /&gt;
&lt;br /&gt;
==Wyszukiwanie w tekście - &#039;&#039;&#039;grep&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Program &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt; pozwala znaleźć wszystkie wystąpienia wzorca w zadanym tekście. Tekst wejściowy może znajdować się w pliku, lub być podanym na standardowe wejście, a co za tym idzie może być przekierowany z wyjścia dowolnego innego polecenia.&lt;br /&gt;
&lt;br /&gt;
 grep Ala plik.txt&lt;br /&gt;
&lt;br /&gt;
Wypisze wszystkie wiersze z pliku &amp;lt;tt&amp;gt;plik.txt&amp;lt;/tt&amp;gt; zawierające przynajmniej jedno wystąpienie słowa &#039;&#039;Ala&#039;&#039;. Następujące polecenie wykonuje analogiczne przeszukiwanie ale na wyjściu innego polecenia:&lt;br /&gt;
&lt;br /&gt;
 find ./ | grep Ala&lt;br /&gt;
&lt;br /&gt;
Jak można się domyślić wypisane zostaną wszystkie pliki zawierające w nazwie, albo ścieżce słowo Ala.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Grep&amp;lt;/tt&amp;gt; jest &amp;lt;tt&amp;gt;case sensitive&amp;lt;/tt&amp;gt; co oznacza, że wielkość liter ma znaczenie i Ala, aLa i alA są trzema różnymi wzorcami. Aby wyłączyć rozróżnianie wielkości liter należy użyć przełącznika -i. Warto też zapamiętać przełączniki: --color, -v, -R. Pierwszy z nich powoduje, że &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt; koloruje każde dopasowanie wzorca, drugi neguje zapytanie a trzeci włącza tryb rekursywny.&lt;br /&gt;
&lt;br /&gt;
Wyszukiwanie pojedynczego wzorca nie wyczerpuje możliwości tego programu. Pozwala on na wyszukiwanie całej klasy napisów, które można definiować za pomocą &amp;lt;tt&amp;gt;wyrażeń regularnych&amp;lt;/tt&amp;gt;. Mają one w uproszczeniu taką składnię:&lt;br /&gt;
&lt;br /&gt;
* napis np. Abc, 42 j21&lt;br /&gt;
* . np. A.c &lt;br /&gt;
* [] np. [abc]&lt;br /&gt;
* $ i ^ np. ^napis, napis$, ^napis$&lt;br /&gt;
* * np. g*&lt;br /&gt;
* {} np. .{1,2}&lt;br /&gt;
&lt;br /&gt;
Nasz przykładowy tekst który będzie przeszukiwany to:&lt;br /&gt;
&lt;br /&gt;
 1. Kiedy się tu spotkamy jeszcze?&lt;br /&gt;
 gdy błyśnie piorun, luną deszcze?&lt;br /&gt;
 2. Gdy wrzawa ciszy ulegnie&lt;br /&gt;
 Ktoś zwycięży, ktoś polegnie.&lt;br /&gt;
 3. Zanim słońce z niebios zbiegnie.&lt;br /&gt;
 1. Gdzie?&lt;br /&gt;
 2. Na skraju wrzosowiska.&lt;br /&gt;
 3. By Macbetha ujrzeć z bliska.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dopasowywanie napisu było pokazane wcześniej. Kropka &amp;quot;.&amp;quot; dopasowuje się do dowolnego znaku, a nawiasy kwadratowe dopasowują się do pojedynczego znaku, ale tylko takiego który zawierają np.&lt;br /&gt;
&lt;br /&gt;
 user@bem:~/$ grep --color .eszcze ../makbet&lt;br /&gt;
 1. Kiedy się tu spotkamy &amp;lt;font color=red&amp;gt;jeszcze&amp;lt;/font&amp;gt;?&lt;br /&gt;
 gdy błyśnie piorun, luną &amp;lt;font color=red&amp;gt;deszcze&amp;lt;/font&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
To samo z wykorzystaniem nawiasów:&lt;br /&gt;
&lt;br /&gt;
 user@bem:~/$ grep --color [jd]eszcze ../makbet&lt;br /&gt;
 1. Kiedy się tu spotkamy &amp;lt;font color=red&amp;gt;jeszcze&amp;lt;/font&amp;gt;?&lt;br /&gt;
 gdy błyśnie piorun, luną &amp;lt;font color=red&amp;gt;deszcze&amp;lt;/font&amp;gt;?&lt;br /&gt;
 &lt;br /&gt;
Druga wersja różni się tym, że juz nie dopasuje słowa &amp;quot;leszcze&amp;quot;. Kolejne znaczki: ^ i $ służą do kotwiczenia wyrażenia odpowiednio na początku i na końcu wiersza.&lt;br /&gt;
&lt;br /&gt;
 user@bem:~/$ grep --color ^[jd]eszcze ../makbet&lt;br /&gt;
&lt;br /&gt;
Nie znajdzie żadnego trafienia. Ale można nim znaleźć tekst &amp;quot;deszcze niespokojne&amp;quot; o ile zaczyna się od początku wiersza.&lt;br /&gt;
&lt;br /&gt;
Jeżeli chcemy podać wyrażenie opisujące cały wiersz należy użyć dwóch kotwic jednocześnie. Jeżeli chcemy wypisać z pliku wszystkie wiersze zawierające sekwencję nukleotydową postaci: actgctag... To możemy to zrobić w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
 user@bem:~/$ grep --color grep ^[acgt]*$ ../seq&lt;br /&gt;
&lt;br /&gt;
==Szukanie plików - &#039;&#039;&#039;find&#039;&#039;&#039; i &#039;&#039;&#039; locate &#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Narzędzie &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt; służy do wyszukiwania plików o zadanych parametrach. Pozwala na ustalenie takich kryteriów jak czas modyfikacji/utworzenia pliku, jego nazwa, prawa dostępu czy nazwa właściciela. &lt;br /&gt;
&lt;br /&gt;
Kompletny spis opcji można znaleźć w podręczniku polecenia find.&lt;br /&gt;
&lt;br /&gt;
 man find&lt;br /&gt;
&lt;br /&gt;
Przykładowe użycie:&lt;br /&gt;
&lt;br /&gt;
* find -name ”frac1.png” : plik o wskazanej nazwie&lt;br /&gt;
* find ./ -ctime 0 : pliki utworzone dzisiaj&lt;br /&gt;
* find ./ ’*.txt’ : pliki o rozszerzeniu txt&lt;br /&gt;
&lt;br /&gt;
Drugim narzędziem, które służy do podobnych celów jest &amp;lt;tt&amp;gt;locate&amp;lt;/tt&amp;gt;. Podstawowa różnica jest taka, że &amp;lt;tt&amp;gt;locate&amp;lt;/tt&amp;gt; nie przeszukuje dysku tylko bazę danych. Dzięki temu wyszukiwanie przez &amp;lt;tt&amp;gt;locate&amp;lt;/tt&amp;gt; jest wielokrotnie szybsze od find, ale wyszukuje jedynie te pliki, które istniały w czasie tworzenia bazy. Na komputerach &amp;lt;tt&amp;gt;WCSS&amp;lt;/tt&amp;gt; baza ta tworzona jest raz dziennie.&lt;br /&gt;
&lt;br /&gt;
=Skrypty=&lt;br /&gt;
&lt;br /&gt;
==Podstawy==&lt;br /&gt;
&lt;br /&gt;
Powyższe przykłady pokazują jak wiele różnych rzeczy można zrobić w Linuksie z poziomu wiersza poleceń. Do tej pory nierozwiązana pozostała kwestia wygody użytkowania. W tym miejscu z pomocą przychodzą skrypty. Z technicznego punktu widzenia skrypt w systemie Linux to jest plik, który zawiera nazwę programu do uruchomienia i dane które do tego programu należy wysłać (standardowym wejściem). Najczęściej nazwą programu (interpretera) jest powłoka sh/bash/csh/ksh, lub jakiś język skryptowy perl/python/ruby. Aby uruchomić skrypt należy nadać mu najpierw prawa do wykonania, robi się to w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
 chmod +x nasz_skrypt&lt;br /&gt;
&lt;br /&gt;
potem aby uruchomić należy napisać:&lt;br /&gt;
&lt;br /&gt;
 ./nasz_skrypt&lt;br /&gt;
&lt;br /&gt;
Przykładowy skrypt, który ma zostać wykonany przez powłokę systemu wygląda tak:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Witaj Świecie&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Wiersz: &amp;quot;#!/bin/bash&amp;quot; określa interpreter do wykonania skryptu, poniżej znajdują się polecenia do wykonania.&lt;br /&gt;
&lt;br /&gt;
W skryptach można umieszczać zupełnie dowolne polecenia systemowe, własne programy lub nawet inne skrypty. Należy pamiętać, że przy wykonywaniu skryptu uruchamiany jest nowa kopia basha, która wykonuje nasz skrypt. Zatem coś takiego:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 ZMIENNA = 3;&lt;br /&gt;
&lt;br /&gt;
nie spowoduje ustawienia tej zmiennej w naszym systemie.&lt;br /&gt;
&lt;br /&gt;
==Pętle==&lt;br /&gt;
&lt;br /&gt;
Jeżeli chcemy jakieś polecenie wykonać więcej niż raz możemy użyć do tego celu pętli. Skrypt postaci:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 for((i=0; i&amp;lt;5; i++));&lt;br /&gt;
 do&lt;br /&gt;
 echo &amp;quot;Przebieg numer $i&amp;quot;;&lt;br /&gt;
 done;&lt;br /&gt;
&lt;br /&gt;
wypisze:&lt;br /&gt;
 Przebieg numer 0&lt;br /&gt;
 Przebieg numer 1&lt;br /&gt;
 Przebieg numer 2&lt;br /&gt;
 Przebieg numer 3&lt;br /&gt;
 Przebieg numer 4&lt;br /&gt;
&lt;br /&gt;
Oprócz wykonywania pętli dla kolejnych liczb przydatne jest wykonywanie pętli dla plików w katalogu. Dobrym przykładem jest wykonanie miniaturek wszystkich plików JPEG znajdujących się w bieżącym katalogu.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 for i in *.jpg;&lt;br /&gt;
 do&lt;br /&gt;
 convert -resize 640 $i mini_$i;&lt;br /&gt;
 done;&lt;br /&gt;
&lt;br /&gt;
Powyższy skrypt dla każdego pliku z rozszerzeniem jpg uruchomi program convert (z pakietu ImageMagick) aby wykonał miniaturę tego obrazka (zdjęcia) o &lt;br /&gt;
szerokości 640px.&lt;br /&gt;
&lt;br /&gt;
==Wyrażenia warunkowe==&lt;br /&gt;
&lt;br /&gt;
Obok pętli kolejnym sposobem na sterowanie wykonaniem skryptu są wyrażenia warunkowe. Wyrażenie takie pozwala na uzależnienie wykonania jakiegoś polecenia od zajścia logicznego warunku. Przykład może być następujący:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 grep Ala ~/dziennik.txt 2&amp;gt;&amp;amp;1 1&amp;gt;/dev/null;&lt;br /&gt;
 &lt;br /&gt;
 if [ $? = &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Znaleziono&amp;quot;;&lt;br /&gt;
    else&lt;br /&gt;
    echo &amp;quot;Nie znaleziono&amp;quot;;&lt;br /&gt;
    fi;&lt;br /&gt;
&lt;br /&gt;
Powyższy skrypt sprawdza czy w pliku dziennik.txt znajduje się słowo Ala. Najpierw za pomocą polecenia &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt; szuka w pliku dziennik.txt imienia Ala. Jak było wcześniej &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt; w przypadku znalezienia słowa wypisuje cały wiersz z pliku. Aby tego nie robić przekierowujemy wyjście do /dev/null - nic już nie zostanie wypisane. Większość poleceń w Linuksie zwraca do systemu liczbę, która niesie z sobą jakieś informacje. Liczba ta umieszczana jest w zmiennej &amp;lt;tt&amp;gt;$?&amp;lt;/tt&amp;gt;. Grep zwraca 0 jeżeli znajdzie coś, lub 1 w przypadku braku trafień. Poniżej w warunku &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; sprawdzamy zmienną &amp;lt;tt&amp;gt;$?&amp;lt;/tt&amp;gt; zawierającą rezultat pracy programu &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt;, jeżeli jest równa 0 to wykonane zostanie pierwsze polecenie, w przeciwnym wypadku wykonane zostanie to co jest po &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Więcej informacji można znaleźć tutaj: [http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html Bash programming introduction]. &lt;br /&gt;
&lt;br /&gt;
Pytania proszę kierować na adres: [mailto:wojciech.waga@pwr.wroc.pl Wojciech Waga]&lt;br /&gt;
&lt;br /&gt;
==Przykładowe zastosowania==&lt;br /&gt;
&lt;br /&gt;
===Backup===&lt;br /&gt;
Jeżeli obawiamy się o cenne dane i chcemy mieć ich kopię możemy napisać prosty skrypt, który co zadany okres będzie kompresował nasz cenny katalog i np. wysyłał nam pocztą:&lt;br /&gt;
&lt;br /&gt;
 #/bin/bash&lt;br /&gt;
 data=`date +&#039;%Y-%m-%d_%H-%M&#039;`;&lt;br /&gt;
 tar -cvjf  $data.tar.bz2   /home/user/cenny_katalog/ 1&amp;gt;/dev/null 2&amp;gt;/dev/null&lt;br /&gt;
 echo &amp;quot; &amp;quot; | mutt -s &amp;quot;backup $data&amp;quot; -a $data.tar.bz2 wojciech.waga@pwr.wroc.pl&lt;br /&gt;
&lt;br /&gt;
Skrypt ten będzie tworzył pliki o nazwie postaci:&lt;br /&gt;
&lt;br /&gt;
 2008-04-01_00-00.tar.bz2&lt;br /&gt;
&lt;br /&gt;
i wysyłał pocztą na wskazany adres. Aby jakiekolwiek polecenie wykonywało się regularnie możemy użyć programu &amp;lt;tt&amp;gt;cron&amp;lt;/tt&amp;gt;. W naszym przypadku będzie to tak:&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
&lt;br /&gt;
Teraz w edytorze wpisujemy:&lt;br /&gt;
&lt;br /&gt;
 0 0 * * * /home/user/nasz_skrypt&lt;br /&gt;
&lt;br /&gt;
co spowoduje uruchamianie naszego skryptu codziennie o godzinie 0:00, można oczywiście wybrać inną godzinę i większą lub mniejszą częstość backupów.&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Materiały szkoleniowe]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Samouczek_Linux&amp;diff=5640</id>
		<title>Samouczek Linux</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Samouczek_Linux&amp;diff=5640"/>
		<updated>2016-09-01T13:06:22Z</updated>

		<summary type="html">&lt;p&gt;Magda: /* Kopiowanie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Praca z powłoką=&lt;br /&gt;
&lt;br /&gt;
==Logowanie:==&lt;br /&gt;
&lt;br /&gt;
Aby zalogować się na zdalny komputer należy:&lt;br /&gt;
&lt;br /&gt;
W systemie Windows:&lt;br /&gt;
&lt;br /&gt;
Należy pobrać program PuTTY (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) obsługa jest intuicyjna.&lt;br /&gt;
&lt;br /&gt;
Przy pierwszym logowaniu na dany komputer PuTTY wyświetli nam okienko:&lt;br /&gt;
&lt;br /&gt;
[[Plik:Putty2.png|center|628px]]&lt;br /&gt;
&lt;br /&gt;
Komunikat ten ostrzega nas, że łączymy się z komputerem, który nie jest znany. Każdy komputer (dokładniej &amp;lt;tt&amp;gt;serwer ssh&amp;lt;/tt&amp;gt;) posiada unikatowy i trudny do podrobienia identyfikator (&amp;lt;tt&amp;gt;RSA fingerprint&amp;lt;/tt&amp;gt;) po którym można go rozpoznać. Zgoda spowoduje dodanie tego hosta do listy znanych komputerów, co zagwarantuje nam, że w międzyczasie nikt nie może podszyć się pod ten komputer aby podsłuchać nasze hasło. &lt;br /&gt;
&lt;br /&gt;
W systemie Linux:&lt;br /&gt;
&lt;br /&gt;
Do logowania z konsoli w systemie Linux służy polecenie ssh np.:&lt;br /&gt;
&lt;br /&gt;
 ssh sn.wcss.pl&lt;br /&gt;
&lt;br /&gt;
Spowoduje ono nawiązanie &#039;&#039;&#039;szyfrowanego&#039;&#039;&#039; połączenia ze zdalnym komputerem. Szyfrowanie działa od samego początku połączenia, czyli nasze hasło również przesyłane jest w postaci zaszyfrowanej. Przy pierwszym połączeniu z danym komputerem &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; napisze cos takiego:&lt;br /&gt;
&lt;br /&gt;
 The authenticity of host &#039;sn.wcss.pl (156.17.248.129)&#039; can&#039;t be established.&lt;br /&gt;
 RSA key fingerprint is d5:85:f7:5a:92:9b:82:7a:d3:74:67:ab:e4:46:28:e9.&lt;br /&gt;
 Are you sure you want to continue connecting (yes/no)?&lt;br /&gt;
&lt;br /&gt;
Jest to odpowiednik informacji z PuTTYego.&lt;br /&gt;
&lt;br /&gt;
Każdorazowe logowanie na zdalny komputer wymaga podania naszego hasła. Co w przypadku dłuższych haseł (trudniejszych do złamania) bywa uciążliwe. Serwer &amp;lt;tt&amp;gt;ssh&amp;lt;/tt&amp;gt; pozwala na zalogowanie się za pomocą klucza &amp;lt;tt&amp;gt;RSA&amp;lt;/tt&amp;gt;. Mechanizm ten pozwala określić naszą tożsamość na podstawie zapisanego na naszym dysku klucza prywatnego. Dopóki nikt nie zdobędzie naszego klucza prywatnego możemy czuć się bezpiecznie.&lt;br /&gt;
&lt;br /&gt;
Logowanie za pomocą klucza ma jedną wadę. Jeżeli ktoś włamie się na nasz komputer to będzie mógł się zalogować na wszystkie komputery, które wpuszczają nas bez hasła. &lt;br /&gt;
&lt;br /&gt;
{{uwaga|&lt;br /&gt;
&#039;&#039;&#039;Kwestie bezpieczeństwa:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Nie należy zbytnio ufać obcym maszynom. Komputery WCSS używane są przez kilkuset użytkowników i są dostępne z całego świata, co zwiększa zagrożenie atakiem. Dlatego nie jest dobrym pomysłem umożliwienie logowania się z obcych komputerów na swój przy pomocy klucza. W zasadzie ryzykowne jest każde logowanie się z zewnątrz na swój komputer, bo jeżeli stanie się on ofiarą ataku to osoba, która się włamała może bez trudu podsłuchiwać wszystko co wpisujemy, w tym nasze hasło do domowego komputera. Najbezpieczniej jest:&lt;br /&gt;
&lt;br /&gt;
* mieć różne hasła na domowym komputerze i na zdalnych komputerach&lt;br /&gt;
* kopiować pliki tylko z komputera domowego, czyli:&lt;br /&gt;
** scp plik_w_domu komputer.uczelnia.pl:~/katalog/&lt;br /&gt;
** scp komputer.uczelnia.pl:~/plik_na_uczelni ./&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Aby korzystać z logowania za pomocą klucza prywatnego musimy go najpierw wygenerować. Służy do tego polecenie:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t RSA&lt;br /&gt;
&lt;br /&gt;
Wygeneruje ono parę kluczy - prywatny i publiczny i zapisze jako .ssh/id_rsa i .ssh/id_rsa.pub. Klucz publiczny (id_rsa.pub) należy umieścić na komputerach na które się chcemy zalogować. Ten klucz może być znany przez osoby trzecie.  Zawartość pliku id_rsa powinna być chroniona przed niepowołanym dostępem (domyślnie ma prawa do odczytu tylko przez nas) ponieważ to ona jest naszą przepustką pozwalającą się zalogować na zdalnym komputerze.&lt;br /&gt;
&lt;br /&gt;
Kolejną rzeczą, którą należy zrobić jest skopiowanie klucza publicznego na wybrany komputer:&lt;br /&gt;
&lt;br /&gt;
 ssh-copy-id -i ~/.ssh/id_rsa.pub uzytkownik@sn.wcss.pl&lt;br /&gt;
&lt;br /&gt;
Jeżeli wszystko się udało i zdalny komputer pozwala na uwierzytelnianie za pomocą klucza (większość pozwala), to po wydaniu polecenia:&lt;br /&gt;
&lt;br /&gt;
 ssh sn.wcss.pl&lt;br /&gt;
&lt;br /&gt;
powinniśmy zostać zalogowani bez pytania o hasło.&lt;br /&gt;
&lt;br /&gt;
Aby się wylogować należy wpisać exit lub logout.&lt;br /&gt;
&lt;br /&gt;
Przydatne polecenia:&lt;br /&gt;
&lt;br /&gt;
* CTRL+l	clear	czyści ekran&lt;br /&gt;
* CTRL+d	exit	wylogowanie&lt;br /&gt;
* SHIFT+PgUp	pokazuje starszą zawartość ekranu&lt;br /&gt;
* strzałka w górę	pokazuje poprzednie polecenia&lt;br /&gt;
* TAB		dopełnia polecenia i nazwy plików (TAB TAB pokazuje wszystko)&lt;br /&gt;
&lt;br /&gt;
==Uruchamianie programów==&lt;br /&gt;
&lt;br /&gt;
Aby uruchomić program np. Midnight Commander, należy wpisać w konsoli jego nazwę w tym wypadku &amp;lt;code&amp;gt;mc&amp;lt;/code&amp;gt;. Katalogi, które system przeszukuje znajdują się w zmiennej $PATH. Można wypisać jej zawartość w ten sposób:&lt;br /&gt;
&lt;br /&gt;
 echo $PATH&lt;br /&gt;
&lt;br /&gt;
Jak widać, nie ma tam naszego katalogu, zatem jeżeli skompilujemy sami jakiś program, napiszemy skrypt, lub zainstalujemy coś w swoim katalogu domowym nie będzie można uruchomić tego w standardowy sposób. Są dwie możliwości uruchomienia takiego programu: podać pełną ścieżkę do pliku wykonywalnego, lub dodać jego katalog do zmiennej PATH.&lt;br /&gt;
&lt;br /&gt;
* Utworzyliśmy skrypt o nazwie test w katalogu domowym i chcemy go uruchomić podając pełną ścieżkę:&lt;br /&gt;
&lt;br /&gt;
 user@supernova:~$ ./test&lt;br /&gt;
&lt;br /&gt;
* Uruchamiamy za pomocą zmiennej PATH:&lt;br /&gt;
&lt;br /&gt;
 user@supernova:~$ export PATH=$PATH:/home/user/&lt;br /&gt;
 user@supernova:~$ test&lt;br /&gt;
&lt;br /&gt;
Jeżeli chcemy aby nasza zmienna została zapamiętana należy pierwszy z tych wierszy umieścić w pliku .bashrc.&lt;br /&gt;
&lt;br /&gt;
Uruchomione programy zajmują nam konsolę, co oznacza, że nie możemy w czasie działania programu uruchomić drugiego, ani nawet sprawdzić zawartości katalogu. Aby sobie z tym poradzić można program uruchomić w &amp;quot;tle&amp;quot; dodając znaczek ampersand (&amp;amp;) po jego nazwie. Aby przywrócić program do normalnego trybu należy użyć polecenia fg (foreground). Już działający program można również zmusić do zwolnienia konsoli. Aby tego dokonać należy nacisnąć CTRL+z co spowoduje zatrzymanie programu, a potem wpisać jedno z poleceń fg (aby przywrócić go), bg (aby kontynuować wykonanie w tle). Polecenie jobs pokaże nam jakie i ile programów chodzi w tle.&lt;br /&gt;
&lt;br /&gt;
==Strumienie==&lt;br /&gt;
&lt;br /&gt;
Z każdym wykonującym się programem (procesem) skojarzone są trzy strumienie: wejściowy (stdin), wyjściowy (stdout) i strumień wyjściowy dla błędów (stderr). Strumień wejściowy jest to zwykle ciąg znaków wpisanych z klawiatury, strumienie wyjściowe są wypisywane na ekranie. Wszystkie strumienie można w bashu przekierować, czyli zmienić ich domyślne zachowanie.&lt;br /&gt;
Jeżeli nasz program wymaga za każdym razem wprowadzenia z klawiatury jakichś parametrów, a chcemy uruchamiać go więcej razy, dużo wygodniej będzie jeżeli zapiszemy je w jakimś pliku np. input.txt i uruchomimy nasz program tak:&lt;br /&gt;
&lt;br /&gt;
 user@supernova:~$ input.txt &amp;gt; program&lt;br /&gt;
&lt;br /&gt;
Analogicznie zachowują się strumienie wyjściowe, ale z racji, że są dwa zostały ponumerowane: 1 - stdout, 2 - stderr (domyślnie przyjmowane jest, że przekierowyjemy stdout). Zatem aby zapisać wynik programu do pliku out, a ewentualne błędy do err należy napisać:&lt;br /&gt;
&lt;br /&gt;
 user@supernova:~$ program 1&amp;gt;out 2&amp;gt;err&lt;br /&gt;
&lt;br /&gt;
Jeżeli chcemy mieć oba strumienie w jednym pliku (tak jak to jest na ekranie), to trzeba je połączyć:&lt;br /&gt;
&lt;br /&gt;
 user@supernova:~$ program 2&amp;gt;&amp;amp;1 &amp;gt;err&lt;br /&gt;
&lt;br /&gt;
Obok zapisywania do plików jest też możliwość przekierowania wyjścia jednego programu na wejście drugiego, służy d o tego operator | (pipe). &lt;br /&gt;
&lt;br /&gt;
 user@supernova:~$ echo &amp;quot;.atok am alA&amp;quot; | tr &#039;.&#039; &#039;!&#039; | rev | cowsay&lt;br /&gt;
&lt;br /&gt;
Powyższy zapis oznacza: wyjście pierwszej komendy czyli &amp;quot;.atok am alA&amp;quot; przekaż na wejście programu tr, który zamieni kropki na wykrzykniki, wyjście z tr przekaż na wejście programu rev, który odwraca otrzymany napis. A wyjście rev przekaż do programu cowsay, który zajmuje się zaawansowaną obróbką tekstu. W wyniku otrzymamy:&lt;br /&gt;
  ______________&lt;br /&gt;
 &amp;lt; Ala ma kota! &amp;gt;&lt;br /&gt;
  --------------&lt;br /&gt;
         \   ^__^&lt;br /&gt;
          \  (oo)\_______&lt;br /&gt;
             (__)\       )\/\&lt;br /&gt;
                 ||----w |&lt;br /&gt;
                 ||     ||&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sygnały==&lt;br /&gt;
&lt;br /&gt;
Każdemu wykonywanemu procesowi można wysłać sygnał. Niektóre sygnały wysyła jądro systemu, niektóre są do dyspozycji użytkownika. Sygnały służą do sterowania wykonaniem programu. Np. jeżeli nasz proces będzie próbował odczytać coś z pamięci innego procesu to otrzyma od systemu sygnał SIGSEGV, co spowoduje jego natychmiastowe zakończenie z komunikatem &amp;quot;Segmentation fault&amp;quot;. Sygnałami przydatnymi z punktu widzenia użytkownika są np.&lt;br /&gt;
&lt;br /&gt;
* SIGINT&lt;br /&gt;
* SIGKILL&lt;br /&gt;
* SIGSTOP&lt;br /&gt;
* SIGCONT&lt;br /&gt;
&lt;br /&gt;
Do wysyłania sygnałów do dowolnego procesu służy program o niewinnie brzmiącej nazwie &amp;quot;kill&amp;quot;. Wywołujemy go w ten sposób:&lt;br /&gt;
&lt;br /&gt;
 kill -sKILL &amp;lt;PID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie &amp;lt;PID&amp;gt; zastępujemy numerem procesu który chcemy unieszkodliwić. Nie można użyć nazwy programu, gdyż program może być uruchomiony w kilku kopiach i system nie będzie wiedział o które nam chodzi. Jeżeli chodzi o wszystkie to możemy użyć programy killall:&lt;br /&gt;
&lt;br /&gt;
 killall -sKILL bash&lt;br /&gt;
&lt;br /&gt;
Powyższe polecenie zakończy wszystkie sesje basha (należące do nas) i popsuje nam zabawę. Sygnał SIGINT można wysłać do aktywnego programu za pomocą skrótu CTRL-C, jest to chyba najwygodniejsze przerwanie właśnie uruchomionego programu. Jeżeli na naszym komputerze trwają jakieś obliczenia a chcemy zrobić coś innego i komputer działa zbyt wolno można użyć sygnału STOP. Polecenie:&lt;br /&gt;
&lt;br /&gt;
 kill -sSTOP &amp;lt;PID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
spowoduje zatrzymanie (nie przerwanie) działania programu i zwolni nam procesor. Aby wznowić ten program wysyłamy mu kolejny sygnał - CONT:&lt;br /&gt;
&lt;br /&gt;
 kill -sCONT &amp;lt;PID&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i wszystko wraca do normy.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Pliki i katalogi=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Podstawowe informacje==&lt;br /&gt;
&lt;br /&gt;
Po zalogowaniu jesteśmy automatycznie umieszczani w naszym katalogu domowym, zwykle &amp;lt;tt&amp;gt;/home/user/&amp;lt;/tt&amp;gt;. Do zmiany bieżącego katalogu służy polecenie &amp;lt;tt&amp;gt;cd&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* cd katalog&lt;br /&gt;
* cd /usr/local/bin&lt;br /&gt;
* cd ../&lt;br /&gt;
&lt;br /&gt;
Dwie kropki oznaczają wyjście do katalogu o poziom wyższego. Aby wyświetlić pliki znajdujące się w bieżącym katalogu należy wywołać polecenie &amp;lt;tt&amp;gt;ls&amp;lt;/tt&amp;gt;. Parametrami ls są np. l (wyświetl w formie listy), a (wyświetl pliki ukryte), h (podaj rozmiar w czytelniejszej postaci).&lt;br /&gt;
&lt;br /&gt;
 user@supernova:~/$ ls -lah&amp;lt;br&amp;gt;&lt;br /&gt;
 drwxrwxr-x   4 user users  128K 2008-02-29 14:39 ala&lt;br /&gt;
 -rwxr-xr-x   1 user users  8,4K 2008-02-18 12:41 a.out&lt;br /&gt;
 -rw-r--r--   1 user users     2 2008-01-30 13:13 B&lt;br /&gt;
&lt;br /&gt;
Po lewej stronie znajdują się prawa dostępu do pliku/katalogu. User jest nazwą właściciela pliku, users nazwą jego grupy, za nimi znajduje się rozmiar pliku, data utworzenia i nazwa. Prawa dostępu są czytane w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Prawa_dostepu.png]]&lt;br /&gt;
&lt;br /&gt;
Typ d oznacza, że mamy do czynienia z katalogiem, r oznacza prawo do odczytu (read), w do zapisu (Write) i x do wykonania (eXecute). Aby zmienić prawa pliku lub katalogu na przykład na takie które nie pozwolą go odczytać nikomu poza nami (i administratorem) można użyć polecenia &amp;lt;tt&amp;gt;chmod&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 chmod og-r B&lt;br /&gt;
&lt;br /&gt;
Co jak się można domyślić oznacza zabranie (znak minus) praw do odczytu (literka r) dla grupy i dla innych (literki g i o). Tak samo można dodawać prawa, jeżeli plik B jest skryptem to możemy mu nadać prawo do wykonywania.&lt;br /&gt;
&lt;br /&gt;
 chmod +x B&lt;br /&gt;
&lt;br /&gt;
Pominięcie o,g i u spowoduje ustawienie praw do wykonania dla wszystkich, czyli:&lt;br /&gt;
&lt;br /&gt;
 ls -lah B&amp;lt;br&amp;gt;&lt;br /&gt;
 -rwx--x--x   1 user users     2 2008-01-30 13:13 B&lt;br /&gt;
&lt;br /&gt;
Przydatne programy:&lt;br /&gt;
* du -h &amp;lt;nazwa_katalogu&amp;gt; - podaje rozmiar pliku lub katalogu z wszystkimi podkatalogami&lt;br /&gt;
* df -h - podaje ilość wolnego miejsca na dyskach&lt;br /&gt;
* file &amp;lt;nazwa_pliku&amp;gt; - podaje sporo informacji o pliku, np. rozmiar obrazka w pikselach&lt;br /&gt;
&lt;br /&gt;
==Kopiowanie==&lt;br /&gt;
&lt;br /&gt;
Do kopiowania plików służy polecenie &amp;lt;tt&amp;gt;cp&amp;lt;/tt&amp;gt;. Składnia wygląda następująco:&lt;br /&gt;
&lt;br /&gt;
 cp -r &amp;lt;źródło&amp;gt; &amp;lt;cel&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Flaga r (recursive) służy do kopiowania katalogów i mówi, że mają być skopiowane wszystkie podkatalogi. Przykładowe uzycie:&lt;br /&gt;
&lt;br /&gt;
* cp plik /tmp - kopiuje plik do katalogu /tmp&lt;br /&gt;
* cp katalog1/* katalog2/ - kopiuje wszystkie pliki z katalog1 do katalog2 (omijając podkatalogi)&lt;br /&gt;
* cp -r katalog1 /tmp/katalog3 - kopiuje cały katalog1 wraz z podkatalogami do katalogu /tmp jako katalog3&lt;br /&gt;
* mv katalog1 katalog2 - zmienia nazwę katalog1 na katalog2&lt;br /&gt;
&lt;br /&gt;
Aby skopiować pliki między komputerami na przykład z naszego komputera domowego na komputer bem należy użyć polecenia &amp;lt;tt&amp;gt;scp&amp;lt;/tt&amp;gt;. Scp kopiuje pliki połączeniem szyfrowanym. Osiąga maksymalnie ok. 10MB/s, o ile nasze łącze na to pozwala.&lt;br /&gt;
&lt;br /&gt;
* scp plik user@bem.wcss.pl:~/ - kopiuje plik na komputer bem do naszego katalogu domowego&lt;br /&gt;
* scp -Cr katalog user@bem.wcss.pl:~/ - kopiuje katalog, flaga C włącza kompresję (warto użyć przy słabszym połączeniu)&lt;br /&gt;
* scp user@bem.wcss.pl:~/plik ./ - kopiowanie w drugą stronę, czyli ze zdalnego komputera na lokalny&lt;br /&gt;
&lt;br /&gt;
W systemie Windows jest również program do kopiowania plików na komputery linuksowe - WinSCP (http://winscp.net/).&lt;br /&gt;
&lt;br /&gt;
==Kompresja==&lt;br /&gt;
&lt;br /&gt;
Najpopularniejszym formatem skompresowanych plików w systemach unixowych jest &amp;lt;tt&amp;gt;gz&amp;lt;/tt&amp;gt; i nowszy &amp;lt;tt&amp;gt;bz2&amp;lt;/tt&amp;gt;. Jeżeli chcemy wymieniać pliki z użytkownikami Windows lepiej będzie je spakować do formatu &amp;lt;tt&amp;gt;zip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kompresja:&lt;br /&gt;
&lt;br /&gt;
* zip -r arch.zip katalog&lt;br /&gt;
* tar -cvzf arch.tar.gz katalog&lt;br /&gt;
* tar -cvjf arch.tar.bz2 katalog&lt;br /&gt;
&lt;br /&gt;
Dekompresja:&lt;br /&gt;
&lt;br /&gt;
* unzip arch.zip&lt;br /&gt;
* tar -xvzf arch.tar.gz&lt;br /&gt;
* tar -xvjf arch.tar.bz2&lt;br /&gt;
&lt;br /&gt;
=Przydatne programy=&lt;br /&gt;
&lt;br /&gt;
==Wyszukiwanie w tekście - &#039;&#039;&#039;grep&#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Program &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt; pozwala znaleźć wszystkie wystąpienia wzorca w zadanym tekście. Tekst wejściowy może znajdować się w pliku, lub być podanym na standardowe wejście, a co za tym idzie może być przekierowany z wyjścia dowolnego innego polecenia.&lt;br /&gt;
&lt;br /&gt;
 grep Ala plik.txt&lt;br /&gt;
&lt;br /&gt;
Wypisze wszystkie wiersze z pliku &amp;lt;tt&amp;gt;plik.txt&amp;lt;/tt&amp;gt; zawierające przynajmniej jedno wystąpienie słowa &#039;&#039;Ala&#039;&#039;. Następujące polecenie wykonuje analogiczne przeszukiwanie ale na wyjściu innego polecenia:&lt;br /&gt;
&lt;br /&gt;
 find ./ | grep Ala&lt;br /&gt;
&lt;br /&gt;
Jak można się domyślić wypisane zostaną wszystkie pliki zawierające w nazwie, albo ścieżce słowo Ala.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;Grep&amp;lt;/tt&amp;gt; jest &amp;lt;tt&amp;gt;case sensitive&amp;lt;/tt&amp;gt; co oznacza, że wielkość liter ma znaczenie i Ala, aLa i alA są trzema różnymi wzorcami. Aby wyłączyć rozróżnianie wielkości liter należy użyć przełącznika -i. Warto też zapamiętać przełączniki: --color, -v, -R. Pierwszy z nich powoduje, że &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt; koloruje każde dopasowanie wzorca, drugi neguje zapytanie a trzeci włącza tryb rekursywny.&lt;br /&gt;
&lt;br /&gt;
Wyszukiwanie pojedynczego wzorca nie wyczerpuje możliwości tego programu. Pozwala on na wyszukiwanie całej klasy napisów, które można definiować za pomocą &amp;lt;tt&amp;gt;wyrażeń regularnych&amp;lt;/tt&amp;gt;. Mają one w uproszczeniu taką składnię:&lt;br /&gt;
&lt;br /&gt;
* napis np. Abc, 42 j21&lt;br /&gt;
* . np. A.c &lt;br /&gt;
* [] np. [abc]&lt;br /&gt;
* $ i ^ np. ^napis, napis$, ^napis$&lt;br /&gt;
* * np. g*&lt;br /&gt;
* {} np. .{1,2}&lt;br /&gt;
&lt;br /&gt;
Nasz przykładowy tekst który będzie przeszukiwany to:&lt;br /&gt;
&lt;br /&gt;
 1. Kiedy się tu spotkamy jeszcze?&lt;br /&gt;
 gdy błyśnie piorun, luną deszcze?&lt;br /&gt;
 2. Gdy wrzawa ciszy ulegnie&lt;br /&gt;
 Ktoś zwycięży, ktoś polegnie.&lt;br /&gt;
 3. Zanim słońce z niebios zbiegnie.&lt;br /&gt;
 1. Gdzie?&lt;br /&gt;
 2. Na skraju wrzosowiska.&lt;br /&gt;
 3. By Macbetha ujrzeć z bliska.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dopasowywanie napisu było pokazane wcześniej. Kropka &amp;quot;.&amp;quot; dopasowuje się do dowolnego znaku, a nawiasy kwadratowe dopasowują się do pojedynczego znaku, ale tylko takiego który zawierają np.&lt;br /&gt;
&lt;br /&gt;
 user@supernova:~/$ grep --color .eszcze ../makbet&lt;br /&gt;
 1. Kiedy się tu spotkamy &amp;lt;font color=red&amp;gt;jeszcze&amp;lt;/font&amp;gt;?&lt;br /&gt;
 gdy błyśnie piorun, luną &amp;lt;font color=red&amp;gt;deszcze&amp;lt;/font&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
To samo z wykorzystaniem nawiasów:&lt;br /&gt;
&lt;br /&gt;
 user@supernova:~/$ grep --color [jd]eszcze ../makbet&lt;br /&gt;
 1. Kiedy się tu spotkamy &amp;lt;font color=red&amp;gt;jeszcze&amp;lt;/font&amp;gt;?&lt;br /&gt;
 gdy błyśnie piorun, luną &amp;lt;font color=red&amp;gt;deszcze&amp;lt;/font&amp;gt;?&lt;br /&gt;
 &lt;br /&gt;
Druga wersja różni się tym, że juz nie dopasuje słowa &amp;quot;leszcze&amp;quot;. Kolejne znaczki: ^ i $ służą do kotwiczenia wyrażenia odpowiednio na początku i na końcu wiersza.&lt;br /&gt;
&lt;br /&gt;
 user@supernova:~/$ grep --color ^[jd]eszcze ../makbet&lt;br /&gt;
&lt;br /&gt;
Nie znajdzie żadnego trafienia. Ale można nim znaleźć tekst &amp;quot;deszcze niespokojne&amp;quot; o ile zaczyna się od początku wiersza.&lt;br /&gt;
&lt;br /&gt;
Jeżeli chcemy podać wyrażenie opisujące cały wiersz należy użyć dwóch kotwic jednocześnie. Jeżeli chcemy wypisać z pliku wszystkie wiersze zawierające sekwencję nukleotydową postaci: actgctag... To możemy to zrobić w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
 user@supernova:~/$ grep --color grep ^[acgt]*$ ../seq&lt;br /&gt;
&lt;br /&gt;
==Szukanie plików - &#039;&#039;&#039;find&#039;&#039;&#039; i &#039;&#039;&#039; locate &#039;&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Narzędzie &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt; służy do wyszukiwania plików o zadanych parametrach. Pozwala na ustalenie takich kryteriów jak czas modyfikacji/utworzenia pliku, jego nazwa, prawa dostępu czy nazwa właściciela. &lt;br /&gt;
&lt;br /&gt;
Kompletny spis opcji można znaleźć w podręczniku polecenia find.&lt;br /&gt;
&lt;br /&gt;
 man find&lt;br /&gt;
&lt;br /&gt;
Przykładowe użycie:&lt;br /&gt;
&lt;br /&gt;
* find -name ”frac1.png” : plik o wskazanej nazwie&lt;br /&gt;
* find ./ -ctime 0 : pliki utworzone dzisiaj&lt;br /&gt;
* find ./ ’*.txt’ : pliki o rozszerzeniu txt&lt;br /&gt;
&lt;br /&gt;
Drugim narzędziem, które służy do podobnych celów jest &amp;lt;tt&amp;gt;locate&amp;lt;/tt&amp;gt;. Podstawowa różnica jest taka, że &amp;lt;tt&amp;gt;locate&amp;lt;/tt&amp;gt; nie przeszukuje dysku tylko bazę danych. Dzięki temu wyszukiwanie przez &amp;lt;tt&amp;gt;locate&amp;lt;/tt&amp;gt; jest wielokrotnie szybsze od find, ale wyszukuje jedynie te pliki, które istniały w czasie tworzenia bazy. Na komputerach &amp;lt;tt&amp;gt;WCSS&amp;lt;/tt&amp;gt; baza ta tworzona jest raz dziennie.&lt;br /&gt;
&lt;br /&gt;
=Skrypty=&lt;br /&gt;
&lt;br /&gt;
==Podstawy==&lt;br /&gt;
&lt;br /&gt;
Powyższe przykłady pokazują jak wiele różnych rzeczy można zrobić w Linuksie z poziomu wiersza poleceń. Do tej pory nierozwiązana pozostała kwestia wygody użytkowania. W tym miejscu z pomocą przychodzą skrypty. Z technicznego punktu widzenia skrypt w systemie Linux to jest plik, który zawiera nazwę programu do uruchomienia i dane które do tego programu należy wysłać (standardowym wejściem). Najczęściej nazwą programu (interpretera) jest powłoka sh/bash/csh/ksh, lub jakiś język skryptowy perl/python/ruby. Aby uruchomić skrypt należy nadać mu najpierw prawa do wykonania, robi się to w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
 chmod +x nasz_skrypt&lt;br /&gt;
&lt;br /&gt;
potem aby uruchomić należy napisać:&lt;br /&gt;
&lt;br /&gt;
 ./nasz_skrypt&lt;br /&gt;
&lt;br /&gt;
Przykładowy skrypt, który ma zostać wykonany przez powłokę systemu wygląda tak:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;Witaj Świecie&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Wiersz: &amp;quot;#!/bin/bash&amp;quot; określa interpreter do wykonania skryptu, poniżej znajdują się polecenia do wykonania.&lt;br /&gt;
&lt;br /&gt;
W skryptach można umieszczać zupełnie dowolne polecenia systemowe, własne programy lub nawet inne skrypty. Należy pamiętać, że przy wykonywaniu skryptu uruchamiany jest nowa kopia basha, która wykonuje nasz skrypt. Zatem coś takiego:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 ZMIENNA = 3;&lt;br /&gt;
&lt;br /&gt;
nie spowoduje ustawienia tej zmiennej w naszym systemie.&lt;br /&gt;
&lt;br /&gt;
==Pętle==&lt;br /&gt;
&lt;br /&gt;
Jeżeli chcemy jakieś polecenie wykonać więcej niż raz możemy użyć do tego celu pętli. Skrypt postaci:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 for((i=0; i&amp;lt;5; i++));&lt;br /&gt;
 do&lt;br /&gt;
 echo &amp;quot;Przebieg numer $i&amp;quot;;&lt;br /&gt;
 done;&lt;br /&gt;
&lt;br /&gt;
wypisze:&lt;br /&gt;
 Przebieg numer 0&lt;br /&gt;
 Przebieg numer 1&lt;br /&gt;
 Przebieg numer 2&lt;br /&gt;
 Przebieg numer 3&lt;br /&gt;
 Przebieg numer 4&lt;br /&gt;
&lt;br /&gt;
Oprócz wykonywania pętli dla kolejnych liczb przydatne jest wykonywanie pętli dla plików w katalogu. Dobrym przykładem jest wykonanie miniaturek wszystkich plików JPEG znajdujących się w bieżącym katalogu.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 for i in *.jpg;&lt;br /&gt;
 do&lt;br /&gt;
 convert -resize 640 $i mini_$i;&lt;br /&gt;
 done;&lt;br /&gt;
&lt;br /&gt;
Powyższy skrypt dla każdego pliku z rozszerzeniem jpg uruchomi program convert (z pakietu ImageMagick) aby wykonał miniaturę tego obrazka (zdjęcia) o &lt;br /&gt;
szerokości 640px.&lt;br /&gt;
&lt;br /&gt;
==Wyrażenia warunkowe==&lt;br /&gt;
&lt;br /&gt;
Obok pętli kolejnym sposobem na sterowanie wykonaniem skryptu są wyrażenia warunkowe. Wyrażenie takie pozwala na uzależnienie wykonania jakiegoś polecenia od zajścia logicznego warunku. Przykład może być następujący:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 grep Ala ~/dziennik.txt 2&amp;gt;&amp;amp;1 1&amp;gt;/dev/null;&lt;br /&gt;
 &lt;br /&gt;
 if [ $? = &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
    echo &amp;quot;Znaleziono&amp;quot;;&lt;br /&gt;
    else&lt;br /&gt;
    echo &amp;quot;Nie znaleziono&amp;quot;;&lt;br /&gt;
    fi;&lt;br /&gt;
&lt;br /&gt;
Powyższy skrypt sprawdza czy w pliku dziennik.txt znajduje się słowo Ala. Najpierw za pomocą polecenia &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt; szuka w pliku dziennik.txt imienia Ala. Jak było wcześniej &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt; w przypadku znalezienia słowa wypisuje cały wiersz z pliku. Aby tego nie robić przekierowujemy wyjście do /dev/null - nic już nie zostanie wypisane. Większość poleceń w Linuksie zwraca do systemu liczbę, która niesie z sobą jakieś informacje. Liczba ta umieszczana jest w zmiennej &amp;lt;tt&amp;gt;$?&amp;lt;/tt&amp;gt;. Grep zwraca 0 jeżeli znajdzie coś, lub 1 w przypadku braku trafień. Poniżej w warunku &amp;lt;tt&amp;gt;if&amp;lt;/tt&amp;gt; sprawdzamy zmienną &amp;lt;tt&amp;gt;$?&amp;lt;/tt&amp;gt; zawierającą rezultat pracy programu &amp;lt;tt&amp;gt;grep&amp;lt;/tt&amp;gt;, jeżeli jest równa 0 to wykonane zostanie pierwsze polecenie, w przeciwnym wypadku wykonane zostanie to co jest po &amp;lt;tt&amp;gt;else&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Więcej informacji można znaleźć tutaj: [http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html Bash programming introduction]. &lt;br /&gt;
&lt;br /&gt;
Pytania proszę kierować na adres: [mailto:wojciech.waga@pwr.wroc.pl Wojciech Waga]&lt;br /&gt;
&lt;br /&gt;
==Przykładowe zastosowania==&lt;br /&gt;
&lt;br /&gt;
===Backup===&lt;br /&gt;
Jeżeli obawiamy się o cenne dane i chcemy mieć ich kopię możemy napisać prosty skrypt, który co zadany okres będzie kompresował nasz cenny katalog i np. wysyłał nam pocztą:&lt;br /&gt;
&lt;br /&gt;
 #/bin/bash&lt;br /&gt;
 data=`date +&#039;%Y-%m-%d_%H-%M&#039;`;&lt;br /&gt;
 tar -cvjf  $data.tar.bz2   /home/user/cenny_katalog/ 1&amp;gt;/dev/null 2&amp;gt;/dev/null&lt;br /&gt;
 echo &amp;quot; &amp;quot; | mutt -s &amp;quot;backup $data&amp;quot; -a $data.tar.bz2 wojciech.waga@pwr.wroc.pl&lt;br /&gt;
&lt;br /&gt;
Skrypt ten będzie tworzył pliki o nazwie postaci:&lt;br /&gt;
&lt;br /&gt;
 2008-04-01_00-00.tar.bz2&lt;br /&gt;
&lt;br /&gt;
i wysyłał pocztą na wskazany adres. Aby jakiekolwiek polecenie wykonywało się regularnie możemy użyć programu &amp;lt;tt&amp;gt;cron&amp;lt;/tt&amp;gt;. W naszym przypadku będzie to tak:&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
&lt;br /&gt;
Teraz w edytorze wpisujemy:&lt;br /&gt;
&lt;br /&gt;
 0 0 * * * /home/user/nasz_skrypt&lt;br /&gt;
&lt;br /&gt;
co spowoduje uruchamianie naszego skryptu codziennie o godzinie 0:00, można oczywiście wybrać inną godzinę i większą lub mniejszą częstość backupów.&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Materiały szkoleniowe]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Bem&amp;diff=5636</id>
		<title>Bem</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Bem&amp;diff=5636"/>
		<updated>2016-08-30T13:07:58Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Maszyny obliczeniowe]] &amp;lt; Bem&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;!--{{note|Przerwa serwisowa klastra: 17 sierpnia - 21 sierpnia 2015}}--&amp;gt;&lt;br /&gt;
{{serwer&lt;br /&gt;
|nazwa=Bem&lt;br /&gt;
|zdjęcie=bem.jpg&lt;br /&gt;
|admini=kdm@wcss.pl&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Bem&#039;&#039;&#039; - klaster zainstalowany w [[WCSS]] w marcu 2015 r. Architektura wszystkich komputerów to x86_64 z procesorami Intel Xeon E5-2670v3 (mikroarchitektura Haswell).&lt;br /&gt;
&lt;br /&gt;
=== Parametry klastra ===&lt;br /&gt;
&lt;br /&gt;
* węzeł dostępowy: &#039;&#039;&#039;bem.wcss.pl&#039;&#039;&#039;,&lt;br /&gt;
* 720 węzłów obliczeniowych 24-rdzeniowych (Intel Xeon E5-2670 v3 2.3 GHz, Haswell),&lt;br /&gt;
* 192 węzły obliczeniowe 28-rdzeniowe (Intel Xeon E5-2697 v3 2.6 GHz, Haswell),&lt;br /&gt;
* 22 656 rdzeni obliczeniowych,&lt;br /&gt;
* 74,6 TB pamięci RAM (64, 128 lub 512 GB/węzeł),&lt;br /&gt;
* przestrzeń na katalogi domowe użytkowników: 11 TB NFS /home, &lt;br /&gt;
* przestrzeń tymczasowa: 1,1 PB Lustre,&lt;br /&gt;
* sieć obliczeniowa: Infiniband FDR, przepływność 56 Gbps (topologia fat-tree, współczynnik blokowania 3:1),&lt;br /&gt;
* sieć zarządzania: Ethernet 1G/10G,&lt;br /&gt;
* system operacyjny: CentOS 6.8,&lt;br /&gt;
* moc obliczeniowa: 860 TFLOPS.&lt;br /&gt;
&lt;br /&gt;
=== Oprogramowanie ===&lt;br /&gt;
;Aplikacje&lt;br /&gt;
[[Abaqus]], [[ABINIT]], [[ADF]], [[Amber]], [[ANSYS CFX]], [[ANSYS Fluent]], [[Cfour]], [[Comsol]], [[CP2K]], [[CPMD]], [[CRYSTAL09]], [[Dalton]], [[FDS-SMV]], [[GAMESS]], [[Gaussian]], [[Gromacs]], [[LAMMPS]], [[Lumerical]] [&amp;amp;nbsp;[[Lumerical FDTD|FDTD]], [[Lumerical MODE|MODE]]&amp;amp;nbsp;], [[Mathematica]], [[Matlab]], [[Molcas]], [[Molpro]], [[NWChem]], [[Orca]], [[R]], [[Siesta]], [[TURBOMOLE]] i [[Oprogramowanie_naukowe|inne]] oraz aplikacje własne użytkowników.&lt;br /&gt;
&lt;br /&gt;
;Kompilatory&lt;br /&gt;
[[GNU GCC]], [[Intel]], [[PGI]] i [[Oprogramowanie_systemowe_i_narzędziowe|inne]].&lt;br /&gt;
&lt;br /&gt;
;Biblioteki i narzędzia&lt;br /&gt;
* OpenMPI,&lt;br /&gt;
* HDF, HDF5,&lt;br /&gt;
* NetCDF,&lt;br /&gt;
* Python + SciPy + NumPy,&lt;br /&gt;
* [[Oprogramowanie_systemowe_i_narzędziowe|pozostałe]].&lt;br /&gt;
&lt;br /&gt;
;System kolejkowania &lt;br /&gt;
[[PBSPro]].&lt;br /&gt;
&lt;br /&gt;
===Zalecenia===&lt;br /&gt;
&lt;br /&gt;
* na dysku /home wprowadzone zostały kwoty dyskowe: limit 50GB; sprawdzenie stanu:&lt;br /&gt;
 quota&lt;br /&gt;
opis systemu kwot:&lt;br /&gt;
 man quota&lt;br /&gt;
&lt;br /&gt;
===Zobacz też===&lt;br /&gt;
*[[Maszyny obliczeniowe]]&lt;br /&gt;
&lt;br /&gt;
{{maszyny obliczeniowe}}&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Maszyny obliczeniowe]]&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Bem&amp;diff=5635</id>
		<title>Bem</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Bem&amp;diff=5635"/>
		<updated>2016-08-30T13:07:10Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Maszyny obliczeniowe]] &amp;lt; Bem&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;!--{{note|Przerwa serwisowa klastra: 17 sierpnia - 21 sierpnia 2015}}--&amp;gt;&lt;br /&gt;
{{serwer&lt;br /&gt;
|nazwa=Bem&lt;br /&gt;
|zdjęcie=bem.jpg&lt;br /&gt;
|admini=kdm@wcss.pl&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;Bem&#039;&#039;&#039; - klaster zainstalowany w [[WCSS]] w marcu 2015 r. Architektura wszystkich komputerów to x86_64 z procesorami Intel Xeon E5-2670v3 (mikroarchitektura Haswell).&lt;br /&gt;
&lt;br /&gt;
=== Parametry klastra ===&lt;br /&gt;
&lt;br /&gt;
* węzeł dostępowy: &#039;&#039;&#039;bem.wcss.pl&#039;&#039;&#039;,&lt;br /&gt;
* 720 węzłów obliczeniowych 24-rdzeniowych (Intel Xeon E5-2670 v3 2.3 GHz, Haswell),&lt;br /&gt;
* 192 węzły obliczeniowe 28-rdzeniowe (Intel Xeon E5-2697 v3 2.6 GHz, Haswell),&lt;br /&gt;
* 22 656 rdzeni obliczeniowych,&lt;br /&gt;
* 74,6 TB pamięci RAM (64, 128 lub 512 GB/węzeł),&lt;br /&gt;
* przestrzeń na katalogi domowe użytkowników: 11 TB NFS /home, &lt;br /&gt;
* przestrzeń tymczasowa: 1,1 PB Lustre,&lt;br /&gt;
* sieć obliczeniowa: Infiniband FDR, przepływność 56 Gbps (topologia fat-tree, współczynnik blokowania 3:1),&lt;br /&gt;
* sieć zarządzania: Ethernet 1G/10G,&lt;br /&gt;
* system operacyjny: ScientificLinux 6.7,&lt;br /&gt;
* moc obliczeniowa: 860 TFLOPS.&lt;br /&gt;
&lt;br /&gt;
=== Oprogramowanie ===&lt;br /&gt;
;Aplikacje&lt;br /&gt;
[[Abaqus]], [[ABINIT]], [[ADF]], [[Amber]], [[ANSYS CFX]], [[ANSYS Fluent]], [[Cfour]], [[Comsol]], [[CP2K]], [[CPMD]], [[CRYSTAL09]], [[Dalton]], [[FDS-SMV]], [[GAMESS]], [[Gaussian]], [[Gromacs]], [[LAMMPS]], [[Lumerical]] [&amp;amp;nbsp;[[Lumerical FDTD|FDTD]], [[Lumerical MODE|MODE]]&amp;amp;nbsp;], [[Mathematica]], [[Matlab]], [[Molcas]], [[Molpro]], [[NWChem]], [[Orca]], [[R]], [[Siesta]], [[TURBOMOLE]] i [[Oprogramowanie_naukowe|inne]] oraz aplikacje własne użytkowników.&lt;br /&gt;
&lt;br /&gt;
;Kompilatory&lt;br /&gt;
[[GNU GCC]], [[Intel]], [[PGI]] i [[Oprogramowanie_systemowe_i_narzędziowe|inne]].&lt;br /&gt;
&lt;br /&gt;
;Biblioteki i narzędzia&lt;br /&gt;
* OpenMPI,&lt;br /&gt;
* HDF, HDF5,&lt;br /&gt;
* NetCDF,&lt;br /&gt;
* Python + SciPy + NumPy,&lt;br /&gt;
* [[Oprogramowanie_systemowe_i_narzędziowe|pozostałe]].&lt;br /&gt;
&lt;br /&gt;
;System kolejkowania &lt;br /&gt;
[[PBSPro]].&lt;br /&gt;
&lt;br /&gt;
===Zalecenia===&lt;br /&gt;
&lt;br /&gt;
* na dysku /home wprowadzone zostały kwoty dyskowe: limit 50GB; sprawdzenie stanu:&lt;br /&gt;
 quota&lt;br /&gt;
opis systemu kwot:&lt;br /&gt;
 man quota&lt;br /&gt;
&lt;br /&gt;
===Zobacz też===&lt;br /&gt;
*[[Maszyny obliczeniowe]]&lt;br /&gt;
&lt;br /&gt;
{{maszyny obliczeniowe}}&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Maszyny obliczeniowe]]&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=.snapshot&amp;diff=5634</id>
		<title>.snapshot</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=.snapshot&amp;diff=5634"/>
		<updated>2016-08-30T08:33:04Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Dostęp do KDM]] &amp;lt; [[Dostępna przestrzeń dyskowa]] &amp;lt; Snapshot &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Snapshoty na /home ==&lt;br /&gt;
&lt;br /&gt;
=== Czym jest snapshot? ===&lt;br /&gt;
&lt;br /&gt;
Snapshot to zapis stanu systemu (w tym przypadku katalogu domowego użytkownika KDM WCSS). &lt;br /&gt;
&lt;br /&gt;
=== Jaki jest harmonogram tworzenia snapshotów? ===&lt;br /&gt;
&lt;br /&gt;
Snapshoty wykonywane są regularnie w następujących sekwencjach:&lt;br /&gt;
&lt;br /&gt;
* każdego dnia co 6h od 9:00 do 21:00 (poszczególne snapshoty są zapisywane w katalogach .hourly, przykładowo zapis stanu systemu z dnia 09.06.2016r. z godziny 9:00 znajduje się w katalogu 2016-06-09_0900+0200.hourly) - przechowywane są 4 ostatnie tego typu snapshoty &lt;br /&gt;
* codziennie o 3:00 poza piątkami (poszczególne snapshoty są zapisywane w katalogach .daily) - przechowywanych jest 7 ostatnich tego typu snapshotów&lt;br /&gt;
* co tydzień, w każdy piątek o 3:00 (poszczególne snapshoty są zapisywane w katalogach .weekly) - przechowywanych jest 12 ostatnich tego typu snapshotów&lt;br /&gt;
&lt;br /&gt;
=== Jakie korzyści dają snapshoty? ===&lt;br /&gt;
&lt;br /&gt;
Dzięki snapshotom możliwy jest dostęp do starszych wersji danych (są to wersje z momentu wykonania snapshotu), co w konsekwncji pozwala również na odyskanie skasowanych danych.&lt;br /&gt;
&lt;br /&gt;
Skasowane dane można odzyskać jeśli istniały w systemie w momencie wykonania snapshotu. Będą one miały dokładnie taką formę jak w momencie wykonania danego snapshotu. &lt;br /&gt;
&lt;br /&gt;
=== Jak dostać się do snapshotów na /home? ===&lt;br /&gt;
&lt;br /&gt;
Snaphoty znajdują się w ukrytych katalogach o nazwie .snapshot &lt;br /&gt;
&lt;br /&gt;
Są one dostępne w katalogu domowym użytkownika /home/login jak i w poszczególnych jego podkatalogach. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Uwaga:&#039;&#039;&#039; unixowe autouzupełnianie nie działa w przypadku katalogu .snapshot. To znaczy, że nie możemy wpisać .snap i nacisnąć przycisku TAB. Powłoka zachowa się wtedy jakby tego katalogu nie było.&lt;br /&gt;
&lt;br /&gt;
 [wcss] 3107mach@bem ~ &amp;gt; ls -latr ~/.snapshot&lt;br /&gt;
 razem 304&lt;br /&gt;
 drwxr-xr-x 86 3107mach grant126 14336 05-01 18:51 2016-05-02_0000+0200.weekly&lt;br /&gt;
 drwxr-xr-x 75 3107mach grant126 16384 05-08 19:17 2016-05-09_0000+0200.weekly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 05-14 11:32 2016-05-16_0300+0200.weekly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 05-22 16:47 2016-05-23_0300+0200.weekly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 05-29 20:47 2016-05-30_0300+0200.weekly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-01 18:00 2016-06-02_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-02 16:11 2016-06-03_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-03 15:32 2016-06-05_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-03 15:32 2016-06-04_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-05 18:01 2016-06-06_0300+0200.weekly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-06 15:52 2016-06-07_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-07 17:36 2016-06-08_0900+0200.hourly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-07 17:36 2016-06-08_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-08 14:52 2016-06-08_1500+0200.hourly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-08 15:51 2016-06-09_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-08 15:51 2016-06-08_2100+0200.hourly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-09 08:47 2016-06-09_0900+0200.hourly&lt;br /&gt;
 drwxrwxrwx 19 root     root     16384 06-09 09:00 .&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-09 09:16 ..&lt;br /&gt;
&lt;br /&gt;
=== Jak skopiować dane? ===&lt;br /&gt;
&lt;br /&gt;
Snapshoty są dostępne tylko do odczytu i działają na nich zwykłe polecenia systemowe:&lt;br /&gt;
&lt;br /&gt;
 [wcss] 3107mach@bem ~ &amp;gt; cp ~/.snapshot/2016-06-09_0900+0200.hourly/test/r1.inp .&lt;br /&gt;
&lt;br /&gt;
skopiuje do obecnego katalogu plik r1.inp z podkatalogu ~/test ze snapshot-u zrobionego dnia 9.06.2016 o godzinie 9:00.&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;br /&gt;
[[Kategoria:Storage]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=.snapshot&amp;diff=5633</id>
		<title>.snapshot</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=.snapshot&amp;diff=5633"/>
		<updated>2016-08-30T08:31:46Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Dostęp do KDM]] &amp;lt; [[Dostępna przestrzeń dyskowa]] &amp;lt; Snapshot &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Snapshoty na /home ==&lt;br /&gt;
&lt;br /&gt;
=== Czym jest snapshot? ===&lt;br /&gt;
&lt;br /&gt;
Snapshot to zapis stanu systemu (w tym przypadku katalogu domowego użytkownika KDM WCSS). &lt;br /&gt;
&lt;br /&gt;
=== Jaki jest harmonogram tworzenia snapshotów? ===&lt;br /&gt;
&lt;br /&gt;
Snapshoty wykonywane są regularnie w następujących sekwencjach:&lt;br /&gt;
&lt;br /&gt;
* każdego dnia co 6h od 9:00 do 21:00 (poszczególne snapshoty są zapisywane w katalogach .hourly, przykładowo zapis stanu systemu z dnia 09.06.2016r. z godziny 9:00 znajduje się w katalogu 2016-06-09_0900+0200.hourly) - przechowywane są 4 ostatnie tego typu snapshoty &lt;br /&gt;
* codziennie o 3:00 poza poniedziałkami (poszczególne snapshoty są zapisywane w katalogach .daily) - przechowywanych jest 7 ostatnich tego typu snapshotów&lt;br /&gt;
* co tydzień, w każdy piątek o 3:00 (poszczególne snapshoty są zapisywane w katalogach .weekly) - przechowywanych jest 12 ostatnich tego typu snapshotów&lt;br /&gt;
&lt;br /&gt;
=== Jakie korzyści dają snapshoty? ===&lt;br /&gt;
&lt;br /&gt;
Dzięki snapshotom możliwy jest dostęp do starszych wersji danych (są to wersje z momentu wykonania snapshotu), co w konsekwncji pozwala również na odyskanie skasowanych danych.&lt;br /&gt;
&lt;br /&gt;
Skasowane dane można odzyskać jeśli istniały w systemie w momencie wykonania snapshotu. Będą one miały dokładnie taką formę jak w momencie wykonania danego snapshotu. &lt;br /&gt;
&lt;br /&gt;
=== Jak dostać się do snapshotów na /home? ===&lt;br /&gt;
&lt;br /&gt;
Snaphoty znajdują się w ukrytych katalogach o nazwie .snapshot &lt;br /&gt;
&lt;br /&gt;
Są one dostępne w katalogu domowym użytkownika /home/login jak i w poszczególnych jego podkatalogach. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Uwaga:&#039;&#039;&#039; unixowe autouzupełnianie nie działa w przypadku katalogu .snapshot. To znaczy, że nie możemy wpisać .snap i nacisnąć przycisku TAB. Powłoka zachowa się wtedy jakby tego katalogu nie było.&lt;br /&gt;
&lt;br /&gt;
 [wcss] 3107mach@bem ~ &amp;gt; ls -latr ~/.snapshot&lt;br /&gt;
 razem 304&lt;br /&gt;
 drwxr-xr-x 86 3107mach grant126 14336 05-01 18:51 2016-05-02_0000+0200.weekly&lt;br /&gt;
 drwxr-xr-x 75 3107mach grant126 16384 05-08 19:17 2016-05-09_0000+0200.weekly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 05-14 11:32 2016-05-16_0300+0200.weekly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 05-22 16:47 2016-05-23_0300+0200.weekly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 05-29 20:47 2016-05-30_0300+0200.weekly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-01 18:00 2016-06-02_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-02 16:11 2016-06-03_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-03 15:32 2016-06-05_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-03 15:32 2016-06-04_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-05 18:01 2016-06-06_0300+0200.weekly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-06 15:52 2016-06-07_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-07 17:36 2016-06-08_0900+0200.hourly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-07 17:36 2016-06-08_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-08 14:52 2016-06-08_1500+0200.hourly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-08 15:51 2016-06-09_0300+0200.daily&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-08 15:51 2016-06-08_2100+0200.hourly&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-09 08:47 2016-06-09_0900+0200.hourly&lt;br /&gt;
 drwxrwxrwx 19 root     root     16384 06-09 09:00 .&lt;br /&gt;
 drwxr-xr-x 76 3107mach grant126 16384 06-09 09:16 ..&lt;br /&gt;
&lt;br /&gt;
=== Jak skopiować dane? ===&lt;br /&gt;
&lt;br /&gt;
Snapshoty są dostępne tylko do odczytu i działają na nich zwykłe polecenia systemowe:&lt;br /&gt;
&lt;br /&gt;
 [wcss] 3107mach@bem ~ &amp;gt; cp ~/.snapshot/2016-06-09_0900+0200.hourly/test/r1.inp .&lt;br /&gt;
&lt;br /&gt;
skopiuje do obecnego katalogu plik r1.inp z podkatalogu ~/test ze snapshot-u zrobionego dnia 9.06.2016 o godzinie 9:00.&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;br /&gt;
[[Kategoria:Storage]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Dost%C4%99pna_przestrze%C5%84_dyskowa&amp;diff=5632</id>
		<title>Dostępna przestrzeń dyskowa</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Dost%C4%99pna_przestrze%C5%84_dyskowa&amp;diff=5632"/>
		<updated>2016-08-26T13:28:43Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;small&amp;gt;&amp;lt; [[Podręcznik użytkownika KDM]] &amp;lt; [[Dostęp do KDM]] &amp;lt; Dostępna przestrzeń dyskowa&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Użytkownicy KDM mają na każdym [[Maszyny obliczeniowe|serwerze]] do dyspozycji kilka katalogów, w których mogą przechowywać swoje pliki:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;/home/$USER&#039;&#039;&#039;&lt;br /&gt;
:Katalogi domowe użytkownika znajdują się w systemach plików /home. Należy przechowywać tam tylko pliki potrzebne do aktualnych obliczeń. Przechowywanie plików o dużych rozmiarach jest niewskazane. W katalogach /home/$USER są tworzone krótkoterminowe kopie zapasowe danych użytkowników, z wykorzystaniem mechanizmu migawek (&#039;&#039;snapshoty&#039;&#039;). Do migawek użytkownicy mają dostęp w swoim katalogu domowym w podkatalogu &amp;lt;code&amp;gt;[[.snapshot]]&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;/lustre/scratch/&#039;&#039;&#039; &amp;lt;br&amp;gt; Katalogi przeznaczone na pliki tymczasowe generowane przez programy obliczeniowe znajdują się w systemie plików &amp;lt;code&amp;gt;/lustre/scratch&amp;lt;/code&amp;gt; na [[Bem]].  &amp;lt;br&amp;gt; System plików [[Lustre]] jest dostępny ze wszystkich węzłów obliczeniowych klastra [[Bem]] oraz na węźle do archiwizacji archiwum.wcss.pl. &amp;lt;br&amp;gt; Kopie zapasowe katalogów w przestrzeni tymczasowej nie są wykonywane. &amp;lt;br&amp;gt; Użytkownik ma prawo dostępu jedynie do katalogów swoich zadań &amp;lt;code&amp;gt;/lustre/scratch/tmp/pbs.JobID&amp;lt;/code&amp;gt; i swojego katalogu osobistego &amp;lt;code&amp;gt;/lustre/scratch/$USER&amp;lt;/code&amp;gt; &lt;br /&gt;
** &#039;&#039;&#039;/lustre/scratch/tmp/pbs.JobID&#039;&#039;&#039; &amp;lt;br&amp;gt;  Katalogi tworzone są w momencie startu zadania i usuwane wraz z zakończeniem zadania. &amp;lt;br&amp;gt; Zmienna środowiskowa: $TMPDIR &amp;lt;br&amp;gt; Użytkownik ma prawa zapisu tylko do swoich katalogów w przestrzeni tymczasowej.&lt;br /&gt;
** &#039;&#039;&#039;/lustre/scratch/$USER&#039;&#039;&#039; &amp;lt;br&amp;gt; Katalogi osobiste na &amp;lt;code&amp;gt;/lustre/scratch&amp;lt;/code&amp;gt; zakładane są po złożeniu przez użytkownika uzasadnionego wniosku, który wymaga rozpatrzenia przez administratora. Prośby o taki katalog można składać pod adresem &#039;&#039;&#039;kdm @ wcss.pl&#039;&#039;&#039;. &amp;lt;br&amp;gt; Zawartość tych katalogów nie jest usuwana w momencie zakończenia zadania obliczeniowego. &amp;lt;br&amp;gt; Użytkownik powinien kontrolować zajętość tych katalogów, aby zbędne pliki nie zajmowały niepotrzebnie miejsca. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;/archiwum/$USER&#039;&#039;&#039;&lt;br /&gt;
:Katalog /archiwum na klastrze [[Bem]] jest dostępny tylko po zalogowaniu na dedykowany węzeł &#039;&#039;&#039;archiwum.wcss.pl&#039;&#039;&#039;. Z tego węzła użytkownik ma dostęp do katalogu domowego i swojego katalogu na roboczym systemie plików. W archiwum można umieszczać ważne dane, które nie są wykorzystywane do bieżących obliczeń. Użytkownicy mają do dyspozycji prywatne archiwa, z prawami zapisu tylko do swoich katalogów. Pliki widziane w tym katalogu mogą zostać automatycznie przeniesione do systemu [[Archiwizacja|archiwizacji]]. Odczytywanie pliku przeniesionego do archiwum może potrwać od kilkunastu do kilkudziesięciu sekund, gdyż w tym czasie plik jest automatycznie przywracany. Poza tym korzystanie z archiwum nie różni się od korzystania ze zwykłego katalogu na dysku. &lt;br /&gt;
:Archiwizowane pliki są przechowywane w dwóch kopiach i są tworzone ich kopie zapasowe. Archiwum ma dużą pojemność.&lt;br /&gt;
:Zasady i techniki operacji na plikach opisane są na stronie [[Archiwizacja danych]].&lt;br /&gt;
&lt;br /&gt;
{{uwaga2|Zapis &amp;quot;$USER&amp;quot; oznacza wartość zmiennej środowiskowej USER, w której system przechowuje nazwę (login) użytkownika.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zobacz też:&#039;&#039;&#039; &lt;br /&gt;
* [[Lustre Best Practices | Lustre - zbiór najlepszych praktyk]]&lt;br /&gt;
* [[archiwizacja danych]]&lt;br /&gt;
* [[.snapshot]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
	<entry>
		<id>https://kdm.wcss.pl/w/index.php?title=Podr%C4%99cznik_u%C5%BCytkownika_KDM&amp;diff=5631</id>
		<title>Podręcznik użytkownika KDM</title>
		<link rel="alternate" type="text/html" href="https://kdm.wcss.pl/w/index.php?title=Podr%C4%99cznik_u%C5%BCytkownika_KDM&amp;diff=5631"/>
		<updated>2016-08-18T13:17:59Z</updated>

		<summary type="html">&lt;p&gt;Magda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Plik:en.jpg|right|link={{PAGENAME}}/en]]&lt;br /&gt;
Jednym z&amp;amp;nbsp;obszarów działania Wrocławskiego Centrum Sieciowo-Superkomputerowego ([[WCSS]]) jest udostępnianie serwerów obliczeniowych do badań naukowych. Serwery te określane są mianem [[Komputery Dużej Mocy|Komputerów Dużej Mocy]] (KDM). Ze względu na charakter prowadzonych na nich obliczeń, wymagana jest wysoka jakość i&amp;amp;nbsp;niezawodność sprzętu, systemów i&amp;amp;nbsp;oprogramowania. Jednym z&amp;amp;nbsp;warunków zapewnienia tych własności jest sprawne i&amp;amp;nbsp;bezpieczne administrowanie i&amp;amp;nbsp;użytkowanie zasobów KDM.&lt;br /&gt;
&lt;br /&gt;
Podręcznik w&amp;amp;nbsp;postaci KDMWiki ma służyć użytkownikom KDM, zarówno początkującym, jak i&amp;amp;nbsp;zaawansowanym, dostarczając opisy środowiska pracy i&amp;amp;nbsp;podpowiedzi ułatwiające korzystanie z&amp;amp;nbsp;zasobów KDM. Znajdują się tu informacje o&amp;amp;nbsp;konfiguracji kont, dostępnym [[Oprogramowanie KDM|oprogramowaniu]] oraz podstawowych zasadach współpracy z&amp;amp;nbsp;systemem (procedury [[Logowanie|logowania]], [[Przekierowanie wyświetlania|przekierowania wyświetlania]] (display), korzystanie z&amp;amp;nbsp;[[Jak korzystać z kolejek PBS|kolejek]], itp.).&lt;br /&gt;
&lt;br /&gt;
Dokumentacja obejmuje zagadnienia dotyczące użytkowania [[maszyny obliczeniowe|Komputerów Dużej Mocy]]. Niniejsza dokumentacja tworzona jest na bieżąco przez [[Administrator KDM|administratorów KDM]], po każdej istotnej zmianie w&amp;amp;nbsp;obszarach objętych dokumentacją. Zmiany mogą być także wprowadzane przez użytkowników, jeżeli uznają, że mogą podzielić się z&amp;amp;nbsp;innymi użytkownikami swoim doświadczeniem. Zmiana istotna w&amp;amp;nbsp;odniesieniu do użytkowników to taka, która wpływa na sposób korzystania z&amp;amp;nbsp;kont, aplikacji użytkowych lub zmienia zasady współpracy z systemem. Dotyczy to konfiguracji sprzętowej, systemowej lub aplikacyjnej serwerów KDM. Informacje o&amp;amp;nbsp;tego typu wydarzeniach będą także rozsyłane do użytkowników za pomocą [[Lista dyskusyjna|listy dyskusyjnej]].&lt;br /&gt;
&lt;br /&gt;
==== Szczegółowy spis treści ====&lt;br /&gt;
# [[Jak zostać użytkownikiem KDM]]?&lt;br /&gt;
## [[Regulamin użytkownika KDM]]&lt;br /&gt;
## [[Rozliczanie grantów]]&lt;br /&gt;
# [[Dostęp do KDM]]&lt;br /&gt;
## [[Nazwy serwerów]]&lt;br /&gt;
## [[Logowanie]] &lt;br /&gt;
## [[Kopiowanie danych]]&lt;br /&gt;
## [[Korzystanie z VPN]]&lt;br /&gt;
## [[Przekierowanie wyświetlania]]&lt;br /&gt;
## [[Przekierowanie portów]]&lt;br /&gt;
## [[Dostępna przestrzeń dyskowa]]&lt;br /&gt;
## [[Archiwizacja danych]]&lt;br /&gt;
## [[.snapshot | Odzyskiwanie danych]]&lt;br /&gt;
## [[Pomoc|Znajdowanie pomocy]]&lt;br /&gt;
# [[Bezpieczeństwo]]&lt;br /&gt;
##[[Bezpieczeństwo#Hasła|Hasła]]&lt;br /&gt;
##[[Bezpieczeństwo#Uprawnienia do katalogów i plików użytkownika|Uprawnienia]]&lt;br /&gt;
# [[Maszyny obliczeniowe]]&lt;br /&gt;
## [[Bem|Klaster Bem]]&lt;br /&gt;
## [[Klaster kampusowy]]&lt;br /&gt;
## [[Serwery wycofane z eksploatacji]]&lt;br /&gt;
## [[Galeria zdjęć KDM]]&lt;br /&gt;
# [[Oprogramowanie KDM]]&lt;br /&gt;
## [[Oprogramowanie naukowe]]&lt;br /&gt;
## [[Oprogramowanie systemowe i narzędziowe]]&lt;br /&gt;
## [[Programy użytkowników]]&lt;br /&gt;
## [[Serwer FTP]]&lt;br /&gt;
# [[System kolejkowy]]&lt;br /&gt;
## [[PBSPro]]&lt;br /&gt;
## [[Jak korzystać z kolejek PBS]]?&lt;br /&gt;
## [[Monitorowanie wydajności wykorzystania zasobów przez zadania]]&lt;br /&gt;
##[[Narzędzia monitorujące wykorzystanie zasobów na klastrze Bem]]&lt;br /&gt;
# [[Korzystanie z modułów]]&lt;br /&gt;
# [[Kompilacja aplikacji na klastrze]]&lt;br /&gt;
## [[Kompilacja aplikacji równoległych]]&lt;br /&gt;
## [[Linkowanie z bibliotekami numerycznymi]]&lt;br /&gt;
[[Kategoria:Podręcznik użytkownika| ]]&lt;/div&gt;</summary>
		<author><name>Magda</name></author>
	</entry>
</feed>