Upload
hoangliem
View
238
Download
5
Embed Size (px)
Citation preview
Korištenje računalnog klastera Isabella
Emir Imamagić
Sveučilišni Računski Centar (Srce)
Sadržaj
Korištenje računalnog klastera Isabella
Ciljevi
• Ciljevi• upoznavanje s klasterskom okolinom
• upoznavanje sa sustavom za upravljanje poslovima
• upravljanje izvođenjem poslova
• specifičnosti računalnog klastera Isabella
• Što nije pokriveno• instalacija i održavanje klastera
• paralelni programski modeli i tehnologije
• prevođenje, prilagodba i uspostava aplikacija na klasterima
Korištenje računalnog klastera Isabella
Sadržaj
• Uvod• Paralelno računarstvo
• Računalni klasteri
• Sustavi za upravljanje poslovima
• Računalni klaster Isabella
Korištenje računalnog klastera Isabella
Sadržaj
• Podnošenje poslova• Opisivanje poslova
• Tipovi poslova• Serijski
• Interaktivni
• Paralelni
• Polja poslova
• Varijable okoline
• Napredno opisivanje poslova
Korištenje računalnog klastera Isabella
Sadržaj
• Upravljanje poslovima• Zaustavljanje poslova
• Privremeno zaustavljanje poslova
• Ponovno izvođenje poslova
• Izmjena parametara posla
• Informacije o poslovima
• Raspodijeljeni datotečni sustav BeeGFS
• Sustav za nadzor• Ganglia
• ScaleMP
Korištenje računalnog klastera Isabella
Uvod
Korištenje računalnog klastera Isabella
Paralelno računarstvo
• Dijeljenje problema u manje zadatke koji se mogu izvoditi paralelno
• Razlozi• fizičke granice sklopovlja (brzina svjetlosti, elektrona, …)
• ekonomski razlozi (viša složenost – viša cijena)
• granice učinkovitosti (dvostruka brzina ne znači dvostruku učinkovitost)
• veličina aplikacije (prevelika količina memorije i vremena za izvođenje)
Korištenje računalnog klastera Isabella
Paralelno računarstvo
• Prednosti• veća brzina izvođenja aplikacije
• bolje iskorištenje dostupnih resursa
• Mane• složenost razvoja aplikacija
• Tri velike prepreke• sklopovlje
• programska potpora
• algoritmi
Korištenje računalnog klastera Isabella
Paralelno računarstvo
• Područja primjene• astronomija
• meteorologija i modeliranje klime
• životne znanosti
• znanosti o Zemlji
• inženjerski problemi
• geologija
• vojne primjene
• ekonomsko modeliranje
Korištenje računalnog klastera Isabella
Paralelno sklopovlje
• Superračunala• najmoćnija dostupna računala
• za zahtjevne računalne probleme
• Vektorska superračunala• Cray SV, NEC SX
• Cray-1: 1976, 160.00 MFLOPS8.8 M$
• Velika paralelna računala• MPP (engl. massively parallel
processors)
• Connection Systems CM1 i CM2, Earth Simulator, Blue Gene
• IBM – Blue Gene/L: 2005, 360.00 (70.72) TFLOPS, ~100 M$
Korištenje računalnog klastera Isabella
Računalni klasteri
• “... skup umreženih samostalnih računala koji djeluju kao jedinstven računalni resurs” R. Buyya
• Ekonomična alternativa za superračunala
• sastoji se od standardnih komponenata
• “superračunalo za siromahe”
• Ključni faktori (80-tih)• mikroprocesori
• brze mrežne tehnologije
• Parallel Virtual Machine (PVM)
Korištenje računalnog klastera Isabella
Računalni klasteri
• Beowulf klaster (1994)• T. Sterling & M. Baker
• NASA Ames Centre
• Danas• široko rasprostranjeni u paralelnom računarstvu
• 85,2% Top500 liste najmoćnijih računala
Korištenje računalnog klastera Isabella
Računalni klasteri
• Top 500• popis najmoćnijih
računala
• program za mjerenje - Linpack
• 85,2 % popisa čine grozdovi
• 1. Sunway TaihuLight, Kina, 93 Pflops(10,6M jezgri), 273 M$
Korištenje računalnog klastera Isabella
Arhitektura klastera
• Komponente klastera• računalni čvorovi
• mreža
• operacijski sustav (OS)
• klasterski posrednički sustav (engl. middleware)
Korištenje računalnog klastera Isabella
Beowulf arhitektura
• Frontend• pristupno računalo
• pristup pomoću protokola ssh
• središnji servisi klasterskih posredničkih sustava
• dijeljeni diskovni prostor (direktorij /home)
Korištenje računalnog klastera Isabella
Beowulf arhitektura
• Čvorovi• dedicirana računala za izvođenje poslova
• povezani privatnom mrežom
• lokalni diskovni prostor (/scratch)
• Privatne mreže• visoka propustnost
• malo kašnjenje
• moguće korištenje više mreža
Korištenje računalnog klastera Isabella
Komponente klastera
• Računalni čvorovi• poslužitelji, radne stanice, osobna računala
• 32-bitna i 64-bitna arhitektura procesora• Intel Xeon, Itanium, AMD Opteron, Alpha
• Mrežna tehnoloije• Gigabit Ethernet, Infiniband, Myrinet, Quadrics QsNet II
• OS• Linux, HPUX, Solaris, MS Windows
Korištenje računalnog klastera Isabella
Sustavi za upravljanje poslovima
• Upravlja izvođenjem korisničkih aplikacija na klasteru• engl. Job Management System (JMS), batch system
• Posao – izvođenje aplikacije
• Vrste poslova• batch – ne zahtijevaju korisničku interakciju (npr. dugotrajna
računanja, obrada podataka)
• interaktivni – zahtijevaju korisničku interakciju (npr. grafička sučelja, unos dodatnih podataka, potvrđivanje akcija)
• serijski – zahtijevaju samo jedan procesor za izvođenje
• paralelni – zahtijevaju više procesora za izvođenje
Korištenje računalnog klastera Isabella
Sustavi za upravljanje poslovima
• Korisničko sučelje za podnošenje i upravljanje poslovima• podnošenje, upravljanje, dohvat detaljnih informacija o izvođenju
• Omogućava definiranje politike korištenja klastera• npr. fair-share, rezervacije, prioriteti, …
• Optimizira korištenje čvorova• raspoređivanje poslova po čvorovima
• praćenje opterećenja čvorovova
Korištenje računalnog klastera Isabella
Sustavi za upravljanje poslovima
• Otvoreni problemi• spremanje stanja poslova (engl. checkpointing)
• selidba poslova između čvorova (engl. process migration)
• preemption
• rezervacija čvorova (engl. advance reservation)
• otpornost na greške u radu čvorova (engl. fault tolerance)
Korištenje računalnog klastera Isabella
Sustavi za upravljanje poslovima
Korištenje računalnog klastera Isabella
Sustavi za upravljanje poslovima
• Son of Grid Engine (SGE)• napredno raspoređivanje poslova (fair share, tickets)
• definiranje projekata i grupa korisnika
• detaljno opisivanje čvorova
• prilagodba okoline za specifične paralelne aplikacije
• Torque + Maui• napredno raspoređivanje poslova
• rezervacije resursa
• precizno definiranje resursa kod paralelnih poslova
Korištenje računalnog klastera Isabella
Dijeljeni i paralelni datotečni sustavi
• Dijeljeni datotečni sustavi• omogućavaju transparentan pristup datotekama smještenim na
udaljenom računalu
• rješenja: NFS, GFS, AFS, Coda
• Paralelni datotečni sustavi• paralelno spremanje datoteka na više podatkovnih elemenata
• učinkovito spremanje velikih datoteka
• rješenja: Lustre, GlusterFS, BeeGFS
Korištenje računalnog klastera Isabella
Vrste klastera
• Klasteri s visokom učinkovitosti • engl. High Performance Computing
• Klasteri s visokom propusnošću• engl. High Throughput
• veliki broj neovisnih zadataka
• nije bitna učinkovitost čvorova nego broj
• Klasteri s visokom dostupnošću• engl. High availability
• izbjegavanje SPOF (engl. Single Point Of Failure)
• komercijalne primjene
Korištenje računalnog klastera Isabella
Vrste klastera
• Klasteri za ravnomjerno opterećenje • engl. Load Balancing
• ostvaruju ravnomjerno opterećenje aplikacije na čvorovima
• primjer: web poslužitelj
• Hibridni klasteri• sadrže specifične uređaje
• npr. matematički uređaji, Graphics Processing Unit (GPU)
Korištenje računalnog klastera Isabella
Računalni klaster Isabella
• Računalni klaster na Srcu• dostupan cijeloj akademskoj zajednici
• Arhitektura• brza mreža Infiniband
• Son of Grid Engine
• dijeljeni datotečni sustav BeeGFS• koristi Infiniband
• visoka dostupnost frontenda i podatkovnih elementa
Korištenje računalnog klastera Isabella
Računalni klaster Isabella
• 40 računalnih čvorova
• 704 CPU procesorskih jezgri
• 5 TB radne memorije
• 110 TB trajnog podatkovnog prostora (/home)
• 90 TB privremenog dijeljenog podatkovnog prostora (/shared)
• Infiniband QDR (40 Gb/s) i FDR (56 Gb/s)
• ScaleMP vSMP• aplikacije vide jedan poslužitelj s 160 jezgri i 2 TB radne memorije
Korištenje računalnog klastera Isabella
Računalni klaster Isabella
Korištenje računalnog klastera Isabella
Računalni klaster Isabella - VELEbit
• Resurs nabavljen u suradnji s Ministarstvom zaštite okoliša i ekologije
• 64 računala čvora
• 1.792 CPU procesorskih jezgri
• 8 TB radne memorije
• 220 TB trajnog podatkovnog prostora (/velebit)
• 12 TB privremenog dijeljenog podatkovnog prostora na SSD-u (/velebit-ssd)
Korištenje računalnog klastera Isabella
Računalni klaster Isabella
• Web stranice• novosti, tehničke informacije i dokumenti
• http://isabella.srce.hr
• Web stranice za nadzor• http://tannat.srce.hr/ganglia
• http://tannat.srce.hr/velebit
• Služba pomoći• problemi s posredničkim sustavom i aplikacijama
• pomoć u pripremi korisničkih aplikacija
Korištenje računalnog klastera Isabella
Podnošenje poslova
Korištenje računalnog klastera Isabella
Podnošenje posla
• Komandno-linijski alat – qsub
• Sintaksa
• options – opcije za opisivanje poslova
• job_script – datoteka sa opcijama za opisivanje poslova
• Podnosi posao i vraća ID posla• ID posla se koristi za nadzor i upravljanje poslom
• Opcije• ekvivalentne opcijama koje se navode u datoteci za opisivanje
• opisane u nastavku …
Korištenje računalnog klastera Isabella
$ qsub [options] <job_script>
Provjera stanja poslova
• Naredba
• Prikazuje stanje svih poslova na klasteru
• Stanja poslova• qw – posao čeka u redu za izvođenje
• t – u tijeku je priprema za izvođenje posla
• r – posao u izvođenju
• Korisna opcija
• stanje poslova i čvorova
Korištenje računalnog klastera Isabella
$ qstat
$ qstat -f
Provjera stanja poslova
Korištenje računalnog klastera Isabella
$ qstat
job-ID prior name user state submit/start at queue slots
---------------------------------------------------------------------------------
2791 0.55500 blcr eimamagi r 07/04/2006 13:25:58 [email protected] 1
2792 0.60500 ParMPI eimamagi r 07/04/2006 13:31:43 [email protected] 4
2789 0.55500 Mgmt eimamagi r 07/04/2006 13:24:13 [email protected] 1
2790 0.55500 blcr eimamagi r 07/04/2006 13:25:58 [email protected] 1
Provjera stanja poslova
Korištenje računalnog klastera Isabella
$ qstat –f
queuename qtype used/tot. load_avg arch states
-------------------------------------------------------------------------
[email protected] BIPC 0/2 0.00 lx24-x86
----------------------------------------------------------------------------
[email protected] BIPC 0/2 0.00 lx24-x86
----------------------------------------------------------------------------
[email protected] BIPC 0/2 0.00 lx24-x86
----------------------------------------------------------------------------
[email protected] BIPC 0/2 0.00 lx24-x86
----------------------------------------------------------------------------
[email protected] BIPC 0/2 0.00 lx24-x86
----------------------------------------------------------------------------
[email protected] BIPC 1/2 0.26 lx24-x86
2789 0.55500 MgmtTask eimamagi r 07/04/2006 13:24:13 1
----------------------------------------------------------------------------
[email protected] BIPC 0/2 0.00 lx24-x86
----------------------------------------------------------------------------
[email protected] BIPC 0/2 -NA- lx24-x86 au
############################################################################
- PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS
############################################################################
2790 0.00000 blcr_test eimamagi qw 07/04/2006 13:25:49 1
2791 0.00000 blcr_test eimamagi qw 07/04/2006 13:25:50 1
Opisivanje poslova
• Što se treba izvesti?
• Koji su argumenti?
• Gdje treba spremiti standardni izlaz i greške?
• Gdje se nalazi standardni ulaz?
• Koji podaci su potrebni za izvođenje poslova?
Korištenje računalnog klastera Isabella
Opisivanje poslova
• Gdje spremati privremene podatke i rezultate?
• Gdje je radni direktorij na čvorovima?
• Koje okoline varijable treba postaviti?
• Koliko procesora posao zahtjeva? Koju arhitekturu procesora?
• Koliko memorije, prostora na disku, vremena je potrebno?
Korištenje računalnog klastera Isabella
Opisivanje poslova
• Jezik za opisivanje poslova• omogućava opisivanje poslova
• dio je svakog sustava za upravljanje poslovima
• primjeri: izvođenje poslova na gridu, izvođenje u okolini s web servisima, sustavi za upravljanje poslovima na klasterima, …
• Jezik sustava SGE• datoteka je standardni shell
• atributi jezika se postavljaju kao dodatni parametri
Korištenje računalnog klastera Isabella
#$ -<parameter1> <value1>
#$ -<parameter2> <value2>
<command1>
<command2>
Osnovni parametri poslova
Korištenje računalnog klastera Isabella
Izvršna datoteka
• Lokacija korisničke datoteke
• Definira se kao i u standardnoj shell skripti
• exec.sge
• Podnošenje posla
Korištenje računalnog klastera Isabella
/bin/hostname
$ qsub exec.sge
Argumenti
• Argumenti aplikacije
• Definiraju se kao i u standardnoj shell skripti
• arg1.sge
• Definiranje parametara u pozivu qsub
• arg2.sge
• Podnošenje posla
Korištenje računalnog klastera Isabella
/bin/echo “Hello World”
/bin/echo $@
$ qsub arg2.sge “Hello World”
Ime posla
• Ime posla
• koristi se u prikazu stanja posla
• definira lokaciju podrazumijevanog izlaza i greške
• name.sge
Korištenje računalnog klastera Isabella
#$ -N <JobName>
#$ -N nameTest
/bin/hostname
Radni direktorij
• Direktorij u kojem se pokreće posao• bitan ukoliko aplikacija koristi relativne putanje
• definira lokaciju podrazumijevanog izlaza i greške
• Podrazumijevani je $HOME
• Trenutni direktorij (workDir1.sge)
• posao se pokreće u direktoriju u kojem se izvodi naredba qsub
• podrazumijevani izlaz i greška idu u trenutni direktorij
Korištenje računalnog klastera Isabella
#$ -cwd
Radni direktorij
• Proizvoljan direktorij (workDir2.sge)
• mora biti navedeno prije izvršne datoteke
• bitno – ne utječe na lokacije podrazumijevanog izlaza i greške
Korištenje računalnog klastera Isabella
cd <working_directory>
Standardni izlaz i greška
• Podrazumijevana lokacija• ako ime posla nije definirano
• inače
• $WD – radni direktorij
Korištenje računalnog klastera Isabella
$WD/<job_script>.o<job_id> - izlaz
$WD/<job_script>.e<job_id> - greška
$WD/<job_name>.o<job_id> - izlaz
$WD/<job_name>.e<job_id> - greška
Standardni izlaz i greška
• Opcije (outerr1.sge)
• Bitno: izlaz i greška se dodaju na postojeći sadržaj
• Spajanje izlaza i greške (outerr2.sge)
Korištenje računalnog klastera Isabella
#$ -o <job_output>
#$ -e <job_error>
#$ -j y
Standardni izlaz i greška
• Opcije mogu pokazivati na direktorij
• Datoteke izlaza i greške bit će imenovane kao i u podrazumijevanoj lokaciji
• Preporuča se koristiti kod polja poslova
Korištenje računalnog klastera Isabella
#$ -o outputDir/
#$ -e outputDir/
Varijable okoline
• Podrazumijevano ograničen skup varijabli
• Definiranje pojedinih varijabli (env1.sge)
• Postavljanje svih trenutnih varijabli (env2.sge)
• (veliko V)
• Postavljanje u shell datotekama• ~/.bashrc, ~/.profile, ~/.cshrc
• paziti koji shell posao koristi
Korištenje računalnog klastera Isabella
#$ -v <name1>=<value1>
…
#$ -v <nameN>=<valueN>
#$ -V
Ljuska
• Podrazumijevani definiran po redu poslova• trenutno je /bin/sh
• Opcija (shell.sge)
• Primjer
Korištenje računalnog klastera Isabella
#$ -S <shell>
#$ -S /bin/sh
Vježba
• $HOME/tutorial/basic
Korištenje računalnog klastera Isabella
exec.sge – izvršna datoteka
arg1.sge – argumenti
arg2.sge – argumenti(qsub arg2.sge arg)
name.sge – ime posla
workDir1.sge – trenutni radni direktorij
workDir2.sge – proizvoljni radni direktorij
outerr1.sge – definiranje izlaza i greške
outerr2.sge – spajanje izlaza i greške
env1.sge – definiranje varijabli okoline
env2.sge – postavljanje svih varijabli
shell.sge – odabir shella
Vrste poslova
Korištenje računalnog klastera Isabella
Interaktivni poslovi
• Koristi se posebna naredba – qrsh
• Sintaksa
• opcije – opis posla (kao kod qsub)
• Podnosi interaktivni posao ili otvara shell na čvoru
• Što ako nema slobodnih čvorova?• podnošenje se prekida
• moguće kontrolirati opcijom
Korištenje računalnog klastera Isabella
$ qrsh <options> [job]
#$ -now y|n
Paralelni poslovi
• SGE sadrži Parallel Environment (PE)• skripte za izvođenje paralelnih aplikacija kroz SGE
• Opcija
• postaviti PEName u mpi
• CPUs – broj procesora potreban za izvođenje posla
• CPURange: SGE će alocirati dostupan broj procesa iz skupa vrijednosti (preferira se veći broj)
• CPUMin – CPUMax
• CPUNum1,CPUNum2,CPUMin – CPUMax,CPUNum3
Korištenje računalnog klastera Isabella
#$ -pe <PEName> <CPUs>|<CPURange>
Paralelni poslovi
• Primjeri
• posao zahtjeva 4 CPU-a i PE mpi
• posao zahtjeva 2 ili 4 CPU-a i PE mpi
Korištenje računalnog klastera Isabella
#$ -pe mpi 4
#$ -pe mpi 2,4
Paralelni poslovi
• Relevantne varijable okoline (parallelEnv.sge)
• Primjeri• parallelHosts.sge – korištenje datoteke $TMPDIR/machines za
izvođenje naredbe /bin/date na dodijeljenim čvorovima
Korištenje računalnog klastera Isabella
$TMPDIR/machines – datoteka koja sadrži popis
dodijeljnih čvorova
$NSLOTS – broj procesora
$NHOSTS – broj čvorova
Paralelni poslovi
• Dostupni PE-ovi na Isabelli:• mpi - općeniti paralelni poslovi
• mpisingle - sve jezgre se dodjeljuju na jednom radnom čvoru
• mpismp - jezgre se dodjeljuju 2 po radnom čvoru
• mpismp_4 - jezgre se dodjeljuju 4 po radnom čvoru
• mpismp_8 - jezgre se dodjeljuju 8 po radnom čvoru
• vsmp - jezgre se dodjeljuju na ScaleMP vSMP čvoru
• gpu - GPU poslovi (ne koristi se više)
Korištenje računalnog klastera Isabella
Paralelni poslovi - MPI
• MPI okoline na Isabelli• MVAPICH2 2.0 (podrazumijevana)
• MVAPICH2 2.0 s prevodiocima GNU 4.9
• ScaleMP MPICH2 (podrazumijevana na ScaleMP)
• Intel MVAPICH2 2.0 (preporučena)
Korištenje računalnog klastera Isabella
$ module load mvapich2-x86_64
$ module load mvapich2-gcc49-x86_64
$ source /opt/ScaleMP/mpich2/1.4/etc/mpich2.sh
$ module load mvapich2-intel-x86_64
Paralelni poslovi - MPI
• Pokretanje posla• navesti naredbu module load ako nije podrazumijevana okolina
• pokretanje aplikacije (parallelMPI.sge):
• primjer aplikacije prevedene s MVAPICH2 2.0 s prevodiocima GNU 4.9:
Korištenje računalnog klastera Isabella
mpirun_rsh -np $NSLOTS -hostfile $TMPDIR/machines
/home/NPB.parallel
module load mvapich2-gcc49-x86_64
mpirun_rsh -np $NSLOTS -hostfile $TMPDIR/machines
/home/NPB.parallel.gcc49
Polje poslova
• Višestruko izvođenje aplikacije• svaki zadatak ima svoj ID (<ID_posla>.<ID_zadatka>)
• svaki zadatak se samostalno raspoređuje
• Opcija
• firstID – prvi ID
• lastID – posljednji ID
• step – korak rasta vrijednosti ID-ja između prvog i posljednjeg (podrazumijevano:1)
Korištenje računalnog klastera Isabella
#$ -t <firstID>:<lastID>:<step>
Polje poslova
• Primjer
• Pokreće 5 zadataka s ID-jevima: 1,3,5,7,9
• Relevantna varijabla okoline $SGE_TASK_ID• moguće je ulaz razdijeliti u više datoteka
• koristiti $SGE_TASK_ID za dodjeljivanje datoteka zadacima
Korištenje računalnog klastera Isabella
#$ -t 1:9:2
Polje poslova
• Standardni izlaz i greška• obavezno navesti relativnu putanju
• u suprotnom će izlaz i greška biti prepisani od pojedinih zadataka
• Primjeri:• jobArray.sge: primjer polja serijskih poslova
• parallelMPIJobArray.sge: primjer polja paralelnih poslova
Korištenje računalnog klastera Isabella
Napredno opisivanje poslova
Korištenje računalnog klastera Isabella
Privremeni rezultati
• Ne koristiti direktorije u $HOME• smanjuje učinkovitost aplikacije
• opterećuje frontend klastera
• opterećuje mrežu klastera
• Ne stvarati proizvoljne direktorije• u slučaju greške podaci ostaju na čvoru
• upitno vlasništvo nad direktorijima
• upitna učinkovitost pristupa direktorijima
Korištenje računalnog klastera Isabella
Privremeni rezultati
• Koristiti scratch ($TMPDIR)• /scratch/<jobID>.<taskID>.<queue>
• stvara se za pojedini posao (na svim čvorovima)
• automatski se uklanja po završetku posla
• scratch.sge – kako koristiti scratch direktorij
Korištenje računalnog klastera Isabella
Privremeni rezultati – BeeGFS
• Paralelni datotečni sustav BeeGFS
• Dostupan na Isabelli i Srce CRO NGI sjedištu• /shared
• Ukupno raspoloživo 90 TB
• Nema automatskog uklanjanja direktorija
• shared.sge – kako koristiti shared direktorij
Korištenje računalnog klastera Isabella
Resursi
• Omogućavanje boljeg raspoređivanja poslova• navođenje daje poslovima veći prioritet!
• Korisno u slučaju greške u programu• posao se zaustavi u grešci i okupira čvor
• posao sadrži memory leak
• Opcija
Korištenje računalnog klastera Isabella
#$ -l <resource>=<value>
Resursi
Korištenje računalnog klastera Isabella
arch – arhitektura čvora (e.g.lx26-x86, lx24-amd64)
hostname – adresa čvora (compute-0-1.local)
vmem – količina virtualne memorije (format: <num>K|M|G)
rss – količina stvarne memorije
stack – veličina stoga
data – ukupna količina memorije (bez stoga)
fsize – ukupna veličina datoteka
cpu – procesorsko vrijeme (format:
[<hours>:<min>:]<sec>)
rt – stvarno vrijeme
Resursi
• Resursi (osim hostname & arch) imaju• soft (s_<resource>) vrijednost
• hard (h_<resource>) vrijednost
• Bitno: ako se ne postavi ispravno, postavljanje vrijednosti resursa može uzrokovati prekid posla
• u pozadini SGE koristi naredbu ulimit
• Bitno: vrijednosti se ne mogu mijenjati za aktivne poslove
• Primjer
• posao zahtjeva stvarno vrijeme izvođenja od 48 sati
Korištenje računalnog klastera Isabella
#$ -l h_rt=48:0:0
#$ -l s_rt=48:0:0
Resursi
• SGE omogućava dodjeljivanje proizvoljnih parametara čvorovima
• Primjer (Isabella & različite platforme čvorova)
• Moguće vrijednosti
Korištenje računalnog klastera Isabella
#$ -l vendor=<value>
HP – compute-0,2-*, vsmp
Resursi
• Primjer (Isabella & tražena memorija)
• korisno za poslove koji zahtijevaju veliku količinu memorije
• ne postavlja ograničenje kao vmem
• ne osvježava se automatski
• količina memorije u izražena u GB koju posao treba za izvođenje jednog procesa
• Primjer posao zahtjeva 20 jezgri i 200 GB RAM-a
Korištenje računalnog klastera Isabella
#$ -l memory=<value>
#$ -pe mpi 20
#$ -l memory=10
Resursi
• Primjer (Isabella & traženi scratch prostor)
• korisno za poslove koji zahtijevaju veliku količinu prostora na scratchu
• ne postavlja ograničenje na korištenom prostoru
• ne osvježava se automatski
• količina memorije u izražena u GB koju posao treba za izvođenje jednog procesa
• Primjer posao zahtjeva 4 jezgre i 200 GB scratch prostora
Korištenje računalnog klastera Isabella
#$ -l scratch=<value>
#$ -pe mpisingle 4
#$ -l scratch=50
Resursi
• Primjeri• resourceHost.sge – zahtjeva adresu i arhitekturu
• resourceVendor.sge – zahtjeva atribut vendor
• resourceMemory.sge – zahtjeva nedovoljnu količinu memorije
• resourceTime.sge – zahtjeva nedovoljno procesorsko vrijeme izvođenja posla
• resourceMemory2.sge – zahtjeva veliku količinu memorije
• resourceScratch.sge – zahtjeva veliku količinu scratch prostora
• ulimit.sge - izlaz naredbe ulimit prilikom postavljanja ograničenja memorije
Korištenje računalnog klastera Isabella
Projekti
• Korisnici su podijeljeni u projekte• SGE koristi projekte za definiranje prioriteta i fair-share
• mogu se koristiti za naplaćivanje korištenja
• Podrazumijevani projekt je u definiciji korisnika
• Može se definirati opcijom
Korištenje računalnog klastera Isabella
#$ -P <projectName>
Red poslova
• SGE podržava više redova poslova• za različite vrste poslova, korisnika, …
• za različite vrste čvorova (interaktivni, veliki SMP-ovi)
• Može biti definiran opcijom
Korištenje računalnog klastera Isabella
#$ -q <queueName>
Red poslova
• Redovi na Isabelli• all.q
• red za serijske poslove
• parallel.q• red za paralelne poslove
• tecaj• red za potrebe tečaja
• velebit• red za potrebe projekta od MZOE
• vsmp.q• red za ScaleMP vSMP čvor
• vsmp-test.q• red za potrebe tečaja o ScaleMP
Korištenje računalnog klastera Isabella
Obavijesti
• Email obavijesti o izmjeni stanja poslova• korisno za dugotrajne poslove
• Definiranje email adrese
• Definiranje uvjeta u kojem se šalju obavijesti
• b – kod početka izvođenja
• a – kada je posao prekinut
• e – kada je posao završen
• n – ne slati obavijesti (podrazumijevana opcija)
Korištenje računalnog klastera Isabella
#$ -M <emailAddress>[,<emailAddress>]…
#$ -m aben
Obavijesti
• Primjer
• poslati obavijest na adresu [email protected] prilikom prekida ili završetka posla
Korištenje računalnog klastera Isabella
#$ -m ae
#$ -M [email protected]
Ponavljanje poslova
• Što prilikom greške u izvođenju?• problem na čvoru
• problem u poslu
• U nekim slučajevima je poželjno automatsko ponavljanje
• Opcija
Korištenje računalnog klastera Isabella
#$ -r y|n
Rezervacija čvorova
• SGE omogućava rezervaciju čvorova• prilikom raspoređivanja SGE rezervira čvorove
• bitno za višeprocesorske poslove
• Opcija
Korištenje računalnog klastera Isabella
#$ -R y|n
SGE varijable okoline
Korištenje računalnog klastera Isabella
$JOB_ID – ID posla
$JOB_NAME – ime posla
$NSLOTS – broj dodijeljenih CPU-ova
$NHOSTS – broj dodijeljenih čvorova
$PE_HOSTFILE – datoteka sadrži popis dodijeljenih
čvorova
$SGE_O_PATH – vrijednost varijable PATH na frontendu
$SGE_O_WORKDIR – direktorij u kojem je pokrenut qsub
$SGE_STDOUT_PATH – lokacija datoteke za izlaz
$SGE_STDERR_PATH – lokacija datoteke za grešku
$SGE_TASK_ID – ID zadatka (vidi polja poslova)
$TMPDIR – privremeni direktorij posla
$QUEUE – ime reda poslova
Upravljanje poslovima
Korištenje računalnog klastera Isabella
Prikaz stanja poslova
• Naredba
• Korisne opcije
• p – poslovi koji čekaju u redu
• r – aktivni poslovi
• s – privremeno zaustavljeni aktivni poslovi
• h – privremeno zaustavljeni poslovi u redu
• detaljni prikaz stanja posla (npr. zašto se posao ne izvodi)
Korištenje računalnog klastera Isabella
$ qstat <options>
$ qstat –s rpsh
$ qstat –j
Prikaz stanja poslova
• prikaz stanja poslova i čvorova
• prikaz detaljnih informacija o čvorovima (resursi)
• dodatne informacije o poslovima (npr. projekti, prioriteti)
• detaljni podaci o prioritetima poslova
Korištenje računalnog klastera Isabella
$ qstat –f
$ qstat –F
$ qstat –ext
$ qstat –pri
Prikaz stanja poslova
• sažetak stanja pojedinih redova poslova
• detaljan prikaz informacija o jednom poslu
• filtriranje poslova prema resursima
• prikaz poslova u definiranom redu poslova
Korištenje računalnog klastera Isabella
$ qstat –g c
$ qstat –j <jobId>
$ qstat –l <resource>=<value>
$ qstat –q <queue>
Prikaz stanja poslova
• prikaz poslova od određenog korisnika (*-za sve)
• prikaz poslova koji koriste definiranu paralelnu okolinu
• dodatne informacije o traženim resursima
Korištenje računalnog klastera Isabella
$ qstat –u <user>
$ qstat –pe <name>
$ qstat –urg
Prikaz stanja poslova
• Korištenje filtera• bitno u produkciji sa stotinama poslova
• Primjer
• prikaz paralelnih poslova na strojevima tipa HP u redu poslova all.q
• prikaz svih poslova i čvorova korisnika pero na 64-bitnih čvorovima
Korištenje računalnog klastera Isabella
$ qstat –s r –pe mpi –l vendor=IBM –q all.q
$ qstat –s r –f –user pero –l arch=lx24-amd64
Prikaz radnih čvorova
• Naredba
• prikazuje broj procesora, jezgri, radne memorije po čvoru
• Ispis vrijednosti resursa
Korištenje računalnog klastera Isabella
$ qhost
$ qhost -F vendor,scratch,memory
Zaustavljanje poslova
• Naredba
• Moguće zaustaviti sve poslove korisnika
• Za zaglavljene poslove koristiti prisilno zaustavljanje
Korištenje računalnog klastera Isabella
$ qdel <jobID>
$ qdel –u <user>
$ qdel –f <jobID>
Privremeno zaustavljanje poslova
• Privremeno zaustavljanje poslova u redu
• Naredba
• Nema utjecaja za aktivne poslove
Korištenje računalnog klastera Isabella
$ qhold <jobID>
$ qrls <jobID>
Privremeno zaustavljanje poslova
• Korisno prilikom ponavljanja izvođenja• ukoliko je potrebno izmijeniti parametre posla
• npr. izmjena resursa
• Izmjene parametara kod ponavljanja izvođenja• privremeno zaustaviti posao (qhold)
• pokrenuti ponovno raspoređivanje posla (qmod –r)
• izmijeniti parametre (qalter)
• nastaviti izvođenje posla (qrls)
Korištenje računalnog klastera Isabella
Ponovno izvođenje poslova
• Ponovno raspoređivanje posla
• aktivni posao se zaustavlja i vraća u red poslova
• kada je čvor na kojem se posao izvodio nedostupan
• prethodno koristiti qhold ako se ne želi odmah ponoviti izvođenje posla
• Ponovno izvođenje posla
• podnosi se kopija posla
Korištenje računalnog klastera Isabella
$ qmod –r <jobID>
$ qmod –f –r <jobID>
$ qrerun <jobID>
Izmjena parametara posla
• Naredba
• Primjer
• onemogućiti automatsko ponovno izvođenje posla
• onemogućiti slanje email obavijesti
Korištenje računalnog klastera Isabella
$ qalter <options> <jobId>
$ qalter –r n –m n <jobId>
Informacije o poslovima
• Dohvat podataka o završenim poslovima• moguće koristiti isključivo za završene poslove
• Naredba
• Primjeri
• detaljne informacije o poslu <jobId>
• detaljne informacije o svim poslovima (velika količina podataka)
Korištenje računalnog klastera Isabella
$ qacct <options>
$ qacct –j <jobId>
$ qacct –j
Informacije o poslovima
• prikaz informacija o svim poslovima definiranog korisnika
• prikaz sažetka potrošnje definiranog korisnika• ako se ne definira <user> prikazuju se podaci za sve korisnike
• prikaz sažetka svih poslova koji su koristili definirani broj procesora• ako se ne definira <count> prikazuju se podaci za sve vrijednosti
Korištenje računalnog klastera Isabella
$ qacct –j –o <user>
$ qacct –o <user>
$ qacct –slots [<count>]
Informacije o poslovima
• prikaz informacija o svim poslovima za definirani projekt
• prikaz sažetka potrošnje definiranog projekta• ako se ne definira <projekt> prikazuju se podaci za sve projekt
Korištenje računalnog klastera Isabella
$ qacct –j –P <projekt>
$ qacct –P <projekt>
Informacije o poslovima
• prikaz informacija o svim poslovima za definirani red poslova
• prikaz sažetka potrošnje definiranog reda poslova• ako se ne definira <red> prikazuju se podaci za sve projekt
Korištenje računalnog klastera Isabella
$ qacct –j –q <red>
$ qacct –q <red>
Raspodijeljeni datotečni sustav BeeGFS
Korištenje računalnog klastera Isabella
BeeGFS
• Raspodijeljeni podatkovni sustav
• Razvijen od strane Fraunhofer Institute for Industrial Mathematics (ITWM)
• inicijalno razvijen 2005. za potrebe HPC (engl. High PerformanceComputing) klastera
• Prethodno ime FhGFS• engl. Fraunhofer Gesellschaft File System
• 2014. objavljeno novo ime i osnovan spin-off ThinkParQ
• Komercijalna programska potpora• dostupan je besplatno ili uz plaćanje podrške
• neke funkcionalnosti zahtijevaju plaćanje podrške
Korištenje računalnog klastera Isabella
BeeGFS
• Operacijski sustavi• Red Hat Linux 5, 6 i 7
• Suse Linux 11 i 12
• Debian Linux 7 i 8
• Datotečni sustavi za pohranu podataka• XFS - preporučeni sustav za podatkovni servis
• ext4 - preporučeni sustav za imenički servis
• drugi datotečni sustavi sukladni specifikaciji POSIX (ext3, ext4, RaiserFS)
• Mrežne tehnologije• Ethernet (1Gb/s i 10Gb/s)
• Infiniband (RDMA)
Korištenje računalnog klastera Isabella
Arhitektura
Korištenje računalnog klastera Isabella
BeeGFS u Srcu
• Klaster Isabella i CRO NGI• statistike: http://www.cro-ngi.hr/crongi_stats/
• Korisnički direktorij (home)• ukupno 110 TB
• 4 podatkovna poslužitelja
• 1 imenički servis
• iSCSI spremišni element
• 1 Gb/s Ethernet
• koristiti za ulazne i izlazne podatke
Korištenje računalnog klastera Isabella
BeeGFS u Srcu
• Direktorij za pohranu privremenih datoteka (scratch)• učinkovit rad s velikim datotekama
• ukupno 90 TB
• 4 podatkovna poslužitelja
• 4 imenička servisa
• 40 i 56 Gb/s Infiniband
• koristiti za velike privremene podatke
Korištenje računalnog klastera Isabella
BeeGFS
Korištenje računalnog klastera Isabella
BeeGFS
Korištenje računalnog klastera Isabella
Korisne naredbe
• Provjera dostupnosti servisa
• Provjera iskorištenja direktorija svih servisa
Korištenje računalnog klastera Isabella
beegfs-check-servers -p /beegfs
beegfs-df -p /beegfs
Sustavi korišteni u prošlosti
• GlusterFS• CRO NGI
• podatkovne usluge Filesender, GSS, JKP
• ukupno preko 200 TB prostora
• napušten zbog slabije učinkovitosti od BeeGFS-a i ujednačavanja raspodijeljenih podatkovnih sustava
• Lustre• klaster Isabella
• 6 poslužitelja (2 MDS, 2 OSS, 2 mosta između mreža Infiniband i Ethernet)
• visoka dostupnost (Heartbeat)
• napušten zbog složenosti održavanja, korištenja nestandardne jezgre i prestanka održavanja od strane Oraclea
Korištenje računalnog klastera Isabella
Sustavi korišteni u prošlosti
• GFS• klaster Isabella i CRO NGI
• klasterski datotečni sustav
• omogućava pristup istom logičkom disku na spremišnom sustavu s više poslužitelja
• napušten zbog loše učinkovitosti
• NFS• klaster Isabella i CRO NGI
• korisnički direktorij (home)
• napušten zbog loše učinkovitosti pri velikom opterećenju
• još uvijek se koristi na manjim klasterima
Korištenje računalnog klastera Isabella
Sustavi za nadzor
Korištenje računalnog klastera Isabella
Ganglia
• Sustav za nadzor• prikuplja informacije o čvorovima
• razmjenjuje informacije između frontenda i čvorova
• arhivira podatke
• Web sučelje• prikaz grafova pojedinih parametara (CPU, memorija, mreža, disk)
• povijest: sat, dan, mjesec, godina
• http://tannat.srce.hr/ganglia
Korištenje računalnog klastera Isabella
Ganglia
Korištenje računalnog klastera Isabella
Statistike o korištenju
• Stranica Srca• podaci iz sustava za nadzor Zabbix i Son of Grid Engine
• http://tannat.srce.hr/acc/
Korištenje računalnog klastera Isabella
PHPQstat
• Web aplikacija za prikaz aktivnih poslova
• Web prikaz ispisa iz naredbi• qhost
• qstat
• Moguće je filtriranje po korisniku
• http://tannat.srce.hr/PHPQstat/
Korištenje računalnog klastera Isabella
Reference
• Sun of Grid Engine• dokumentacija: http://arc.liv.ac.uk/SGE/howto/
• mailing lista http://gridengine.org/mailman/listinfo/users
• man stranice naredbi
• BeeGFS• http://www.beegfs.com/content/
• Ganglia• http://ganglia.info
Korištenje računalnog klastera Isabella
Srce politikom otvorenog pristupa široj javnosti
osigurava dostupnost i korištenje svih rezultata rada
Srca, a prvenstveno obrazovnih i stručnih informacija
i sadržaja nastalih djelovanjem i radom Srca.
Ovo djelo je dano na korištenje pod licencom
Creative Commons Imenovanje-Nekomercijalno
4.0 međunarodna.
www.srce.unizg.hr creativecommons.org/licenses/by-nc/4.0/deed.hr www.srce.unizg.hr/otvoreni-pristup
Hvala na pažnji!
Pitanja?