Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Najjednostavniji oblik SGE poslova su serijski poslovi koji zahtijevaju samo jedan procesor za izvođenje. Za njih obično nije potrebno navoditi nikakve posebne parametre, nego se samo navodi ime programa.

Primjeri korištenja:

  1.  Primjer skripte bez dodatnih parametara

    Code Block
    languagebash
    #!/bin/bash 
    
    date


  2. Primjer jednostavne skripte s parametrima

    Code Block
    languagebash
    #!/bin/bash 
    
    #$ -N Date_SGE_script 
    #$ -o Date_SGE.out 
    #$ -e Date_SGE.err 
    
    date


  3. Primjer izvođenja programa iz trenutnog direktorija

    Code Block
    languagebash
    titlemoj_program.sge
    #!/bin/bash
    
    #$ -N mojprog
    #$ -P local
    #$ -o mojprog.out
    #$ -e mojprog.err
    #$ -cwd
    
    mojprog


...

Code Block
languagetext
#$ -pe <tip_paralelnog_posla> <N>,[<Ni>,...]<S>-<E>,[<Si>-<Ei>,]

Primjeri korištenja:

  1. Posao za izvođenje zahtijeva 14 procesorskih jezgara:

    Code Block
    #$ -pe *mpi 14


  2. Broj dodijeljenih procesorskih jezgara može biti između 2 i 4:

    Code Block
    #$ -pe *mpi 2-4


  3. Broj dodijeljenih procesorskih jezgara može biti 5 ili 10:

    Code Block
    #$ -pe *mpi 5,10


  4. Broj dodijeljenih procesorskih jezgara može biti 1 ili između 2 i 4:

    Code Block
    #$ -pe *mpi 1,2-4


...

Samo pokretanje paralelnih poslova je specifično jer postoje alati za pokretanje podnaslova (npr. mpirun) koji sami obavljaju raspoređivanje podposlova po čvorovima. Kada SGE dodijeli čvorove paralelnom poslu, popis čvorova spremi u datoteku $TMPDIR/machines koja se unutar skripte za opis posla prenosi kao parametar paralelnim poslovima (npr. mpirun, mpiexec, pvm...).

Primjer startne skripte za pokretanje jedne vrste paralelnog posla:

...

Vrijednost <početak> je identifikator prvog zadatka, <kraj> identifikator posljednjeg zadatka, a <korak> vrijednost za koju se uvećava svaki sljedeći identifikator između <početak> i <kraj>. SGE sprema identifikator svakog zadatka u varijablu $SGE_TASK_ID, pomoću koje korisnici mogu dodijeliti različite parametre pojedinom zadatku. Zadaci mogu biti serijski ili paralelni poslovi.

Primjeri korištenja

  1. Primjer skripte za pokretanje polja poslova od 10 serijskih poslova:

    Code Block
    languagebash
    #!/bin/bash
    
    #$ -N job_array_serial
    #$ -cwd
    #$ -o output/
    #$ -j y
    #$ -t 1-10
    
    ./starSeeker starCluster.$SGE_TASK_ID


  2. Primjer skripte za pokretanje polja poslova od 10 paralelnih poslova:

    Code Block
    languagebash
    #!/bin/bash
    
    #$ -N job_array_parallel
    #$ -cwd
    #$ -o output/
    #$ -j y
    #$ -t 1-10
    
    mpiexec -machinefile $TMPDIR/machines ./starseeker starCluster.$SGE_TASK_ID


...

Code Block
languagetext
Your "qrsh" request could not be scheduled, try again later.

Primjeri korištenja

  1. Izravan pristup do komandne linije testnog čvora:

    Code Block
    languagetext
    qrsh


  2. Interaktivno izvođenje naredbe

    Code Block
    languagetext
    qrsh /home/user/moja_skripta


  3. Interaktivno izvođenje aplikacije s grafičkim sučeljem

    Code Block
    languagetext
    qrsh -DISPLAY=10.1.1.1:0.0 <moja_skripta>


...

Warning

Privremeni direktorij na /scratch disku se briše automatski po završetku izvršavanja posla.

