Macierz zadań

Z KdmWiki
Przejdź do nawigacji Przejdź do wyszukiwania
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

< Podręcznik użytkownika KDM < System kolejkowy < Macierz zadań

Czym jest macierz zadań

Macierz zadań (job array) stanowi zbiór zadań uruchomionych jednocześnie.

Mechanizm ten pozwala w łatwy i szybki sposób uruchomić kilka zadań jednocześnie.

Każde zadanie w macierzy posiada indeks, który jest przechowywany w zmiennej środowiskowej PBS_ARRAY_INDEX.

Jak utworzyć macierz zadań?

W celu utworzenia macierzy zadań należy użyć w skrypcie opcji –J i podać zakresów indeksów macierzy:

  #PBS -J i-f:s

gdzie i to indeks początkowy, f – końcowy, a s definiuje krok. Parametr s jest opcjonalny, domyślnie przyjmuje wartość 1.

W celu utworzenia macierzy dziesięciu zadań indeksowanych od 1 do 10, należy użyć w skrypcie polecenia:

  #PBS -J 1-10

W celu utworzenia macierzy zadań można również podać opcję –J przy zlecaniu obliczeń:

  qsub -l walltime=1:00:00 -J 1-3 hello.sh

Powyższa komenda spowoduje uruchomienie trzech zadań zdefiniowanych w skrypcie hello.sh. Zadania te mają przypisane kolejno indeksy 1, 2 i 3, które są przechowywane w zmiennej PBS_ARRAY_INDEX.

Jak sprawdzić status macierzy zadań

Macierz zadań jest oznaczona w systemie kolejkowym numerem z kwadratowym nawiasem

  jobID[]

zatem w celu sprawdzenia statusu macierzy zadań, należy użyć polecenia:

  qstat jobID[]

W celu sprawdzenia statusu wszystkich zadań w macierzy należy użyć polecenia:

  qstat –t jobID[]
  ~/test_array_jobs > qstat -t 1030789[]
  Job id                 Name             User              Time Use S Queue
  ---------------------  ---------------- ----------------  -------- - -----
  1030789[].ossachilles  hello.sh         3107mach                 0 B vshort
  1030789[1].ossachilles hello.sh         3107mach          00:00:00 E vshort
  1030789[2].ossachilles hello.sh         3107mach          00:00:00 R vshort
  1030789[3].ossachilles hello.sh         3107mach          00:00:00 R vshort

W celu sprawdzenia statusu pojedynczego zadania w macierzy należy użyć polecenia:

  qstat jobID[indeks]

W celu sprawdzenia szczegółowych informacji o macierzy zadań należy użyć polecenia:

  qstat –f jobID[]

Szczególnie przydatne mogą być informacje o ilości zadań z macierzy w poszczególnych statusach:

  ~/test_array_jobs > qstat -f 1031517[] | grep array_state_count
      array_state_count = Queued:4 Running:16 Exiting:0 Expired:0

Działające macierze zadań są oznaczone w systemie kolejkowym literą B “batch”, a nie R „running”.

Przykład użycia