Uporaba gruče IJS
Gruča IJS je dostopna za uporabnike virtualne organizacije nsc.ijs.si preko strežnika nsc.ijs.si z vmesnikom ARC. Trenutno za dostop ni omejitev, v primeru prevelike zasedenosti pa upabljamo prioritete in sistem "fair share" (uporabniki skupin, ki močno uporabljajo gručo, dobijo nižjo prioritet). Za dostop morate pridobiti pridobiti osebno elektronsko potrdilo in se prijaviti v virtualno organizacijo. Uporabniki gen.vo.sling.si imajo prav tako dostop (odprti nacionalni dostop), a z nižjo prioriteto.
Za interaktivni dostop morate pridobiti še uporabniško ime SLING (zaprosite na support@sling.si) in se registrirati na http://fido.sling.si/. Interaktivni dostop poleg vmesne programske opreme ARC omogoča tudi uporabo sistema SLURM. Navodila za uporabo so na voljo tudi na spletnih straneh za dokumentacijo SLING.
Primer testne naloge
Najprej zagotovite, da imate posredno potrdilo (proxy certificate):
Vsaka naloga mora imeti opisno datoteko:
V tem primeru namesto zagonske skriptne datoteke uporabljamo sistemski ukaz /usr/bin/env, ki izpiše okoljske spremenljivke v sistemu.
Znak & označuje, da mora arcsub pri izvršitvi naloge uporabiti vse elemente datoteke xrsl.
- executable je ukaz, ki ga bomo izvršili na gruči,
- jobname označuje ime naloge,
- join=yes bo združil izpis STDERR in STDOUT v STDOUT,
- stdout označuje, kakšno bo ime izhodnega dokumenta,
- gmlog označuje, kam bodo shranjene dnevniške datoteke upravljavca gruče (če kaj ne deluje, je datoteka koristna za odkrivanje napak)
- memory=2000 označuje, da za nalogo potrebujemo 2GB pomnilnika. Vrednost vedno označujemo v MB in na 1 jedro
Oddajanje nalog
Nalogo lahko pošljete s preprostim ukazom:
# Submitting your test job: arcsub -c nsc.ijs.si test1.xrsl
Če naletite na težave, lahko vklopite veliko dodatne diagnostike:
Potem lahko preverite status svojih nalog:
Status nalog bo viden tudi tu: Spletni monitor nalog v slovenskem omrežju SLING
Z ukazom arcls lahko vidite seznam datotek v direktorijih, kjer dela naloga.
Z ukazom arcget lahko vidite izpis standarniz izhodnih kanalov (STDERR, STDOUT) naloge.
Prevzemanje nalog
Ko je naloga končana, jo lahko prevzamte z ukazom arcget - argument je lahko ID naloge ali ime naloge; s paremetrom -a lahko prevzamete vse končane naloge :
arcget gsiftp://nsc.ijs.si/jobs/<long-hash>
arcget test1
arcget -a
Prevzamete lahko končane naloge, ne glede na to, ali so končale uspešno ali ne. Po koncu naloge se bodo ohranile samo datoteke, ki so bile navedene kot izodne datoteke.
Naloga z zagonsko skripto
Najprej pripravimo opis naloge hellogrid.xrsl
& (jobName="HelloGrid") (executable="run.sh") (inputfiles= ("run.sh" "") ) (stdout="out.txt") (stderr="err.txt") (gmlog="gmlog")
Zagonska skripta za nalogo run.sh mora biti v direktoriju, iz katerega boste nalogo poslali. Ce bi želeli uporabiti datoteko, dostopno kje drugje, je za to namenjen drugi argument v strukturi:
(inputfiles= ("run.sh" "http://pot.do.datoteke/run.sh") )
Če tega ne potrebujete, lahko vhodno datoteko, ki je navedena tudi kot executable, pri inputfiles izpustite.
Uredimo še run.sh:
Nalogo pošljemo v izvajanje:
arcsub -c nsc.ijs.si hellogrid.xrsl
Naloga v skriptnem jeziku
Primer naloge v Pythonu - opis naloge bo v datoteki vsota.xrsl:
& (jobName="vsota") (executable="vsota.sh") (inputfiles= ("vsota.py" "vsota.py") ) (outputfiles=("/" " ") ) (stdout="out.txt") (stderr="err.txt") (gmlog="gmlog")
Skripte vsota.sh nismo navedli med vhodnimi datotekami. Kot izodno datoteko smo navedli kar "/" - vse datoteke bodo ohranjene.
Program vsota.py:
Zagonska skripta vsota.sh:
Primer naloge v C:
primer.c in primer.sh se morata nahajati v direktoriju, iz katerega boste nalogo poslali.
Najprej pripravimo opis naloge prime-number.xrsl:
& (jobname="NalogaC") (executable="prime-number.sh") (inputfiles= ("prime-number.c" "") ) (stdout="prime-number.txt") (stderr="prime-number.err") (gmlog="gmlog")
Nato še program prime-number.c
1 #include<stdio.h>
2
3 int main()
4 {
5 int n = 1000, i = 3, count, c;
6
7 if ( n >= 1 )
8 {
9 printf("First %d prime numbers are :\n",n);
10 printf("2\n");
11 }
12
13 for ( count = 2 ; count <= n ; )
14 {
15 for ( c = 2 ; c <= i - 1 ; c++ )
16 {
17 if ( i%c == 0 )
18 break;
19 }
20 if ( c == i )
21 {
22 printf("%d\n",i);
23 count++;
24 }
25 i++;
26 }
27
28 return 0;
29 }
In zagonska skripto prime-number.sh:
Navodila in dokumentacija
Priporočljivi viri:
Navodila so pripravljena na osnovi dela Barbare Krašovec v okviru delavnic SLING.
Za obveščanje o delu gruče se prijavite na nsc-users@ijs.si
Za pomoč, podporo, navodila in napake v dokumentaciji se obrnite na nsc-info@ijs.si