Dokumentace pro uživatele farmy Goliáš 
Pro snažší komunikaci s uživateli byl zaveden 
RT (Request Tracking) system . Proto veškeré dotazy a problémy spojené s farmou Goliáš zasílejte výhradně na e-mailovou adresu 
fzu zavináč rt3.cesnet.cz .
  Upozornění: 

       Dne 19.11.2008 byl definitivně vypnut server 
prak2.farm.particle.cz.
  Ke stažení 
  
  Obsah: 
 1. Základní informace 
 1.1 Struktura farmy Goliáš 
  
Na tomto stroji běží server systému 
PBSPro (Portable Batch System), který má na starosti plánování a spouštění úloh na farmě Goliáš.
 
-  ui2.farm.particle.cz
-  prak3.farm.particle.cz
Na tyto servery se uživatel přihlašuje. (V současné době si sám zvolí, na který stroj se zaloguje). Na těchto serverech je nainstalován klient systému 
PBS. Uživatel může své úlohy spouštět, rušit, přesouvat ve frontách, vyzvedávat výsledky. Zároveň může provádět další interaktivní činnosti jako např. testovat nebo kompilovat své programy. Výhledově bude pro interaktivní činnosti vyhrazeno několik výpočetních uzlů 
golias.
  
Toto jsou výpočetní neboli pracovní uzly (tzv. 
worker nody). Nepatří mezi ně 
golias 10, 15, 25, 31, 32, 33, 59, 97, 98, 100, 137 a 
143. (Pro úplnost 
golias31 - golias99 jsou aliasy pro 
goliasx31 - goliasx99). Na těchto strojích systém 
PBS spouští úlohy. Uživatel by se na ně neměl bezdůvodně hlásit.
 
-  storage.farm.particle.cz
-  storage2.farm.particle.cz
-  storage3.farm.particle.cz
-  storage4.farm.particle.cz
-  storage5.farm.particle.cz
Toto jsou 
fileservery, na kterých jsou uložena data a domovské adresáře. Pomocí 
NFS jsou namountovány na serverech 
golias, 
ui2 a 
prak3 jako adresáře 
/raidN, kde 
N je číslo v názvu serveru. Pokud je součástí jména adresáře 
/raidN i jméno experimentu, znamená to, že tento adresář může být využíván pouze pro daný experiment. Soubory uložené v adresáři 
/raidN se nezálohují! Uživatel si musí soubory sám zkopírovat na jiné místo. Zálohují se pouze domovské adresáře 
/home.
Zpět
 1.2 Nový uživatel 
