Vartotojo vadovas

Klasterio architektūros ir konfigūracjos apžvalga

Kompiuterių klasterį VILKAS sudaro 1+14 mazgų su Intel® Core™2 Quad Q6600 @ 2.4 GHz procesoriais (4 branduolių) ir 9 mazgai su Intel® Core™ i7-860 @ 2.80 GHz procesoriais (4 branduolių), sujungtų į Gigabit Ethernet lokalųjį tinklą. Visi mazgai yra x86_64 architektūros. Klasteris suinstaliuotas naudojant “Rocks Cluster Distribution” v 5.3 programų paketą. Vienas iš mazgų yra išskirtas kaip “front end” mazgas ir skirtas vartotojų prisijungimui, darbų paruošimui ir paleidimui. Likusieji mazgai dedikuoti lygiagretiems ir nuosekliems darbams, paleidžiant juos per “Portable Batch System” (Torque/PBS) užduočių administravimo sistemą. Bet koks interaktyvus darbinių mazgų panaudojimas (prisijungimas, darbų paleidimas) išskyrus žemiau numatytus atvejus – griežtai draudžiamas.

Prisijungimas prie klasterio

Jungtis prie klasterio reikia per “fron tend” mazgą, kurio vardas vilkas.vgtu.lt. Prisijungti leidžiama tik su Secure Shell (ssh) aplinka:

$ ssh vilkas.vgtu.lt

Vienas iš populiariausių nemokamų ssh klientų, dirbančių ir Microsoft Windows operacinėje sistemoje – tai PuTTY.

Failų kopijavimui į klasterį ir tarp mazgų naudokite saugią kopijavimo programą: scp. (žr. komandą man scp). Jei norite į klasterį persiųsti failus iš savo personalinio kompiuterio, kuriame suinstaliuota Microsoft Windows operacinė sistema, siūlome naudotis nemokama scp klientine programa WinSCP.

Klasterio darbiniams mazgams su Intel® Core™2 Quad procesoriais suteikti vardai: quad-0-0,…,quad-0-13. Mazgams su Intel® Core™ i7-860 procesoriais suteikti vardai: i7-1-0,…,i7-1-8. Prie darbinių (compute) mazgų galima prisijungti tik iš “front end” mazgo, naudojant ssh, tačiau tai leidžiama daryti tik failų tvarkymui lokaliose /scratch failinėse sistemose. Šiam darbui visgi patartina naudoti klasterinę komandą tentakel (žr. žemiau).

Savo slaptažodį klasteryje galite pakeisti “front end” mazge naudodami komandą passwd. Pakeitimas įsigalios visame klasteryje valandos bėgyje.

Jūsų vartotojui skirtų sistemos sugeneruotų e-laiškų peradresavimui, sukurkite savo naminiame kataloge .forward failą, kuriame įrašykite savo e-pašto adresą.

Vartotojų failinės erdvės ir kvotos

Klasteryje vartotojams yra skirtos dviejų tipų failinės erdvės:

Vartotojų namų katalogai – /home/vartotojo_vardas

Tai yra jūsų namų katalogas klasteryje, matomas ir pasiekiamas iš visų klasterio mazgų, naudojant NFS. Klasteryje vartotojų naminiams katalogams yra įvestos kvotos. Kiekvienas vartotojas pagal nutylėjimą gauna 5 GB kvotą. Savo kvotą ir jos panaudojimą galima pasitikrinti su komanda quota. Jei Jums reikia daugiau diskinės erdvės, kreipkitės į klasterio administratorius.

Lokalios “scratch” failinės sistemos – /scratch

Kiekviename iš darbinių (compute) mazgų yra sukurtos lokalios “scratch” failinės sistemos – /scratch. Darbiniuose quad mazguose jos yra 253 GB, i7 mazguose – 450 GB. Vartotojai gali laisvai kurti savo katalogus ir failus “scratch” sistemose, jokių kvotų jose nėra.

Programinės įrangos aplinkos moduliai (Environment modules)

Klasteryje VILKAS suinstaliuotas aplinkos modulių valdymo įrankis, kuris suteikia naudingą, lankstų ir “švarų” dinaminį aplinkos valdymo mechanizmą. Šio įrankio pagalba galime patogiai valdyti skirtingas programų versijas. Aplinkos moduliai naudoja taip vadinamus modulių failus, kuriuose yra saugoma informacija reikalinga nustatyti tam tikrai aplikacijai reikalingus aplinkos kintamuosius. module komanda interpretuoja modulių failus. Aplinkos modulių pagalba galime nustatyti tokių aplinkos kitamųjų kaip PATH, LD_LIBRARY_PATH, MANPATH ir t.t. kelius.

$ module -help
Usage: module [ switches ] [ subcommand ] [subcommand-args ]
Switches:
-H|–help this usage info
-V|–version modules version and configuration options
-f|–force force active dependency resolution
-t|–terse terse format avail and list format
-l|–long long format avail and list format
-h|–human readable format avail and list format
-v|–verbose enable verbose messages
-s|–silent disable verbose messages
-c|–create create caches for avail and apropos
-i|–icase case insensitive
-u|–userlvl set user level to (nov[ice],exp[ert],adv[anced])
Available SubCommands and Args:
+ add|load modulefile [modulefile …]
+ rm|unload modulefile [modulefile …]
+ switch|swap [modulefile1] modulefile2
+ display|show modulefile [modulefile …]
+ avail [modulefile [modulefile …]]
+ use [-a|–append] dir [dir …]
+ unuse dir [dir …]
+ update
+ refresh
+ purge
+ list
+ clear
+ help [modulefile [modulefile …]]
+ whatis [modulefile [modulefile …]]
+ apropos|keyword string
+ initadd modulefile [modulefile …]
+ initprepend modulefile [modulefile …]
+ initrm modulefile [modulefile …]
+ initswitch modulefile1 modulefile2
+ initlist
+ initclear

  • Visų suinstaliuotų modulių sąrašas:
    $ module avail
  • Dabar (einamojoje sesijoje) užkrautų modulių sąrašas:
    $ module list
  • Modulio aprašymas:
    $ module show modulefile
  • Modulio užkrovimas einamajai sesijai:
    $ module load modulefile
  • Modulio pašalinimas (iš einamosios sesijos):
    $ module unload modulefile
  • Modulio pridėjimas jeigu norite, kad jis būtų automatiškai užkrautas kiekvieną kartą jums prisijungus
    $ module initadd modulefile

