Návody
- Prihlásenie
- Enviroment Moduly
- Spustenie úlohy
- Kontrola spustených úloh
- Monitorovanie klastra
- Zastavenie úlohy
- Viac informácií
Prihlásenie
Pred prvým prihlásením na klaster musí používateľ najskôr požiadať o vytvorenie používateľského účtu a evidenciu projektu/úlohy v používateľskej zóne
Po získaní autentifikačných údajov je prihlásenie možné prostredníctvom ssh (len zo siete STU alebo sietí partnerských organizácií), kde prebehne autentifikácia pomocou prihlasovacieho mena a hesla.
ssh [username@]login.hpc.stuba.sk
V prostredí OS Windows doporučujeme použiť terminál s emuláciou X11 a FTP klientom MobaXterm
Enviroment moduly
V prostredí klastra sú k dispozícii moduly, pomocou ktorých je možné rýchle nastavenie ciest k vybraným knižniciam, programom, kompilátorom, alebo nastavenie rôznych "env" premenných.
Príkaz na zistenie aktuálne dostupných modulov:
% module avail ------------------------------------------ /etc/modulefiles ----------------------------------------- cuda/6.5 nwchem/6.1.1 openmpi/1.4.5 openmpi/1.4.5-int8 openmpi/1.6.5 intel/libs_2011 gcc/4.7.3 dirac/13.1 mvapich2/1.9 openmpi/1.6.5-int8 orca/2.9.1 intel/composer_xe_2011 ...
Zobrazenie modulu a jeho načítanie:
% module show openmpi ------------------------------------------------------------------- /apps/modulefiles/openmpi/1.6.5: module-whatis GCC473 Open MPI v1.6.5 library prepend-path PATH /apps/mpi/gnu/openmpi/1.6.5/bin/ prepend-path LD_LIBRARY_PATH /apps/mpi/gnu/openmpi/1.6.5/lib prepend-path MANPATH /apps/mpi/gnu/openmpi/1.6.5/share/man ... ------------------------------------------------------------------- % module load openmpi
Ďalšie možnosti:
module unload < modulename > -> vypnúť modul module purge -> vypnúť všetky moduly module list -> zobraziť načítané moduly module whatis -> zobraziť dostupné moduly aj s popisom module help < modulename > -> zobraziť nápovedu ak je dostupná
Spustenie úlohy
Kompilácia aplikácií
Kompilácia paralelnej aplikácie GCC kompilátorom s využitím OpenMPI knižnice
% module load openmpi % mpicc -O2 /apps/examples/hello-world.c -o hello-world // alebo napr. % module load gcc/4.7.3 // volba kompilátora iného ako default Redhat GCC 4.4.7 % gcc -march=native -O2 hello-world.c -I/apps/mpi/gnu/openmpi/1.6.5/include -L/apps/mpi/gnu/openmpi/1.6.5/lib -lmpi -o hello-world
Zadávanie úloh do výpočtovej fronty
Na spustenie úlohy je nutné najprv vytvoriť spustiteľný skript, ktorý sa zaradí do fronty príkazom
% qsub simple.pbs
Parametre pre správcu front (PBS/Torque) je možné zadávať priamo aj do príkazového riadku
% qsub -A projektX -l nodes=1:ppn=12,pmem=1024mb,walltime=04:00:00 my_job.pbs
Príklad jednoduchého skriptu sériovej úlohy
#!/bin/sh # názov úlohy vo fronte #PBS -N simple_job # skript žiada o jeden výpočtový uzol, jedno procesorové jadro a 1GB fyzickej pamäte na 4 hodiny #PBS -l nodes=1:ppn=1,pmem=1gb,walltime=04:00:00 # Voľba projektu je povinný parameter. Zoznam evidovaných projektov je možné získať po prihlásení na www portal #PBS -A < projekt-id > # výber výpočtovej fronty "serial" #PBS -q serial # po skončení úlohy chybový výstup zapísať do súboru "job.stderr" #PBS -e job.stderr # štandardný výstup zapísat do súboru "job.stdout" #PBS -o job.stdout # žiadosť o zaslanie emailu pri spustení úlohy (-b/begin), dokončení(-e/end), zrušení (-a/abort) # Neposielať email (-n/none). Lokálne čítanie správ je možné programom "mutt". #PBS -m ae # zaslanie emailu na inú, ako lokálnu adresu #PBS -M juraj.vedec@stuba.sk # kopírovanie vstupných dát na lokálny disk (/scratch) cp my_* $TMPDIR cd $TMPDIR ./my_prog $MY_ARGS
Príklad skriptu paralelnej úlohy aj s načítaním MPI knižnice
#!/bin/bash # #PBS -N HelloWorld #PBS -q parallel #PBS -e SimpleMPI.stderr #PBS -o SimpleMPI.stdout #PBS -A MPI-projekt # skript žiada o 2 výpočtové uzly, 6 procesorových jadier na uzol, pre každé jadro/proces 200MB fyzickej pamäte na 2 minúty #PBS -l nodes=2:ppn=6,pmem=200mb,walltime=00:02:00 #PBS -m ea application="/apps/examples/hello-world" # štandardný výstup z aplikácie sa bude priebežne zapisovať do súboru "OUT" options="> OUT" . /etc/profile.d/modules.sh module purge module load openmpi/1.6.5 # Príklad využitia premenných (PBS/Torque) np=$PBS_NP ppn=$PBS_NUM_PPN numnodes=$PBS_NUM_NODES CMD="mpirun --report-bindings $application $options" ############################################################### # prechod do priečinka odkiaľ bola spustená úloha cd $PBS_O_WORKDIR echo -e "Changed directory to `pwd`.n" JOBID=`echo $PBS_JOBID | sed -e "s/..*$//"` echo -e "JobID: $JOBIDn======" echo "Time: `date`" echo "Running on master node: `hostname`" echo "Current directory: `pwd`" if [ -r "$PBS_NODEFILE" ]; then cat $PBS_NODEFILE | uniq > machfile echo -e "nNodes allocated:n================" echo `cat machfile | sed -e "s/..*$//g"` fi echo -e "nnumprocs=$np, numnodes=$numnodes, ppn=$ppn" echo -e "nExecuting command:n==================n$CMDn" eval $CMD
Spustenie interaktívnej úlohy
% qsub -I -N Interactive_job -A <project_name> -q gpu -l nodes=1:ppn=2,walltime=10:00 qsub: waiting for job 2894.one.grid.stuba.sk to start qsub: job 2894.one.grid.stuba.sk ready gpu1:~ > lstopo Machine (24GB) NUMANode L#0 (P#0 24GB) + Socket L#0 + L3 L#0 (12MB) L2 L#0 (256KB) + L1 L#0 (32KB) + Core L#0 + PU L#0 (P#0) L2 L#1 (256KB) + L1 L#1 (32KB) + Core L#1 + PU L#1 (P#1) NUMANode L#1 (P#1)... gpu1:~ > exit logout qsub: job 2894.one.grid.stuba.sk completed %
Spustenie interaktívnej úlohy a aktivovanie X11 forwarding
% qsub -I -X -N Interactive_X11_job -A <project_name> -q gpu -l nodes=1:ppn=2,walltime=10:00 gpu1:~ xterm gpu1:~ > exit
Kontrola spustených úloh
K dispozícii je niekoľko príkazov na overenie statusu úlohy vo fronte: qstat, showq a checkjob
Zobrazenie zoznamu úloh vo frontách a základných informácii o ich stave.
% qstat -a, showq
qstat ponúka aj podrobné informácie o všetkých, alebo jednej konkrétnej úlohe. checkjob aplikovateľný iba na vlastné úlohy používateľa je užitočný pri hladaní rôznych príčin nespustenia a zablokovania úlohy vo fronte.
% qstat -f [jobid] % checkjob < jobid >
Výpis úloh, ktoré sú z nejakého dôvodu blokované.
V príklade je zoznam blokovaných úloh, ktoré prekračujú celkový limit alokovaných jadier a maximálny strojový čas pridelený na jedného uživateľa. (R: requested, U: used )
% showq -b JobName User Reason 2798 userX1 violates active HARD MAXPROC limit of 120 for user userX1 (R: 48, U: 96) 2869 userY2 violates active HARD MAXPS limit of 50000000 for user userY2 (R: 20000000, U: 48168217)
Ak používateľ zváži, že úloha nevyužije pôvodne vyžadované zdroje. Príkazom qalter [-l resource_list] je možné nároky na rezervované zdroje znížiť a tak ich uvoľniť pre jej spustenie, prípadne spustenie ďalších úloh.
% qalter -l nodes=2:ppn=2,pmem=2000mb,walltime=01:00:00 < jobid >
Monitorovanie klastra
Celkový prehľad o využití/zaťažení jednotlivých uzlov klastra je možné získať pomocou príkazu qfree [-h].
% qfree CLUSTER STATE SUMMARY Local GPFS Storage Core 1 2 3 4 5 6 7 8 9 10 11 12 load FreeMem Scratch Read Write State Node Queue [GB] [GB] [MB/s] [MB/s] comp07 T [-] [-] [-] [-] [-] [-] [-] [-] [-] [-] [-] [-] - - - - - down comp08 T [-] [-] [-] [-] [-] [-] [-] [-] [-] [-] [-] [-] - - - - - down comp10 S [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] 12.09 44.33 3.5 (0.2%) 0.00 0.00 job-exclusive comp11 S [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] 12.02 44.61 0 (0.0%) 0.00 0.00 job-exclusive comp12 S [X] [X] [X] [X] [X] [X] [X] [X] [ ] [ ] [ ] [ ] 8.06 44.67 0 (0.0%) 0.00 0.00 free comp13 S [X] [X] [X] [X] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] 4.02 44.67 0 (0.0%) 0.00 0.00 free comp25 P [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] 0.00 44.52 0 (0.0%) 0.00 0.00 free comp26 P [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] 9.46 41.48 0.1 (0.0%) 0.00 0.10 job-exclusive comp27 P [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] 0.00 44.64 0 (0.0%) 0.00 0.00 free comp28 P [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] 12.00 40.47 0 (0.0%) 22.95 1.50 job-exclusive comp29 P [O] [O] [O] [O] [O] [O] [O] [O] [O] [O] [O] [O] 12.00 20.47 0 (0.0%) 0.00 0.00 job-exclusive comp30 P [O] [O] [O] [O] [O] [O] [O] [O] [O] [O] [O] [O] 11.99 38.53 0 (0.0%) 6.09 1.22 job-exclusive comp31 P [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] [X] 12.00 20.42 0 (0.0%) 0.00 0.00 job-exclusive ...
CPU jadrá obsadené vlastnými úlohami sú zvýraznené žltou farbou (ak je podporované terminálom). Na príslušné výpočtové uzly je možné sa prihlásiť
(napr. % ssh comp25) a získať tak podrobné informácie o spustenej úlohe a stave jednotlivých uzlov. Dostupné sú štandardné funkcie ako top, vmstat, iostat, ps ...
Vymazanie úlohy z fronty a jej zastavenie
% qdel < jobid > jobid
Viac informácií
Ďalšie informácie je možné získať z manuálov priamo v systéme, alebo zo stránok dodávateľa programového vybavenia Adaptive Computing Inc.