Každý nový zájemce o používání farmy Goliáš musí vyplnit 
Žádost o zřízení účtu. Žádost je nutné v papírové formě zaslat na sekretariát Sekce fyziky elementárních částic FZÚ. Pro urychlení celé procedury je možné žádost poslat faxem (fax: 286 585 443) a originál doručit do čtrnácti dnů.
Jakmile obdržíte e-mailem potvrzení o zřízení účtu, je nutné se přihlásit na 
golias.farm.particle.cz a potom na 
ui2.farm.particle.cz nebo na 
prak3.farm.particle.cz a pomocí příkazu 
passwd změnit přístupové heslo.
Heslo by mělo být silné, tzn. mělo by se skládat alespoň z 8 znaků a obsahovat malá a velká písmena, číslice a nealfanumerické znaky (např. %, &, *, # apod.).
Pozn.: Po dokončení instalaci systému 
LDAP ( 
Lightweight Directory Access Protocol ) bude nový uživatel při prvním přihlášení na 
ui2 nebo 
prak3 automaticky vyzván ke změně svého hesla. Dokud si heslo nezmění, nebude mít možnost dále pracovat.
Každý nový uživatel farmy Goliáš je automaticky přihlášen do e-mailové skupiny 
hepfarm zavináč heplist.fzu.cz. Prostřednictvím toho e-mailu bude informován o novinkách, o změnách v konfiguraci, o plánovaném výpadku farmy apod.
Zpět
 2. Datové prostory 
 2.1. Domovský adresář /home 
Kvóty
Adresář 
/home je vidět ze všech výpočetních uzlů. Zálohuje se systémem 
Legato Net Worker. Podrobnější informace o zálohování a obnově souborů naleznete v 
kapitole 4.
Prostor domovského adresáře je ale omezen kvótou. Rozlišujeme dva stupně: 
soft limit a 
hard limit. V současné době je soft limit standardně nastaven na hodnotu 
2GB, hard limit na hodnotu 
2,5GB. Hard limit už překročit nelze.
Míru zaplnění adresáře 
/home a výši limitů lze zjistit po zalogování na 
ui2 nebo 
prak3 pomocí příkazu
 ssh storage5 /usr/sbin/repquota -s /home 
	
		
			|  | Block limits | File limits | 
		
			| User | used | soft | hard | grace | used | soft | hard | grace | 
		
			| xxx | n | 1954M | 2442M | m | 0 | 0 | 
	
 
-  n - velikost obsazeného prostoru (v kB)
-  block limits - limity omezující obsazený prostor (v MB)
-  file limits - limity omezující počet uložených souborů (tyto limity nejsou nastavené)
-  grace - doba, po kterou může být překročen soft limit (standardní nastavení je 7 dnů)
Zvýšení kvóty
Pokud uživatel potřebuje v adresáři 
/home větší prostor, může požádat o zvýšení kvóty. Svou žádost náležitě odůvodní a pošle prostřednictvím e-mailu Janu Švecovi nebo Tomáši Koubovi.
 2.2 Pracovní adresář /scratch 
Na každém výpočetním uzlu je lokální pracovní prostor 
/scratch. Do tohoto prostoru by se měly ukládat mezivýsledky výpočtů. Při spuštění úlohy se v adresáři 
/scratch automaticky vytvoří podadresář 
/pbstmp.cislojobu.golias. Současně se vytvoří proměnná 
$TMPDIR, která do tohoto adresáře ukazuje. Po skončení úlohy se tento podadresář automaticky smaže. Tímto způsobem se prostor 
/scratch průběžně promazává. Proto je třeba ve skriptech, kterými se úlohy zadávají do front, používat pro uložení dočasných dat proměnnou 
$TMPDIR.

       Na všech výpočetních uzlech jsou v pracovním adresáři 
/scratch automaticky promazávány všechny soubory, od jejichž posledního přístupu uběhlo více než 10 dní ( 
atime přesáhl 240 hodin). 
Zpět
 3. Zadávání úloh 
 3.1 Typy front 
Některé fronty jsou vyhrazené pro speciální projekty (experimenty), pro určité skupiny uživatelů nebo pro speciální typ úloh (interaktivní úlohy apod.). Fronty mají při spuštění úloh různou 
prioritu. Mohou mít také nastavené různé 
limity.
Např.:
 
-  maximální počet úloh, které mohou být z dané fronty spuštěné zároveň
-  maximální množství skutečného času, po který může úloha běžet
-  maximální počet uzlů, které může úloha nárokovat
-  maximální množství paměti, kterou může úloha využít.
 
Při překročení některého z limitů se úloha nespustí nebo je předčasně ukončena.
Původní rozdělení front na farmě Goliáš je následující:
 
-  fronty experimentů (atlas, d0, alice, star, auger, ... )
-  fronty pro uživatele ze Sekce vysokých energií FZÚ nezařazených v jiných projektech (fronty long a short)
-  fronty pro uživatele ze Sekce materiálový výzkum, t.j. pro uživatele subclusteru David (fronty solid a isolid)
-  fronty testovací (test, lcgtest ... ).
Fronty experimentů se dále dělí na fronty produkční a fronty neprodukční. Experimenty podporované gridovým projektem mají ještě fronty, jejichž název začíná 
lcg. Tyto fronty slouží pouze ke spuštění úloh zadaných přes grid.
Každý experiment tedy má 2 fronty: produkční a neprodukční nebo 4 fronty: 2 fronty negridové a 2 fronty gridové, dále dělené na produkční a neprodukční.
Např. fronty pro experiment 
atlas
	
		
			| atlas | fronta negridová a neprodukční | 
		
			| atlasprod | fronta negridová a produkční | 
		
			| lcgatlas | fronta gridová a neprodukční | 
		
			| lcgatlasprod | fronta gridová a produkční | 
	
Priority:  Úlohy zadané do produkční fronty mají vyšší prioritu než úlohy zadané do fronty neprodukční. Stejně tak fronta 
short, určená pro kratší úlohy, které nepoběží déle než 4 hodiny, má vyšší prioritu než fronta 
long, určená pro úlohy časově náročnější. Tedy v případě, že v obou frontách čekají úlohy, po uvolnění procesoru se nejdříve spustí úloha z fronty s vyšší prioritou. Avšak není to tak jednoduché. Kromě priorit se uplatňují ještě další omezení. Ta by měla zaručit co nejoptimálnější využití farmy. Výjimku tvoří fronty s vyhrazeným počtem procesorů.
Příklad: Fronta 
q1 má nejvyšší prioritu, fronty 
q2 a 
q3 mají vyhrazený počet procesorů a stejnou prioritu. Ve frontě 
q1 čeká 
n1 úloh, ve frontě 
q2 běží 
m2 úloh a čeká 
n2 úloh a ve frontě 
q3 čeká 
n3 úloh. V okamžiku, kdy se uvolní jeden procesor, systém 
PBS by spustil úlohu z fronty 
q1 (nejvyšší priorita), ale vzhledem k tomu, že fronty 
q2 a 
q3 ještě nenaplnily svůj počet vyhrazených procesorů, spustí se úloha z fronty 
q2. Při uvolnění dalšího procesoru se spustí úloha z fronty 
q3 (stejná priorita). Tento postup se opakuje až do doby, kdy fronty 
q2 a 
q3 vyčerpají svůj počet rezervovaných procesorů nebo ve frontách už nečekají další úlohy.
Uživatel zadává svou úlohu do fronty z 
ui2 nebo z 
praku3 pomocí příkazu 
qsub.
Nesmí posílat úlohy do front označených 
lcg a také do front testovacích.
Úplný seznam front lze získat po přihlášení na 
ui2 nebo 
prak3 pomocí příkazu
 qstat -q 
Pozn.: Po instalaci systému 
LDAP proběhne přeregistrování všech uživatelů, vytvoří se nové uživatelské skupiny a v důsledku toho se také změní současná struktura front.
Zpět
 3.2 Příkaz qsub 
Úloha (
job) je v zásadě 
skript, který si uživatel předem připraví a potom zadá do fronty pomocí příkazu 
qsub. Příkaz vrátí 
Job ID.
 qsub -q  <jméno fronty> <seznam parametrů> <váš skript>
1234567.golias
Uživatel může specifikovat parametry dvěma způsoby: 
-  v příkazu qsub
-  přímo ve svém skriptu
Tabulka nejčastějších parametrů:
	
		
			| Parametr | Popis | 
	
	
		
			| -q | jméno fronty | 
		
			| -I | interaktivní úloha, podrobnosti zde | 
		
			| -m | zaslání e-mailu, není-li specifikováno, žádný e-mail se neposílá | 
		
			|  | a (abort) – zpráva o přerušení úlohy | 
		
			|  | b (begin) – zpráva o spuštění úlohy | 
		
			|  | e (end) – zpráva o ukončení úlohy | 
		
			| -o | kam uložit výstupní soubor stdout ( stdout se automaticky ukládá do adresáře, ze kterého byl spuštěn příkaz qsub ) | 
		
			| -e | kam uložit chybový soubor stderr ( stderr se automaticky ukládá do adresáře, ze kterého byl spuštěn příkaz qsub ) | 
		
			| -l | seznam požadavků na výpočetní zdroje | 
	
Výpočetní uzly mají vlastnosti popisující jejich architekturu, operační systém, zvláštní vybavení, typ, atd. 
Uživatel může při zadávání úlohy specifikovat požadavky na zdroje (čas, paměť, ... ) a vlastnosti (architektura, hardware, model) uzlu, které úloha potřebuje. Podrobný popis je uveden v 
 PBSProUserGuide 9.2 . Zde si ve zkratce přiblížíme pouze základní využití této funkcionality systému 
PBSPro.
Tabulka nejčastějších požadavků úlohy na výpočetní zdroje:
	
		
			| pbs_resources | Popis | 
	
	
		
			| select | počet výpočetních uzlů | 
		
			| ncpus | počet procesorů na jednom uzlu | 
		
			| mem | velikost fyzické paměti | 
		
			| vmem | velikost virtuální paměti | 
		
			| walltime | množství skutečného času | 
		
			| cput | množství času CPU | 
	
Ostatní dostupné zdroje a vlastnosti (dále jen resources) je možné vypsat pomocí příkazu 
pbsnodes.
Při zadávání úlohy pomocí příkazu 
qsub pak uživatel přepínačem 
-l definuje požadované resources, nejčastěji přes tzv. 
chunky (anglicky chunks). Chunk je seznam požadovaných resources a jejich hodnot, které jsou úloze alokovány z jednoho uzlu. Kromě obsahu chunku uživatel při zadávání úlohy specifikuje i jejich počet 
N následujícím způsobem:
-l select=[N:] chunk [+[N:] chunk ...]
Pokud 
N není uvedeno, dosadí se automaticky hodnota 1.
Samotný chunk pak tvoří jeden nebo více výrazů, oddělených dvojtečkou, ve tvaru 
<resource_name=hodnota>.
-l select=N:<resource_name1=hodnota1>:<resource_name2=hodnota2> ...
Kromě tzv. 
per-chunk limitů, které úloha požaduje na jeden výpočetní uzel, rozlišujeme ještě tzv. 
job-wide limity, které požaduje úloha jako celek. Ty jsou v příkazu 
qsub vypsány samostatně s parametrem 
-l, tzn. nezařazují se do chunků. Mezi tyto požadavky patří např. 
walltime a 
cput.
-l <resource_name=hodnota>
Příklady:
qsub -q <jméno fronty> -l <seznam požadavků na výpočetní zdroje> <váš skript>
	
		
			| Chceme rezervovat | Specifikace parametru -l | 
	
	
		
			| 1 uzel  a 1 procesor | -l select=1:ncpus=1 | 
		
			| 1 uzel a 4 procesory | -l select=1:ncpus=4 | 
		
			| 1 uzel typu bl35p se 2 procesory | -l select=1:ncpus=2:model=bl35p | 
		
			| 1 uzel typu dl140 s dvěma procesory a 2 uzly typu bl35p s 64bitovým OS | -l select=1:ncpus=2:model=dl140+2:model=bl35p:bits=64bit | 
		
			| 2 uzly, na každém 1 procesor | -l select=2:ncpus=1 | 
		
			| 2 uzly, na jednom 2 procesory, na druhém 4 procesory | -l select=1:ncpus=2+1:ncpus=4 | 
		
			| 1 uzel a 1 procesor na 100  hodin skutečného času | -l walltime=100:00:00 -l select=1:ncpus=1 | 
	
Je možné požadovat i konkrétní uzel pomocí 
resource vnode. To se ale nedoporučuje, protože čekací doba na spuštění úlohy může být v takovém případě velmi dlouhá.

       V nové verzi 
PBSPro 9.2 se nedoporučuje používat starší syntaxi specifikace parametru -l ve tvaru 
-l nodes= ... :ppn= ... . Měla by se používat novější syntaxe pomocí chunků ve tvaru 
-l select= ... :ncpus= ... . Zadání pomocí starší verze systém převede do verze novější, ale není zaručeno, že úloha proběhne v pořádku. V žádném případě se nesmí kombinovat obě dvě syntaxe.

       Kvůli efektivnějšímu fungování 
fairshare (automatické přidělování výpočetních zdrojů na základě propočítaného času) byly u všech výpočetních uzlů nastaveny multiplikátory, kterými je násoben jednak 
cput - čas, který úloha zabrala na daném procesoru, jednak 
walltime - skutečný čas, po který úloha obsazovala výpočetní uzel. Multiplikátory vyjadřují poměr výkonu daného výpočetního uzlu vůči referenci, kterou je stroj typu dl140. Proto hodnoty 
cput a 
walltime uvedené v informacích o dané úloze ( příkaz 
 qstat  ) neodpovídají skutečným hodnotám. Je třeba si je příslušným multiplikátorem přepočítat.
Přehled multiplikátorů pro různé typy strojů je uveden v následující tabulce.
	
		
			| Typ stroje | golias | Počet CPU | Velikost RAM | Velikost multiplikátoru | 
	
	
		
			| lp1000r | golias01 - golias30 | 2 | 1GB | 0.61 | 
		
			| dl140 | golias34 - golias79, 95, 96, 99 | 2 | 2GB | 1 | 
		
			| dl140-ht | golias80 - golias94 | 4 | 4GB | 0.6 | 
		
			| bl35p Opteron 275 | golias101 - golias110 | 4 | 8GB | 1.44 | 
		
			| bl35p Opteron 280 | golias111 - golias136 | 4 | 8GB | 1.76 | 
		
			| bl20p Xeon 5160 | golias138 - golias142 | 4 | 10GB | 2.3 | 
		
			| bl460c Xeon 5160 | golias144 - golias150 | 4 | 8GB | 2.29 | 
		
			| bl465c Opteron 2220 | golias151 - golias162 | 4 | 8GB | 2.3 | 
	
 Důležité upozornění !!!
       Důležité upozornění !!! Systém 
PBS používá pro přenášení výsledků z výpočetních uzlů zpět na server, odkud byla úloha zadána, 
scp. Pro korektní fungování 
scp je nutné, aby všechny skripty, které se spouští po přihlášení uživatele (např. 
.bashrc ), neprodukovaly žádný výstup na obrazovku.
Zpět
 3.3 Další užitečné příkazy PBS 
 
-  qdel - vymaže úlohu z fronty
qdel<číslo úlohy>
 
-  qstat - zobrazí dostupné informace o dané úloze, o dané frontě
	
		
			| qstat -f <číslo úlohy> | zobrazí podrobné informace o dané úloze | 
		
			| qstat -a <jméno fronty> | zobrazí všechny úlohy v dané frontě | 
		
			| qstat -au <ID uživatele> | zobrazí všechny úlohy daného uživatele | 
		
			| qstat -q | zobrazí všechny fronty na farmě Goliáš | 
	
Podrobnější informace najdete na manuálových stránkách
man qstat
Zpět
 4. Zálohování a obnova dat 
 4.1 Zálohování dat 
Zálohují se pouze data na svazku 
/home systémem 
Legato Net Worker (Produkt firmy EMC pro zálohování rozsáhlé sítě s velkým množstvím dat. Pracuje na principu klient-server). Zálohy se zapisují na pásky o velikosti 400 GB (bez komprese), v současné době jsou vyhrazeny 3 pásky. Každou noc se provádí inkrementální záloha a jednou za měsíc plná záloha. Uchováváme 4 verze plných záloh, tj. data jsou přístupná s minimálně 3 měsíční historií.
 4.2 Obnova  dat 
Obnova ztracených dat se provádí ze stroje 
storage5 příkazem 
nwrecover. Program se nastaví do adresáře, z něhož je zavolán. 
V případě, že chcete obnovit smazaný soubor, musíte se přihlásit na 
ui2 nebo 
prak3 pomocí 
 ssh -X  a potom se už bez hesla zalogovat na 
storage5
 ssh storage5 
 a zadat příkaz
 nwrecover & 
Dostanete grafické 
GUI k obnově. Objeví se dvě okna: v levém okně je strom adresářů, v pravém seznam souborů daného adresáře a v horní liště menu. 
Pomocí volby
 Change -> Browse Time... 
zvolte datum zálohy dřívější, než kdy byl už soubor smazán, a potvrďte OK. Soubor můžete vyhledávat pomocí volby 
 Search . Klikněte na soubor ("políčko zčerná") a volbou
 Mark 
označte (modré zaškrtnutí).
Pokud chcete soubor uložit do jiného adresáře než do původního, použijte volbu
 Options -> Relocate... 
zadejte jméno adresáře a potvrďte OK.
Spusťte obnovu volbou 
 Start 
Soubor je možné přímo přepsat nebo uložit pod pozměněným jménem. Program možnosti nabídne v dalším okně.
Najednou lze obnovit i více souborů (všechny označené modrým zaškrtnutím) nebo celý adresář.
Obnova je snažší, pokud si pamatujete jméno souboru a přibližné datum, kdy jste soubor naposledy editovali.
Zpět
 5. Práce s certifikátem 
 5.1 Získání certifikátu 
Certfikát lze získat od certifikační autority CESNETu, o osobní certifikát se žádá
zde.
 5.2 Převod do jiných formátů 
Certfikát je typicky uložen do internetového prohlížeče. Exportem certifikátu získáme soubor s příponou 
p12.
Pro použití v gridovém prostředí je třeba ho převést do formátu 
pem příkazy: 
 openssl pkcs12 -clcerts -nokeys -in usercert.p12 -out usercert.pem 
 openssl pkcs12 -nocerts -in usercert.p12 -out userkey.pem 
Zpět
-- 
JanaUhlirova - 01 Jul 2008