= 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 [[nsc/Elektronsko potrdilo za znanost|pridobiti osebno elektronsko potrdilo]] in se [[nsc/Avtorizacija VOMS|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 [[https://doc.sling.si/|spletnih straneh za dokumentacijo SLING.]] == Primer testne naloge == Najprej zagotovite, da imate posredno potrdilo (proxy certificate): {{{#!highlight bash arcproxy -S nsc.ijs.si \ || echo "arcproxy failed; register and try again." && exit echo '' }}} Vsaka naloga mora imeti '''opisno datoteko''': {{{#!highlight bash echo 'Preparing for a test job' cat > test1.xrsl << FNORD & (executable = /usr/bin/env) (jobname = "test1") (stdout=test.log) (join=yes) (gridtime=1000) (gmlog=gmlog) (memory=2000) FNORD }}} 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: {{{#!highlight bash # this is for looking at problems: arcsub -c nsc.ijs.si test1.xrsl -d DEBUG }}} Potem lahko preverite status svojih nalog: {{{#!highlight bash echo 'This is how we test for job status - bit it takes 5 minutes for the infosystem to catch up: arcstat -a' arcstat -a }}} Status nalog bo viden tudi tu: [[http://www.sling.si/gridmonitor/loadmon.php|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/}}} * {{{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}}}: {{{#!highlight bash #!/bin/sh echo "Hello, grid" }}} 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}}}: {{{#!highlight python sum = 0 print "Izpisi stevilke: " for x in ["1", "1050","164999"]: print x print "Sestej stevilke " for y in [1,1050,164999]: sum=sum+y print sum }}} Zagonska skripta {{{vsota.sh}}}: {{{#!highlight bash #!/bin/sh python vsota.py }}} 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}}} {{{#!highlight c #include int main() { int n = 1000, i = 3, count, c; if ( n >= 1 ) { printf("First %d prime numbers are :\n",n); printf("2\n"); } for ( count = 2 ; count <= n ; ) { for ( c = 2 ; c <= i - 1 ; c++ ) { if ( i%c == 0 ) break; } if ( c == i ) { printf("%d\n",i); count++; } i++; } return 0; } }}} In zagonska skripto prime-number.sh: {{{#!highlight bash #!/bin/sh date gcc prime-number.c -o primenumber ./primenumber date }}} == Navodila in dokumentacija == Priporočljivi viri: * [[http://doc.sling.si/|Navodila in gradivo na spletnih straneh SLING]] * [[http://www.nordugrid.org/papers.html|Dokumentacija na NorduGird ARC]] * [[http://www.nordugrid.org/documents/arc-ui.pdf|ARC Client User Manual]] * [[http://www.nordugrid.org/documents/xrsl.pdf|ARC XRLS Job Description Language Reference]] * [[http://www.sling.si/sling/vec/dogodki/|Starejše delavnice SLING]] * [[https://slurm.schedmd.com/|Navodila za interaktivno uporabo s sistemom SLURM]] ---- {i} ''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