Narzędzia użytkownika

Narzędzia witryny


odra

To jest stara wersja strony!


Dostępne zasoby i oprogramowanie

IBE dysponuje serwerem dedykowanym do obliczeń.

Zasoby

  • 16 rdzeni po 2.7 GHz
  • 64 GB RAM-u
  • wirtualizowane Windows 7, którym można w miarę potrzeby użyczyć powyższych zasobów

Dostępne oprogramowanie

  • R 3.0
  • Stata 12 - niestety tylko 1-rdzeniowa;
  • Mplus 7 - w porozumieniu z Tomkiem Żółtakiem (bo to jego prywatny)
  • Jags 3.4.0
  • Pod wirtualizowanym Windows 7:
    • R 3.0
    • Stata 12 - niestety tylko 1-rdzeniową
    • co tak kto jeszcze wgrał

Dostęp

Serwer działa pod linuksem i nie udostępnia żadnego graficznego interfejsu użytkownika .

Dostęp jest możliwy poprzez:

Aby korzystać z serwera niezbędne jest założenie konta - w tym celu skontaktuj się z Mateuszem Żółtakiem (m.zoltak@ibe.edu.pl)

Jak połączyć się przez SSH?

Pod Windowsami

  • Ściągnij klienta SSH, np. program putty
  • Zdefiniuj połączenie (tylko przy pierwszym uruchomieniu):
    • Host name „ibe.edu.pl”,
    • Port „7122”,
    • Connection type „SSH”
    • Na liście po lewej wybierz Windows→Translation, a następnie z listy rozwijalnej Remote character set „UTF-8”
    • Wróć do pierwszego ekranu (Session na liście po lewej)
    • W pole „Saved sessions” wpisz nazwę, pod jaką chcesz zapisać to połączenie (np. odra), a następnie zapisz ustawienia przyciskiem „Save”.
  • Połącz się z serwerem klikając dwukrotnie w zapisane połączenie na liście „Saved sessions”
  • Wpisz swój login
  • Wpisz hasło

Pod linuksem

  • Z konsoli wydaj komendę
    ssh -p 7122 TwójLogin@ibe.edu.pl
  • Wpisz hasło

Jak na konsoli kopiować i wklejać?

Pod linuksem

Stosownie do konfiguracji terminala, z którego korzystasz (np. w gnome-terminalu domyślnie CTRL+SHIFT+C i CTRL+SHIFT+V).

Pod Windowsami (w putty-m)

  • Kopiowanie:
    • Zaznaczamy myszką i już, tekst automatycznie i magicznie jest już w schowku
  • Wklejanie:
    • Klikamy prawym przyciskiem myszy - tekst zostanie wklejony w miejscu, gdzie aktualnie jest kursor.

Klątwa znaków końca linii (tylko użytkownicy Windowsów i Maców)

Pod Windowsami, Unixami (czyli także Linuksem) i na Macach inaczej oznaczany jest znak końca linii w plikach tekstowych:

  • pod Windowsami jest to kombinacja znaków powrotu karetki (\r) i nowej linii (\n);
  • pod Unixami jest to znak nowej linii (\n);
  • na Macach jest to znak powrotu karetki (\r).

[To taka zaszłość historyczna - jeśli pamiętacie maszynę do pisania, to tam aby zacząć pisać w nowej linii trzeba było powrócić głowicą do początku linii (powrót karetki) i przewinąć papier do następnej linii (nowa linia) i zestaw znaków, który pierwotnie opracowano dla dalekopisów (ASCII) zawierał obydwa te „znaki”. Potem tenże zestaw znaków został przejęty w komputerach, tyle że niestety w niejednolity sposób.]

Powoduje to, że kopiując spod Windowsów do konsoli putty-ego całą linię wstawiamy tam jeden znak więcej niż potrzeba.

  • Nie musi to niczemu szkodzić - znak powrotu karetki będzie przez większość programów pomijany jako znak niedrukowalny.
  • Ale może, jeśli dany program nie będzie wystarczająco inteligentny, aby je pominąć. W szczególności jak dotąd zdiagnozowano, że (\r oznacza poniżej znak powrotu karetki):
    • Mplus, gdy wydać mu komendę
      mplus plikWe.in plikWy.out\r

      utworzy plik wyjściowy, którego nazwa będzie zawierać znak powrotu karetki. Plik taki będzie potem trudny do manipulowania z poziomu konsoli i niemożliwy do pobrania przez SFTP.

Jak sobie radzić?