Pavyzdžiai. Norėdami pažiūrėti kokie moduliai yra suinstaliuoti šiuo metu klasteryje VILKAS surinkite

$ module avail
———————— /share/apps/modules/modulefiles ————————
compilers/cmake/2.8.0          devel/intel/mkl/10.0.3.020
compilers/g95/0.92                 ide/eclipse/3.5.1
compilers/gcc/4.4.2                 ide/netbeans/6.8
compilers/intel/10.1.015       null
devel/hdf5/g95+gcc/1.8.4    parallel/openmpi/g95+gcc/1.4
devel/hdf5/gcc/1.8.4               parallel/openmpi/gcc/1.4
devel/hdf5/intel/1.8.4             parallel/openmpi/intel/1.4
devel/intel/ictce/3.1.1

Trumpas paaiškinimas:
parallel/openmpi/gcc/1.4 – OpenMPI (v.1.4) instaliacija su GNU gcc kompiliatoriais.

Modulių užkrovimas einamąjai sesijai:
$ module load compilers/gcc/4.4.2 parallel/openmpi/gcc/1.4

Moduliai bus automatškai užkrauti kiekvieną kartą vartotojui prisijungus:
$ module initadd compilers/gcc/4.4.2 parallel/openmpi/gcc/1.4

Darbų paleidimas ir valdymas klasteryje

DĖMESIO!
Interaktyvus darbų paleidimas klasteryje uždraustas!

Visi darbai klasteryje turi būti paleidžiami per PBS užduočių administratorių. Vienintelę išimtį sudaro programinio kodo derinimas (debugging), kai yra leista interaktyviai leisti kelių minučių darbus, bet tik ant “front end” mazgo!

Darbas paleidžiamas skaičiavimams, pastačius jį į darbų eilę. Tam reikia sudaryti PBS script failą su darbo aprašymu t.y. ką, kaip ir kur norime skaičiuoti (žemiau pateikti PBS script failų pavyzdžiai) ir surinkti komandą:

$ qsub pbs_script
kur pbs_script- tai jūsų PBS script failo pavadinimas.

Pastačius darbą į eilę, jo būseną galima pasižiūrėti surinkus komandas:

$ showq arba $ qstat ( $ qstat -a )

Klasterio darbų eilę galima stebėti ir klasterio apkrovimo web puslapyje. Eilėje darbai būna tol, kol jie nėra galutinai įvykdomi. Todėl pagal darbų būseną eilėje galima sužinoti ar darbas jau vykdomas t.y. atliekami skaičiavimai, ar vis dar laukia eilėje.

Detalesnė informacija apie jūsų darbo būsena gaunama surinkus komandą:

$ qstat -f job_id

kur job_id - jūsų darbo identifikacinis numeris, suteiktas PBS programos.

Norint iš eilės panaikinti darbą, naudokite komandą:

$ qdel job_id

Atminkite, kad darbo, kuris jau yra vykdomas, panaikinimas, gali užtrukti keletą minučių.

Jei norite skaičiuoti tik ant quad mazgų, PBS skripte reikia turėti eilutę:
#PBS -Wx=NODESET:ONEOF:FEATURE:QUAD

Jei norite skaičiuoti tik ant i7 mazgų, PBS skripte reikia turėti eilutę:
#PBS -Wx=NODESET:ONEOF:FEATURE:I7

Jei norite skaičiuoti ir su vieno ir su kito tipo mazgais, PBS skripte reikia turėti eilutę:
#PBS -Wx=NODESET:ANYOF:FEATURE:QUAD:I7

Jei norite rezervuotiu visą mazgą darbui, naudokite parametrą NACCESSPOLICY:SINGLEJOB. Pvz.,

#PBS -Wx=NODESET:ONEOF:FEATURE:QUAD;NACCESSPOLICY:SINGLEJOB

PBS script failų pavyzdžiai (nukopijuokite ir pakeiskite pagal savo darbo reikalavimus):

Trumpų darbų eilė I7 mazgams

Darbo dienomis (pirmadienis-…-penktadienis) nuo 8 iki 22 valandos nustatyta pastovi 4-ių I7 tipo mazgų rezervacija trumpiems (iki 10 minučių) darbams, t.y. nurodytu laiku rezervuotus mazgus galės paimti tik darbai, kuriems PBS skripte nurodytas atlikimo laikas neviršija 10 minučių:

#PBS -l walltime=00:10:00

Darbams, kuriems yra užduotas didesnis laikas (jei išvis neužduotas, automatiškai priskiriama 100 parų), nurodytu laiku 4-i iš tuo metu laisvų I7 mazgų nebus prieinami, t.y. jei toks darbas prašys daugiau nei „šiuo_metu_laisvų_skaičius“ – 4, tai jis atsistos į laukimo eilę ir lauks, kol atsilaisvins daugiau mazgų, nakties (jei prašomas laikas neviršija 10 valandų) arba savaitgalio (t.y. kai nebus rezervacijos).