Návody (+) (-)
Vygenerovanie ssh kľúča pre prístup na klaster
ktorý vyrobí kľúče štandardne v adresári ~/.ssh (privátny: id_rsa a verejný: id_rsa.pub).
Na ochranu kľúča si prosím zvoľte kvalitné heslo (aspoň 8 znakov, vrátane špeciálnych znakov).
Verejný kľúč (~/.ssh/id_rsa.pub) nám zašlite.
Ale Váš súkromný kľúč ~/.ssh/id_rsa chráňte a nikomu neposielajte. Pri podozrení, že ho má niekto iný k dispozícii okamžite nás informujte a my zablokujeme Vaše konto, aby ho nemohol zneužiť. Potom nám pošlete nový kľúč.
Aby všetko správne fungovalo, musia byť správne nastavené prístupové práva k privátnemu kľúču len pre Vás (-rw-r--r--).
Windows: použite PuTTYgen apikáciu z Putty balíka.
Počítanie na klastri
Nasledujúca tabuľka uvádza niekoľko najpoužívanejších klientských PBS príkazov.
PBS batch-úloha
PBS qsub: Najčastejšie používané voľby (options) a ich význam
Sekvenčné a paralelné OpenMP úlohy
export OMP_THREAD_LIMIT=12
#export OMP_DYNAMIC="true"
export OMP_DYNAMIC="false"
#export OMP_NESTED="false"
export OMP_NESTED="true"
#export OMP_WAIT_POLICY= "passive"
export OMP_WAIT_POLICY="active"
#export OMP_SCHEDULE
#export OMP_MAX_ACTIVE_LEVELS
export OMP_PLACES="cores"
export OMP_PROC_BIND="true"
export OMP_DISPLAY_ENV="verbose"
# Hodnota nasledujúcej premennej závisí od typu aplikácie:
#export OMP_STACKSIZE=16M
Pri predkladaní úlohy do dávkového spracovania (PBS) spúšťací (batch) skript by mal obsahovať riadok:
OMP_PLACES,OMP_PROC_BIND
Nižšie uvedené príklady shell-skriptov reprezentujú batch-úlohy popisujúce sekvenčnú a paralelnú OpenMP aplikáciu.
jobscript-seq.sh (Serial job) |
jobscript-omp.sh (OpenMP job) |
Paralelné MPI a kombinované MPI+OpenMP úlohy
Nižšie uvedené príklady shell-skriptov reprezentujú batch-úlohy popisujúce paralelnú MPI a kombinovanú MPI+OpenMP aplikáciu.
jobscript-mpi.sh (MPI job) |
jobscript-mix.sh (MPI+OpenMP job) |
Kompilovanie programov sekvenčných, OpenMP, MPI a MPI+OpenMP
Kompilovanie GNU kompilátormi:
module load openmpi-gcc/1.10.7
Model: Serial
gcc -o exam-seq exam-seq.c
gfortran -o fexam-seq fexam-seq.f90
Model: OpenMP
gcc -fopenmp -o exam-omp exam-omp.c
gfortran -fopenmp -o fexam-omp fexam-omp.f90
Model: MPI
mpicc -o exam-mpi exam-mpi.c
mpif90 -o fexam-mpi fexam-mpi.f90
Model: MPI+OpenMP
mpicc -fopenmp -o exam-mix exam-mix.c
mpif90 -fopenmp -o fexam-mix fexam-mix.f90
Kompilovanie Intel kompilátormi:
module load intel
module load openmpi-intel/1.10.7
Model: Serial
icc -o exam-seq exam-seq.c
ifort -o fexam-seq fexam-seq.f90
Model: OpenMP
icc -openmp -o exam-omp exam-omp.c
ifort -openmp -o fexam-omp fexam-omp.f90
Model: MPI
mpicc -o exam-mpi exam-mpi.c
mpif90 -o fexam-mpi fexam-mpi.f90
Model: MPI+OpenMP
mpicc -openmp -o exam-mix exam-mix.c
mpif90 -openmp -o fexam-mix fexam-mix.f90
Kompilovanie PGI kompilátormi:
module load pgi
module load openmpi-pgi/1.10.7
Model: Serial
pgcc -o exam-seq exam-seq.c
pgfortran -o fexam-seq fexam-seq.f90
Model: OpenMP
pgcc -mp -o exam-omp exam-omp.c
pgfortran -mp -o fexam-omp fexam-omp.f90
Model: MPI
mpicc -o exam-mpi exam-mpi.c
mpif90 -o fexam-mpi fexam-mpi.f90
Model: MPI+OpenMP
mpicc -mp -o exam-mix exam-mix.c
mpif90 -mp -o fexam-mix fexam-mix.f90
Počítanie na Gride
Služby pre manažment úloh v gride
Služby pre manažment úloh zabezpečujú spúšťanie úloh a realizáciu všetkých operácií spojených s ich vykonávaním. V gridovej terminológii vstupnou bránou do gridu je UI (User Interface). UI predstavuje ľubovoľný stroj, na ktorom je nainštalovaný gridový midlvér a používateľ tam má zavedené vlastné konto a uložené svoje certifikáty. UI poskytuje klientské nástroje CLI (Command Line Interface) a API (Application Programming Interface), ktoré umožňujú pristupovanie ku gridovým zdrojom a vykonávanie gridových operácií. Výpočtový element CE (Computing Element) predstavuje virtuálny výpočtový zdroj – množinu výpočtových prostriedkov umiestnených v jednom gridovom uzle, typicky, počítačový klaster. CE pozostáva z troch hlavných komponentov: množiny výpočtových uzlov WN (Worker Nodes) klastra, dávkového systému LRMS (Local Resource Management System) a generického rozhrania klastra (Grid Gate), ktorého funkciou je úlohu akceptovať a prideliť ju prostredníctvom LRMS výpočtovým uzlom na vykonanie.
Za distribúciu a manažment úloh na výpočtové a úložné zdroje gridu je zodpovedný
softvérový systém WMS (Workload Management System), ktorý poskytuje vstup k službám
ošetrujúcim požiadavky úlohy. Služba WMProxy predstavuje hlavnú službu, ktorá
sprístupňuje WMS a cez klientské rozhranie CLI inicializuje gridové operácie (viď.
nasledujúcu tabuľku).
WMProxy Client Commands:
Služby pre manažment údajov majú za úlohu realizovať bezpečný a spoľahlivý prenos dátových súborov v gridovom prostredí, replikovanie súborov na úložných zdrojoch, interakciu s gridovými katalógmi a rôzne iné manipulačné operácie s údajmi.
Gridové úlohy
Aplikačné úlohy určené pre vykonávanie na gridovej infraštruktúre musia byť popísané v jazyku JDL (Job Description Language). JDL predstavuje flexibilný, vysoko-úrovňový jazyk, ktorý umožňuje popísať jednu úlohu alebo skupinu úloh s ľubovoľnými vzájomnými závislosťami a špecifikovať požiadavky a obmedzenia kladené na výber výpočtových a úložných zdrojov a nainštalovaného softvéru. Vo všeobecnosti, JDL atribúty obsahujú pre požiadavku špecifické informácie označujúce istým spôsobom činnosti, ktoré je nutné vykonať.
Nasledujúci príklad znázorňuje JDL súbor „job-simple.jdl“ pre vykonanie jednoduchej
gridovej úlohy. V príklade sa predpokladá, že vyvolanie aplikácie „test.exe“ sa uskutoční vo
vnútri shell-skriptu „start-test.sh“ so vstupnými parametrami „input.dat“ a „output.dat“. JDL
súbor sa uvádza ako posledný zo vstupných argumentov v príkaze glite-wms-job-submit.
Type = "Job"; Typ požiadavky JobType = "Normal"; Typ úlohy CpuNumber = 1; Počet alokovaných CPU jadier Executable = "start-test.sh"; Meno vykonateľnej ulohy/príkazu Arguments = "test.exe input.dat output.dat"; Vstupné parametre úlohy StdOutput = "std.out"; Meno štandardného výstupného prúdu StdError = "std.err"; Meno štandardného chybového prúdu InputSandbox = Zoznam súborov, ktoré je nutné preniesť z UI {"start-test.sh","test.exe","input.dat"}; na CE pred naštartovaním úlohy OutputSandbox = Zoznam súborov, ktoré sa prenesú z CE na UI {"std.out","std.err","output.dat"}; po ukončení úlohy RetryCount = 0; Počet spustení úlohy pri výskyte chyby v úlohe ShallowRetryCount = 3; Počet spustení úlohy pri výskyte chyby v gridovom komponente Requirements = Požiadavka na dobu vykonávania úlohy "other.GlueCEPolicyMaxWallClockTime >= 2880"; (čas uvedený v minútach)
Počítanie na Cloud-e
- infraštruktúra ako služba IaaS (Infrastructure as a service),
- platforma ako služba PaaS (Platform as a service) a
- softvér ako služba SaaS (Software as a service).
V modeli IaaS sú poskytované virtuálne stroje, dátové úložiská a sieťové spojenie ako služby, pričom používateľ má k strojom plný prístup, má možnosť sám ich administrovať a inštalovať na ne softvér podľa vlastnej potreby. Tento model je vhodný na uplatnenie pre existujúce aplikácie (tzv. „legacy“ softvér). Model PaaS poskytuje softvérové platformy (knižnice, API) v rámci ktorých môže používateľ vyvíjať svoje aplikačné programy a nasadiť ich do klaudu bez toho aby potreboval hlbšie znalosti a skúsenosti s administráciou stroja na nižších úrovniach. V modeli SaaS je poskytovaný kompletný softvér ako služba, ktorú používateľ môže po registrácii okamžite využívať (napr. Google Maps). Pre implementáciu IaaS existuje v súčastnosti niekoľko midlvérov. Medzi najznámejšie patrí komerčný produkt Amazon EC2 a z voľne dostupných sú to OpenStack, OpenNebula a Eucalyptus.
Časť klastra na ÚISAV bola vyčlenená na výskum klaudového počítania. Na experimentálne účely. tam bol nainštalovaný voľne dostupný klaudový midlvér OpenStack, ktorý sa teší širokej popularite aj v priemysle. Je podporovaný s IBM, HP, Cisco, AT&T, Intel, Redhat a mnohými inými významnými spoločnosťami. OpenStack sa nachádza v procese aktívneho vývoja. Pravidelne každý polrok vychádza nová verzia, posledná verzia Grizzly bola vydaná 4. apríla 2013.
OpenStack pozostáva z niekoľkých hlavných komponentov. Každý z komponentov treba skonfigurovať a inštalovať samostatne. Experimentálne boli nasadené na HP klastri s 3 uzlami, v ktorom každý uzol obsahuje dva 4-jadrové Xeon procesory a pevný disk s kapacitou 500 GB. Uzly sú navzájom prepojené sieťou Gigabit Ethernet.
Hlavný uzol„cloudmaster.ui.savba.sk“ je určený na riadenie a boli na ňom nainštalované komponenty:
Glance (manažovanie obrazov virtuálnych strojov),
Nova-volume (manažovanie virtuálnych diskov),
MySQL databáza a Nova-API pre riadenie a komunikáciu s klientami.
Ostatné dva uzly sú výpočtové kde bežia virtuálne stroje a na nich boli nasadené
Nova-compute a Nova-network. OpenStack obsahuje viaceré klientské nástroje vrátane rozhrania CLI, grafického
webového rozhrania Dashboard, Firefox plugin HybridFox a rozhrania kompatibilného s
Amazon EC2.
Návody pre Gridových používateľov
Návod na vytvorenie žiadosti o prvý osobný (user) certifikát (pre nového používateľa):
1. vygenerujte si nový pár kľúčov príkazom: "grid-cert-request -int" (ak nemáte nainštalovaný tento príkaz, môžete použiť môj 'user' skript ), štandardne sa nové kľúče ukladajú v adresári „~/.globus“ - ak sa najprv spýta na meno a priezvisko, vyplňte ich - zvoľte aspoň 12 znakovú passfrázu - potvrďte krajinu: "C=SK" a oblasť: "O=SlovakGrid" - vyplňte skratku názvu organizácie (zamestnávateľa alebo školu) - vyplňte meno aj priezvisko v plnom rozsahu (s medzerou) 2. skopírujte si sha1 hash žiadosti získany príkazom: "sha1sum usercert_request.pem" do formulára Ziadost.doc 3. vytlačte a osobne prineste túto žiadosť (formulár) najbližšej registračnej autorite (informácie: ca.ui@savba.sk) a preukážte sa jej platným identifikačným dokladom (občiansky preukaz, cestovný pas) 4. pošlite súbor "usercert_request.pem" navštívenej registračnej autorite.
Návod na znovu-vytvorenie žiadosti o osobný (user) certifikát (pre existujúceho používateľa):
Starý osobný certifikát môžete počas jeho platnosti použiť na podpísanie žiadosti o nový osobný certifikát (rekey request), a to nasledovným postupom: 1. odložte si adresár „~/.globus“ napr. do „~/.globus.bak“ 2. vygenerujte si nový pár kľúčov príkazom: "grid-cert-request -int" (ak nemáte nainštalovaný tento príkaz, môžete použiť môj 'user' skript ), štandardne sa nové kľúče ukladajú v adresári „~/.globus“ - ak sa najprv spýta na meno a priezvisko, vyplňte ich - zvoľte aspoň 12 znakovú passfrázu - potvrďte krajinu: "C=SK" a oblasť: "O=SlovakGrid" - vyplňte skratku názvu organizácie (zamestnávateľa alebo školu) - vyplňte meno aj priezvisko v plnom rozsahu (s medzerou) 3. podpíšte žiadosť starým (ešte stále platným) certifikátom: cd ~/.globus openssl smime -sign -text -in usercert_request.pem -signer \ ~/.globus.bak/usercert.pem -inkey ~/.globus.bak/userkey.pem -out rekey.smi 4. pošlite podpísanú žiadosť (súbor rekey.smi ) certifikačnej autorite: ca.ui [AT] savba.sk 5. odložte si adresár „~/.globus“ napr. do „~/.globus.new“ a vráťte naspäť starý adresár „~/.globus.bak“ na „~/.globus“ až do času, kým nedostanete nový certifikát, ktorým potom prepíšete prázdny súbor ~/.globus.new/usercert.pem a potom adresáre znova zameňte
Návod na vytvorenie žiadosti o host certifikát:
1. vygenerujte si nový pár kľúčov pre host v nejakom adresári, napr. $HOME, na tom stroji kde máte uložený svoj osobný certifikát príkazom: "grid-cert-request -dir . -int -host" (ak nemáte nainštalovaný tento príkaz, môžete použiť môj 'host' skript ), - potvrďte krajinu: "C=SK" a oblasť: "O=SlovakGrid" - vyplňte skratku názvu organizácie (zamestnávateľa alebo školu) - vyplňte FQDN stroja (napr. ce.grid.skola.sk) 2. podpíšte žiadosť svojím platným user-certifikátom administrátora: openssl smime -sign -text -in hostcert_request.pem -out rekey.smi \ -signer ~/.globus/usercert.pem -inkey ~/.globus/userkey.pem ak ste prihlásený ako root, zameňte "~/.globus" (2x) za adresár, kde máte uložený osobný privátny kľúč a certifikát (alebo ich sem skopírujte) 3. doručte takto podpísanú žiadosť (súbor rekey.smi ) certifikačnej autorite: ca.ui [AT] savba.sk stačí obyčajným e-mailom (netreba ho už podpisovať) 4. po obdržaní nového certifikátu, prepíšte ním prázdny súbor hostcert.pem, ktorý bol vygenerovaný v kroku 1 a spolu s privátnym kľúčom (hostkey.pem) ich premiestnite do adresára „/etc/grid-security“ 5. re-konfigurujte (yaim) všetky gridové služby nainštalované na danom hoste, ktoré používajú certifikát (CE, SE, MON, …), alebo nájdite všetky kópie starého kľúča+certifikátu (v rôznych adresároch aj pod inými menami s príponou ".pem", ak majú rovnaký obsah) a nahraďte ich novými kľúčami, potom reštartujte tieto služby (alebo rebootujte host)
Konverzia certifikátu z formátu „PEM“ do formátu „PKCS12“ a naopak (pre webový prezerač)
Webové prezerače vyžadujú certifikáty vo formáte „PKCS12“ zatiaľ čo gridové služby používajú certifikáty vo formáte „PEM“. Na konverziu formátov je možné použiť príkaz: "openssl". 1. Konverzia z formátu „PEM“ do „PKCS12“: openssl pkcs12 -export -inkey userkey.pem -in usercert.pem -out usercred.p12 -name "certname" userkey.pem – osobný privátny kľúč (musí mať nastavené práva na čítanie iba pre vás) usercert.pem – osobný certifikát usercred.p12 – meno výstupného certifikátu vo formáte PKCS12 "certname" – (nepovinné) meno certifikátu za účelom rozpoznania v prípade že prehliadač má importovaných viacero certifikátov (napr. "SlovakGrid") 2. Konverzia z formátu „PKCS12“ do „PEM“: openssl pkcs12 -nocerts -in usercred.p12 -out userkey.pem