Sposobów jest kilka:

  • podczas przesyłania plików przez SFTP konwersja powinna zachodzić automatycznie;
  • każdy szanujący się edytor tekstu (Notatnik do nich nie należy) umożliwia konwersję pomiędzy windowsowym i unixowym sposobem zapisu znaków końca linii i można z tej funkcji skorzystać;
  • wklejając polecenia na konsolę starajmy się nie wklejać znaków końca linii.

Jak wykonywać na konsoli podstawowe operacje na plikach i katalogach?

Czysta konsola

Jeśli ktoś pamięta jeszcze DOS-a, to wie, o co chodzi :) :

  • ls, ls -l, ls NazwaKatalogu - listuje pliki i katalogi (w obecnym lub wskazanym katalogu);
  • cd NazwaKatalogu - zmienia katalog roboczy (.. oznacza „katalog wyżej”)
  • rm NazwaPliku - usuwa plik
  • rm -fR NazwaKatalogu - usuwa katalog
  • mkdir NazwaKatalogu - tworzy katalog
  • cp NazwaPliku NazwaCelu - kopiuje pliki
  • cp -R NazwaPliku NazwaCelu - kopiuje katalog z całą zawartością
  • mv NazwaPliku NazwaCelu - przenosi pliki/katalogi lub zmienia nazwę pliku

Więcej o działaniu każdej z tych komend można się dowiedzieć wpisując

man KOMENDA

Z przeglądarki pomocy wychodzimy naciskając q.

Midnight Commander

Jeśli ktoś pamięta jeszcze DOS-a, to na pewno pamięta Norton Commandera lub Midnight Commandera.
Jeśli nie, to może przynajmniej widział Total Commandera :)

Generalnie jest to pseudograficzny (bo w istocie tekstowy) menadżer plików, który dla wielu jest dużo łatwiejszy w obsłudze niż zwykła konsola.

Uruchamia się go komendą

mc

Autouzupełnianie na konsoli

Konsola dysponuje automatycznym uzupełnianiem

  • Jeśli piszemy nazwę komendy i naciśniemy TAB, to
    • albo komenda zostanie automatycznie uzupełniona (jeśli fragment nazwy komendy, który już wpisaliśmy pozwala jednoznacznie zidentyfikować komendę);
    • albo zostanie wyświetlona lista komend pasujących do nazwy, którą wpisaliśmy.
  • Jeśli wpisujemy nazwę pliku lub katalogu i naciśniemy TAB, to
    • albo zostanie ona automatycznie uzupełniona (jeśli fragment, który już wpisaliśmy pozwala jednoznacznie określić plik/katalog);
    • albo wyświetlona zostanie lista pasujących plików/katalogów.

Jak uruchamiać programy?

Co do zasady wystarczy wpisać nazwę programu, np.

Stata
jags
mplus

Jak zakończyć działanie programu

Czasem zdarzy się, że uruchomiliśmy jakieś obliczenia, których wyliczenie się zajmie tydzień, a po chwili dochodzimy do wniosku, że coś tam jednak jest nie tak i chcielibyśmy przed czasem skończyć działanie programu. Czasem też program może się zawiesić i po prostu chcielibyśmy go ubić. Można to zrobić na dwa sposoby:

  • Będąc w tej samej konsoli (lub sesji programu screen, jeśli uruchomiliśmy program w sesji screen) co działający program użyć kombinacji klawiszy
    CTRL+C

    .

  • Będąc w wolnej konsoli wydać komendę
    kill PID

    , a jeśli to nie pomoże, to

    kill -9 PID

    Jak uzyskać PID programu dowiesz się z pytania Jak obserwować zużycie zasobów?

Jak obserwować zużycie zasobów?

Odra dysponuje sporymi zasobami (16 rdzeni, 64 GB RAM-u), ale one też się kończą. Jeśli akurat pechowo trafimy na moment, w którym Tomek albo Bartek skalują egzaminy, to może się okazać, że brakuje wolnego RAM-u. Jeśli akurat Karolina i Paulina odpalą równolegle 14 modeli motywacji, to może się okazać, że brakuje wolnego procesora. Itd.

W związku z tym zanim odpalimy jakieś czasochłonne/pamięciochłonne obliczenia, należy upewnić się, że na serwerze są dostępne stosowne zasoby.

Podobnie jeśli nie wiemy, ile zasobów zużyją nasze obliczenia, powinniśmy to obserwować i odpowiednio reagować, gdyby okazało się, że zaczynają zakłócać prace uruchomione już wcześniej przez innych.

