Prehľad témy

  • Cieľ: Cieľom témy je získať poznatky ako úspešne spustiť predpripravený spúšťací skript

    Prerekvezity:  Kompilácia a spustenie programu


    PBS súbor

      Ak chceme spustiť úlohu v prostredí vysoko výkonného klastra, budeme musieť nastaviť dávkový súbor Portable Batch System (PBS). Súbor PBS definuje príkazy a prostriedky klastra používané na prácu. Tento PBS súbor je jednoduchý textový súbor, ktorý je možné ľahko upravovať pomocou editora, akým je napríklad Vi. Môže byť ľubovoľne pomenovaný, preto skripty s názvom napr. myscript.job, myscript.pbs alebo myscript pracujú rovnako správne.

      Spúšťací skript je jednoduchý shell skript. Skladá sa zo smerníc PBS, komentárov a vykonateľných príkazov. Znak # označuje koment, ale keď riadky začínajú s #PBS tak sú interpretované ako príkaz PBS. Prázdne riadky môžu byť zahrnuté pre lepšiu prehľadnosť.


    Potvrdenie úlohy na spustenie

      Po prihlásení na vysoko výkonný klaster je potrebné potvrdiť PBS job pre spustenie nami požadovanej úlohy. K tomu sa používa príkaz qsub, ktorý pošle úlohu do fronty PBS a požaduje dodatočné výpočtové zdroje. Príkaz qstat sa používa na kontrolu stavu úlohy vo fronte PBS. Pre zjednodušenie potvrdenia úlohy vytvoríme skript PBS a použijeme príkazy qsub a qstat pre interakciu s frontou PBS.


    Vytváranie PBS skriptu

      Pre nastavenie potrebných parametrov pre našu prácu, môžeme vytvoriť ovládací súbor obsahujúci príkazy, ktoré majú byť vykonané. Zvyčajne je to vo forme skriptu PBS. Tento skript je potom potvrdený do fronty PBS pomocou príkazu qsub.

      Nižšie je ukážkový PBS súbor s názvom my_job.sh a následné vysvetlenie každého riadku v súbore. 

    #!/bin/bash                  ###Prvý riadok v súbore identifikuje, ktorý interpreter bude použitý pre úlohu
    #PBS -N dimacs_job           ###Voliteľne môžeme pomenovať vykonávanú úlohu. Ak neposkytneme meno, bude použitý názov skriptu. Toto meno je súčasťou log súboru a taktiež sa zobrazí v zozname čakajúcich a spustených úloh. Môže byť dlhé až 15 znakov, bez medzier a začiatočný znak musí byť písmeno
    
    #PBS -A cislo_projektu ###Spôsobuje, že čas potrebný na úlohu je daný k <account>, projektu. Číslo projektu je reťazec z troch písmen nasledovaných tromi číslicami, napr. edv001. Táto možnosť je vyžadovaná pre každú úlohu
    #PBS -r n ###Deklaruje, či je úloha znovu spustiteľná. Môže mať parametre y pre áno a n pre nie #PBS -q batch ###Definuje cieľové umiestnenie pre úlohu. Môže obsahovať názov pre zoznam, server alebo zoznam na konkrétnom servery
    #PBS -l nodes=1:ppn=32:ht ###Definuje požiadavky na zdroje pre vykonanie úlohy. Ak nie je zadané, zdroje sú používané bez obmedzenia. Tento konkrétny zápis vyžaduje jeden node a tridsaťdva virtuálnych procesorov pre node
    #PBS -v tpt=1 ###Exportuje všetky premenné prostredia z potvrdzujúceho shellu do shellu vykonávača úloh. Neodporúča sa použiť bez vytvorenia potrebného prostredia medzi vykonávačom úlohy


    #PBS -l mem=512mb ###Definuje maximálne požadované množstvo RAM pamäte pre vykonanie úlohy. Môže byť v kb pre kilobajty, mb pre magabajty alebo gb pre gigabajty
    #PBS -l walltime=480:00:00 ###Maximálny skutočný čas, počas ktorého môže byť úloha v stave spustená. Udáva sa v HH:MM:SS
    echo Working directory is $PBS_O_WORKDIR ###Výpis pracovného adresára cd $PBS_O_WORKDIR ###Zmenenie adresára na pracovný echo Running on host `hostname` ###Spúšťa dodatočné informácie echo Time is `date` echo Directory is `pwd` echo This jobs runs on the following processors: echo `cat $PBS_NODEFILE` NPROCS=`wc -l < $PBS_NODEFILE` ###Definuje počet procesorov echo This job has allocated $NPROCS cpus export SOFTDIR="/home/evesel/work" export Home=$PWD export Project=DSJC1000-5 export OMP_NUM_THREADS=16 export WorkDir=/mnt/local/$USER/$PBS_JOBID #----------------------------------------------------------------------------------------------------------------------# #rm -rf $WorkDir; mkdir -p $WorkDir; cd $WorkDir ${SOFTDIR}/pmc -a 0 -f $Home/$Project.mtx -t $OMP_NUM_THREADS > $Home/$Project.log #cd; rm -rf $WorkDir #----------------------------------------------------------------------------------------------------------------------#


    Spustenie úlohy

      Po vytvorení a pripravení spúšťacieho skriptu, úlohu spustíme príkazom:

    qsub <názov_spúštiaceho_skriptu>

      Informácie o spustených úlohách získame príkazom:

    qstat

      Potvrdenú úlohu zrušíme príkazom:

    qdel <job_id>


    Zdroj: https://www.osc.edu/supercomputing/batch-processing-at-osc/job-scripts

              https://hpcc.usc.edu/support/documentation/running-a-job-on-the-hpcc-cluster-using-pbs/


    Videotutoriál na spustenie úlohy:

    spustenie_ulohy.avi