Primjeri korištenja:

  1. Primjer jednostavnog korištenja $TMPDIR varijable:

    Code Block
    languagebash
    #!/bin/bash 
    
    #$ -N scratch_1 
    #$ -cwd 
    #$ -o output/scratch.out 
    #$ -j y
    #$ -l scratch=50 
    
    cd $TMPDIR 
    pwd > test 
    cp test $SGE_O_WORKDIR


  2. Primjer kopiranja podataka na scratch disk:

    Code Block
    languagebash
    #!/bin/bash 
    
    #$ -N scratch_2 
    #$ -cwd 
    #$ -o output/scratch.out 
    #$ -j y
    #$ -l scratch=50 
    
    mkdir -p $TMPDIR/data 
    cp -r $HOME/data/* $TMPDIR/data 
    
    python3.5 main.py $TMPDIR/data


Ukoliko privremeni podaci premašuju 500 GB potrebno je koristiti /shared. Za razliku od scratch-a, direktorij na shared-u je potrebno ručno kreirati i nema automatskog uklanjanja direktorija.

Primjer korištenja:

Code Block
languagebash
#!/bin/bash 

#$ -N shared
#$ -cwd 
#$ -o output/shared.out 
#$ -j y 

mkdir -p /shared/$USER/$TMPDIR
cd /shared/$USER/$TMPDIR

pwd > test
cp test $SGE_O_WORKDIR

...

Info

Vrijednosti resursa definirane u startnoj skripti posla postavljaju se po procesu. Na primjer, ukoliko korisnik na jednom čvoru zahtijeva 3 procesorske jezgre, vrijednosti svih zatraženih resursa biti će pomnožene s 3.

Primjeri korištenja:

  1. Primjer posla koji zahtijeva 20 CPU jezgara i 10 GB radne memorije po procesu (poslu će ukupno biti dodijeljeno 200 GB radne memorije):

    Code Block
    #$ -pe *mpi 20
    #$ -l memory=10


  2. Posao zahtijeva 100 GB prostora na scratchu:

    Code Block
    #$ -pe *mpisingle 4
    #$ -l scratch=25


...

  • b - početak izvođenja
  • a - greška u izvođenju
  • e - završetak izvođenja
  • n - ne slati obavijesti (pretpostavljena opcija)

Primjer korištenja:

Code Block
languagetext
#$ -m ae
#$ -M moj@mail.com

...

Opcije naredbe qstat je moguće kombinirati što je naročito bitno kada je potrebno filtrirati kroz nekoliko stotina poslova.

Primjeri korištenja:

  1. Prikaz svih poslova u redu čekanja

    Code Block
    $ qstat -u "*" -s p


  2. Prikaz poslova svih korisnika koji se trenutno izvršavaju i zahtijevali su paralelnu okolinu a16-mpi

    Code Block
    $ qstat -u "*" -s r -pe a16-mpi


  3. Prikaz svih poslova i čvorova korisnika pero

    Code Block
    $ qstat –s r –f –u pero


  4. Prikaz svi poslova koji se trenutno izvršavaju na čvorovima s grafičkim procesorima:

    Code Block
    $ qstat –u "*" -q gpu.*.q


...

Code Block
-j <ID_posla> : detaljan opis pojedinih poslova
-h <adresa_čvora> : statistike za pojedine čvorove
-q <ime_reda> : statistike za pojedine redove
-o <ime_korisnika> : statistike za pojedine korisnike
-pe <ime_paralelne_okoline> : statistike za pojedine paralelne okoline
-slots <broj_procesora> : statistike za poslove za određeni broj procesora
-P <projekt> : prikaz sažetka potrošnje definiranog projekta

Primjeri korištenja:

  1. Detaljne informacije o svim poslovima izvršenim na klasteru (oprez: velika količina podataka):

    Code Block
    $ qacct -j


  2. Prikaz informacija o svim poslovima definiranog korisnika:

    Code Block
    $ qacct -j -o <korisnik>

    Prikaz sažetka potrošnje računalnih resursa definiranog korisnika (ako se ne definira <korisnik>, prikazuju se podaci za sve korisnike):

    Code Block
    $ qacct -o <korisnik>


  3. Prikaz informacija o svim poslovima za definirani projekt:

    Code Block
    $ qacct -j -P <projekt>

    Prikaz sažetka potrošnje definiranog projekta (ako se ne definira <projekt>, prikazuju se podaci za sve projekte):

    Code Block
    $ qacct -P <projekt>


...