Do monitorowania zasobów służą dwa narzędzia opisane poniżej

top

Program top wyświetla odświeżaną na bieżąco listę działających programów. W kolejnych kolumnach wyświetla on informacje o:

  • PID - identyfikatorze działającego programu w systemie);
  • USER - użytkowniku, który uruchomił program;
  • PR i NI- priorytecie programu (kombinacja wartości 20 i 0 oznacza normalny priorytet);
  • VIRT, RES, SHR - różnych rodzajach pamięci zużywanej przez program;
  • S - statusie programu (R - pracuje, S - śpi);
  • %CPU i %MEM - ilości zużywanego procesora i pamięci (100% procesora to jeden rdzeń, więc mogą tu występować wartości powyżej 100);
  • TIME+ - czasie działania programu (liczonym w czasie procesora, a więc gdy program nie wykorzystuje procesora, wtedy ten czas nie wzrasta);
  • COMMAND - nazwie programu.

Z przydatnych komend sterujących jego działaniem:

  • h - wyświetla pomoc;
  • 1 - przełącza prezentację zajętości procesora ze zagregowanej na w podziale na rdzenie;
  • u - pozwala odfiltrować programy wskazanego użytkownika;
  • L - pozwala odfiltrować programy, których nazwa pasuje do wzorca;
  • > i < - zmienia kolumnę sortowania;
  • x - podświetla aktualnie sortowaną kolumnę.

ps

Program ps działa podobnie do top, ale wyświetla tylko stan na tu i teraz i kończy działanie. Wywołuje się go komendą

ps -au

. Lista kolumn jest bardzo podobna do top:

  • USER - użytkownik,który uruchomił program;
  • PID - identyfikator działającego programu w systemie;
  • %CPU, %MEM - procesor i pamięć zużywane przez program w procentach;
  • VSZ, RSS - ilość różnych rodzajów pamięci zużywanych przez program;
  • TTY - identyfikator konsoli, na której program został uruchomiony;
  • STAT - status programu;
  • START - data uruchomienia programu;
  • TIME - czas procesora zużyty na działanie programu;
  • COMMAND - pełna komenda, którą uruchomiono program

Aby odfiltrować to, co zwraca ps wygodnie użyć jest komendy grep, np.

ps -au | grep mplus

odfiltruje tylko te linijki, które zawierają frazę mplus (chcę obejrzeć tylko to, kto obecnie używa mplusa), a

ps -au | grep zozlak

tylko te, które zawierają frazę zozlak (czyli chcę obejrzeć tylko programy uruchomione przeze mnie).

Jak przesłać pliki przez SFTP?

Aby przesłać pliki przez SFTP należy skorzystać z programu obsługującego ten protokół, np. WinSCP lub FileZilla.

Dane połączenia (serwer, port, login, hasło) są takie same, jak przy połączeniu SSH.

Programy te działają, jak każdy program do przesyłania plików - po jednej stronie mamy pliki na naszym komputerze, po drugiej na serwerze, przeciągają pliki i katalogi pomiędzy lewą i prawą stroną przesyłamy je na serwer lub z serwera.

Jak uruchomić obliczenia, by nie zostały przerwane w momencie zakończenia sesji SSH?

Wraz z zamknięciem połączenia SSH zamykane są wszystkie programy, które zostały w nim uruchomione. Aby się tak nie działo, należy odłączyć uruchamiany program od połączenia SSH. Służy do tego program screen.

Uruchamianie programu screen

  • Aby otworzyć sesję programu screen wpisz po prostu komendę
    screen
  • Wyświetlony zostanie ekran z informacjami o programie, który można zamknąć naciskając spację lub enter.
  • W tym momencie wyświetlana jest zwyczajna konsola umożliwiająca wydawanie komend i uruchamianie programów, z tą różnicą, że nawet po zamknięciu połączenia SSH uruchomione programy będą dalej działać.

Opuszczanie programu screen

  • Sesję programu screen można w każdej chwili opuścić wracając do „pierwotnej” konsoli, z którą połączyliśmy się przez SSH (oczywiście wszystkie uruchomione w sesji screen programy będą nadal działać).
    • Aby to zrobić, naciśnij kominację klawiszy CTRL+A, a następnie klawisz D.
  • Aby na dobre zakończyć sesję programu screen wydaj będąc w tej sesji komendę
    exit

