Oddaja in upravljanje poslov Nordugrid ARC
Za oddajo poslov prek vmesne programske opreme Nordugrid ARC, potrebujete naslednje:
- Digitalno potrdilo SiGNET,
- Odjemalca ARC,
- članstvo v nacionalni virtualni organizaciji
gen.vo.sling.si
.
Pridružite se lahko z veljavnim digitalnim potrdilom na spletni strani voms.sling.si.
Priporočamo, da uporabite navodila za svoj operacijski sistem za odjemalca ARC. Informacije o nastavitvi in namestitvi najdete v dokumentaciji.
Odjemalec ARC mora biti vedno zagnan kot uporabnik brez administratorskih pravic, saj je digitalno potrdilo izdano za uporabnika.
ARCINFO
Najprej preverite, da je uporabniški vemsnik nameščen:
$ arcinfo --version
Check cluster information (in case cluster is down or you aren't allowed to submit jobs, arcinfo won't return cluster endpoints).
$ arcinfo -c arc01.vega.izum.si
$ arcinfo -c arc02.vega.izum.si
ARCPROXY
Generira posredniški strežnik z vašimi poverilnicami:
$ arcproxy
Ogled informacij o generiranem vmesniškem strežniku:
$ arcproxy -I
Preverjanje, ali je članstvo v nacionalni splošni virtualni organizaciji aktivno:
$ arcproxy -S <virtual org.>
$ arcproxy -I
Za oddajo nalog prek vmesne programske opreme ARC morate biti član podskupine Vega gen.vo.sling.si
. Za zagon vmesniškega strežnika ARC, zaženite:
$ arcproxy -S gen.vo.sling.si:/gen.vo.sling.si/vega
ODDAJA POSLOV
Preverite, ali lahko oddate trivialni posel test.xrsl:
$ vi test.xrsl
&
(executable = /usr/bin/env)
(jobname = "test")
(stdout=test.log)
(join=yes)
(gridtime=1000)
(gmlog=log)
(memory=2000)
$ arcsub -cat arc01.vega.izum.si -S org.nordugrid.gridftpjob -o joblist.xml test.xrsl -d DEBUG
...
Job submitted with jobid: <job ID>
ARCSTAT (status posla v gruči)
Natisne status posla in nekaj dodatnih infomracij iz gruče, kot so ID, ime in status posal:
$ arcstat -c arc01.vega.izum.si
$ arcstat -c arc02.vega.izum.si
$ arcstat <job id>
ARCKILL
Prekini vse posle:
$ arckill
ARCCLEAN
Počisti vse posle:
$ arcclean
ARCGET
Ko je status naloge FINISHED (končano), lahko prenesete rezultate ene določene naloge:
$ arcget <job id>
Results stored at: 4fQLDmY3BxjnmmR0Xox1SiGmABFKDmABFKDmvxHKDmABFKDmiPhU9m
Jobs processed: 1, successfully retrieved: 1, successfully cleaned: 1
ali vseh zaključenih nalog:
$ arcget -a
ali nalog na seznamu datoteke joblist.xml:
$ arcget -i joblist.xml
Naloge ARC in MPI
Priprava datoteke xrsl z opisom zahtev:
&
(count = 4)
(jobname = "test-mpi")
(inputfiles =
("hellompi.sh" "")
("hellompi.c" "")
)
(outputfiles = ("result-mpi.txt" "") )
(executable = "hellompi.sh")
(stdout = "hellompi.log")
(join = yes)
(walltime = "10 minutes")
(gmlog = log)
(memory = 100)
(runtimeenvironment = "APPS/BASE/OPENMPI-DEFAULT")
Definicija posla vsebuje vhodne in izhodne datoteke, dnevniške datoteke in skripto za zagon posla (hellompi.sh
). To pomeni, da lokalna implementacija LRMS v SLING običajno s skripto SLURM SBASH kopira vse datoteke na delovni direktorij posla in zažene skripto.
Nastavitev (runtimeenvironment = "APPS / BASE / OPENMPI-DEFAULT"
) (aktivira trenutno pravilno vrednost za vsako gručo) aktivira nastavitve izbire strojne opreme, ustrezne za MPI (nizkolatenčne povezave InfiniBand) in nastavitve za privzeto knjižnico MPI. Okolje mora biti pripravljeno, da lahko zaženemo delo na standardni način (ker ne vemo, ali je na voljo srun
ali kaj drugega).
Skripta prevede program v C in ga zažene z mpirun:
#!/bin/bash
echo "Compiling example"
mpicc -o hello hellompi.c
echo "Done."
echo "Running example:"
mpirun --mca btl openib,self -np 4 \${PWD}/hello > result-mpi.txt
echo "Done."
ARCRUNNER
Arcrunner je orodje za enostavnejše upravljanje in oddajanje poslov arc. Orodje Arcrunner je na voljo na repozitoriju git:
Gitlab repo: povezava
- arcrunner -R < seznam gruč, ločenih z vejico>
- arcrunner -X
- arcrunner -P
- arcrunner -h dodatna pomoč
V repozitoriju so na voljo tudi dodatni programi python:
- clusterJobTest.py
- runLocally.py
- arc_manipulator.py
clusterJobTest.py: Uporaben za testiranje, ali skripte in datoteke xrsl pravilno delujejo preden se pošljejo v gručo. runLocally.py: Zažene posle na lokalnem računalniku namesto na gruči. arc_manipulator.py:
Arcrunner – dobra praksa
- Dodajte Arcrunner k PATH z ukazom:
export PATH = "$PATH:/home/$USER/arcrunnerhacks"
- Ustvarite alias
alias ar = "arcrunner -R ~/.arcrunner/clusters -P ~/.arcrunner / pass -X"
in nato pokličite kot:ar nameDat.xrsl.
- Omenjene skripte shranjujemo v
~/.bashrc
za zagon vsakokrat, ko zaženemo lupino bash.