Wracanie do sesji programu screen

  • Do opuszczonej sesji programu screen można w każdej chwili wrócić wydając komendę
    screen -r
  • Jeśli uruchomiłeś kilka sesji programu screen i nie będzie jednoznaczne, do której z nich chcesz wrócić, wyświetlona zostanie lista dostępnych sesji, identyfikowanych numerami, podobna do tej
    There are several suitable screens on:
    	13080.pts-1.localhost	(09.06.2013 16:32:24)	(Detached)
    	13035.pts-1.localhost	(09.06.2013 16:32:21)	(Detached)
    	12897.pts-1.localhost	(09.06.2013 16:31:42)	(Detached)
    Type "screen [-d] -r [pid.]tty.host" to resume one of them.

    . Aby wrócić do wybranej sesji należy wydać komendę

    screen -r NumerSesji

    np., odnosząc się do powyższego przykładu

    screen -r 13080
  • Jeśli sesja programu screen została zerwana w tragicznych okolicznościach (np. poprzez zerwanie połączenia z internetem), a nie poprzez kulturalne odłączenie się od niej sekwencją CTRL+A, D, wtedy aby powrócić do zerwanej sesji niezbędne będzie najpierw jej odłączenie od poprzedniego, utraconego połączenia, do czego służy komenda
    screen -D
    • Analogicznie jak w wypadku komendy screen -r, jeśli uruchomionych jest wiele sesji screen, trzeba będzie wskazać numer tej właściwej (patrz poprzedni punkt).
    • Po poprawnym odłączeniu utraconej sesji można do niej wrócić komendą screen -r - patrz punkt wyżej.

Jak edytować pliki z poziomu konsoli

Porzućcie wszelką nadzieję Ci, którzy chcielibyście edytować pliki inne niż tekstowe.
Pliki tekstowe to:

  • w dobrym przybliżeniu te, które otwiera Notatnik;
  • w szczególności plikami tekstowymi są:
    • wszystkie kody Mplusa, Staty, R, itp.;
    • pliki csv;
  • w szczególności pliki tekstowymi nie są:
    • pliki doc, docx, xls, xlsx, ppt, pptx, itp.;
    • pliki dta, sav, itp.

Na konsoli dostępnych jest wiele edytorów tekstu - poniżej wspominam te najważniejsze.

less

Less służy tylko do przeglądania plików, nie umożliwia ich edycji. Uruchamia się go trywialnie

less NAZWA_PLIKU

W tak otwartym pliku można:

  • przemieszczać się strzałkami;
  • wrócić do konsoli wciskając q;
  • przejść do konkretnej linii - wpisując :NUMER_LINII i naciskając ENTER;
  • wyszukać frazę - wpisując /fraza i naciskając ENTER
    • to samo wyszukiwanie można powtórzyć wpisując / i zatwierzając ENTER-em.

nano

Nano przypadnie do gustu wszystkim początkującym - pisze się tu całkowicie normalnie, a na dole ekranu znajduje się ściągawka dostępnych komend, gdzie składnia ^ZNAK oznacza po prostu CTRL+ZNAK. Nic dodać, nic ująć.

vi

Najbardziej hackerski edytor tekstu - tylko na własną odpowiedzialność. Z najważniejszych rzeczy na starcie:

  • vi pracuje w jednym z dwóch trybów:
    • wprowadzania - w tym trybie można pisać;
    • poleceń - w tym trybie działa wyszukiwanie, kopiowanie i wklejanie, zapis, itp.
  • do trybu wprowadzania przechodzi się naciskając i lub a;
  • do trybu poleceń przechodzi się naciskając ESC
  • w trybie poleceń dostępne są komendy:
    • :syntax on - włącza kolorowanie składni;
    • :NR_LINII - przechodzi do wskazanej linii;
    • /fraza - wyszukuje podaną frazę;
    • / - wyszukuje ostatnio wyszukiwaną frazę;
    • dd - wycina do schowka aktualną linię (służy też do usuwania linii);
    • yy - kopuje do schowka aktualną linię;
    • dNd, yNy, gdzie N to liczba wierszy - wycina/kopiuje wskazaną liczbę wierszy;
    • p - wkleja zawartość schowka poniżej aktualnej linii;
    • s/CO/NA CO/ - zamiena pierwsze CO na NA CO w bieżącej linii;
    • s/CO/NA CO/g - zamienia wszystkie CO na NA CO w bieżącej linii;
    • %s/CO/NA CO/g - zamienia CO na NA CO w całym pliku;
    • w - zapisuje plik;
    • q! - zamyka vi.

Więcej na temat korzystania z vi w internecie.

emacs

Kultowy edytor napisany przez samego Richarda Stallmana. Nie korzystam, więc mogę tylko odesłać do internetu.

Wysyłanie maila powiadamiającego o końcu obliczeń

Aby przesłać sobie powiadomienie o zakończeniu obliczeń mailem należy wywołać na konsoli program mail, korzystające ze stosownego polecenia w używanym programie statystycznym, np.

  • w R
    system("echo 'tresc maila' | mail -s 'temat wiadomosci' adres@email")
  • w Stacie
    ! echo 'tresc maila' | mail -s 'temat wiadomosci' adres@email
  • w Mplus-ie - wywołać Mplus-a komendą
    mplus plikWsadowy; echo 'tresc maila' | mail -s 'temat wiadomosci' adres@email

Uwagi do oprogramowania

Mplus

  1. Aby skorzystać z wielordzeniowości w Mplusie pod linuksem, należy dopisać do sekcji ANALYSIS pliku .inp polecenie
    PROCESSORS IS liczbaRdzeni;
  2. Testy wykazały, że zwiększanie liczby rdzeni ponad 5 nie daje już prawie żadnego skrócenia czasu wykonywania obliczeń i optymalna liczba rdzeni to od 3 do 5 (co pozwala skrócić czas obliczeń, podczas których Mplus wykorzystuje wielordzeniowość do, odpowiednio ok. 55%, 44%, 38% czasu ich wykonywania na jednym rdzeniu)

JAGS

Dlaczego nie BUGS?

BUGS jest trefny!!!
Tak się stało, że BUGS został napisany w martwym języku programowania. Martwym, tzn. takim, że:

  • nie ma programistów, którzy umieją w nim programować;
  • nie ma środowisk programistycznych (w szczególności nie ma żadnego debugera) wspierających pisanie w tym jęzuku;
  • prawie nie ma kompilatorów tego języka, a te, które są, trudno traktować poważnie.

Powoduje to, że:

  • BUGS-a obecnie nikt nie rozwija i nie poprawia błędów, które zostały w nim znalezione;
  • BUGS (jak sama nazwa wskazuje) zawiera błędy;
  • BUGS ma skopaną arytmetykę zmiennoprzecinkową:
    • Filip dysponuje prostym, a działającym na wyobraźnię przykładem, gdzie BUGS nie umie posumować do 1 prostego ciągu liczb, które do 1 się sumują;
    • o fuszerkę podejrzewałbym raczej kompilator niż twórców BUGS-a;
    • ale niezależnie, kto zawinił, liczyć się na tym nie da.

JAGS

JAGS to generalnie BUGS przepisany do współczesnego języka programowania (C++) dla którego istnieją:

  • programiści;
  • środowiska programistyczne, debugery, freymworki, itp.;
  • sprawdzone kompilatory.

JAGS posługuje się tym samym językiem, co BUGS (skrypty Filipa napisane pod BUGS-a działały pod JAGS-em bez żadnych zmian).

Istnieją pakiety umożliwiające wywoływanie JAGS-a z poziomu R (gdzie łatwiej sobie przygotować dane i potem obrobić wyniki).

Dostęp do wirtualizowanych Windows 7

Do wirtualki z Windows 7 można się dostać na dwa sposoby:

  1. przez RDP (a więc w szczególności pulpit zdalny Windows)
    • pod adresem 10.0.1.71
    • tylko z sieci lokalnej IBE (trzeba być w IBE lub połączyć się z siecią lokalną IBE przez VPN)
  2. przez VNC
    tunelując przez SSH (patrz opis dostępu przez SSH w poprzednim rozdziale) port 5900 serwera obliczeniowego na komputer lokalny, a następnie łącząc się przez VNC z adresem 127.0.0.1:5901
    • pod linuksem: <code>ssh -L 5901:127.0.0.1:5900 -p 7122 TwójLogin@ibe.edu.pl</code>
    • w Putty-m
      • w drzewku po lewej stronie odszukać Connection→SSH→Tunnels
      • wpisać w pole „source port” wartość „5901”, w pole „destination” wartość „127.0.0.1:5900” i zdefiniować tunel przyciskiem „add”
      • pozostałe ustawienia, jak w wypadku zwykłego połączenia opisanego w poprzednim rozdziale

Klienta VNC i/lub RDP można bez problemu znaleźć za pomocą googla (w szczególności zaś pulpit zdalny Windows jest klientem RDP).

odra.1387011518.txt.gz · ostatnio zmienione: 2013/12/14 09:58 przez zozlak