Version 54 (modified by mmamonski, 13 years ago) (diff)

--

QCG-SimpleClient

QCG-SimpleClient oferuje prosty, wzorowany na poleceniech systemu kolejkowego, interfejs do infrastruktury QCG.

Środowisko

Maszyna dostępowa: qcg.man.poznan.pl

Wymagany moduł: qcg

module load qcg

Polecenia:

  • qcg-sub - zlecenie zadania do wykonania na infrastrukturze QCG zgodnie z uproszczonym opisem,
  • qcg-list - wyświetlenie listy zleconych zadań wraz z informacjami o nich,
  • qcg-info - wyświetlenie szczegółowej informacji o danym zadaniu,
  • qcg-peek - podgląd wyjścia (stdout, stderr) aplikacji,
  • qcg-proxy - utworzenie certyfikatu proxy użytkownika,
  • qcg-cancel - anulowanie zadania.

Składnia poleceń:

  • qcg-sub plik_z_opisem - ścieżka do pliku z uproszczonym opisem zadania
      qcg-sub /home/piontek/tasks/date.qcg
      qcg-sub ./tasks/date.qcg
    
  • qcg-list liczba jednostka - zadania z ostatnich "liczba" dni ("d"), godzin ("h"), minut ("m")
      qcg-list 7d
      qcg-list 1m
    
  • qcg-info jobId pokaz_opis - jobId - identyfikator eksperymentu. Jeśli pokaz_opis ma wartość "true" to dodatkowo wyświetlany jest opis zadnia. Domyślną wartością jest "false".
      qcg-info J1331196390748_date_3099 true
    
  • gcg-peek jobId [liczba_znaków] - jobId - identyfikator eksperymentu, liczba_znaków - liczba znaków do wyświetlenia,
    qcg-peek J1331196390748_date_3099
    qcg-peek J1331196390748_date_3099 10
    
  • qcg-proxy
    qcg-proxy
    
  • qcg-cancel jobId - identyfikator eksperymentu
      qcg-cancel J1331196390748_date_3099
    

Opis zadania:

Zlecany plik jest plikiem tekstowym, który może zawierać dyrektywy infrastruktury QCG. Dyrektywą jest każda linia zaczynająca się od "#QCG". WAŻNE: Jeżeli w pliku nie zdefiniowano dyrektywy "executable" ani "application" uruchamiany jest zlecany plik z opisem.

Lista dyrektyw

  • queue - wybrana kolejka systemu kolejkowego.
    #QCG queue=plgrid
    
  • note - krótka informacja o zadaniu.
    #QCG note=moje pierwsze zadanie QCG
    
  • name - dyrektywa określająca nazwę zadania. Nazwa zadania pojawi się jako końcówka identyfikatora zadania.
    #QCG name=nobel-experiment
    
  • output - lokalizacja gdzie ma być przegrane standardowe wyjście zadnia (stdout). Jeśli nie jest to lokalizacja gsiftp:// zakłada się, że jest ustalana względem katalogu, z którego zlecono zadanie.
    #QCG output=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/outputs/${JOB_ID}.output
    #QCG output=output.txt
    
  • error - lokalizacja gdzie ma być przegrany standardowe wyjście błędów zadnia (stderr). Jeśli nie jest to lokalizacja gsiftp:// zakłada się, że jest ustalana względem katalogu, z którego zlecono zadanie.
    #QCG error=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/errors/${JOB_ID}.error
    #QCG error=error.txt
    
  • host - nazwa maszyny na której może być uruchomione zadanie. Może być wiele takich dyrektyw dla alternatywnych maszyn.
    #QCG host=reef.man.poznan.pl
    #QCG host=zeus.cyfronet.pl
    
  • stage-in-file - dyrektywa kopiowania pliku wejściowego. Składnia "lokalizacja_źródłowa -> nazwa_docelowa_pliku". Lokalizacja źródłowa może być lokalizacją gsiftp:// lub ścieżką do pliku. W tym drugim przypadku zakłada się, że jest ustalana względem katalogu, z którego zlecono zadanie.
    #QCG stage-in-file=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs/input.txt -> input.txt
    #QCG stage-in-file=input_file.txt -> input.txt
    
  • stage-in-dir - dyrektywa kopiowania katalogu wejściowego. Funkcjonalność i składnia analogiczna jak dla dyrektywy "stage-in-file" tyle, że kopiowany jest katalog.
    #QCG stage-in-dir=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs -> inputs
    #QCG stage-in-dir=input_dir -> inputs
    
  • stage-out-file - dyrektywa kopiowania pliku wyjściowego. Składnia "nazwa_pliku_źródłowego > lokalizacja docelowa pliku". Lokalizacja docelowa może być lokalizacją gsiftp:// lub ścieżką do pliku. W tym drugim przypadku zakłada się, że jest ustalana względem katalogu, z którego zlecono zadanie.
    #QCG stage-out-file=results.txt -> gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/results/result.1
    #QCG stage-out-file=result.txt -> ${JOB_ID}.result
    
  • stage-out-dir - dyrektywa kopiowania katalogu wyjściowego. Funkcjonalność i składnia analogiczna jak dla dyrektywy "stage-out-file" tyle, że kopiowany jest katalog.
    #QCG stage-out-dir=results -> gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/results/${JOB_ID}
    #QCG stage-out-dir=results -> result
    
  • grant - nazwa grantu, w ramach którego ma być wykonane zadanie.
    #QCG grant=plgpiontek_grant
    
  • argument - argument aplikacji w przypadku użycia dyrektywy "executable" lub "application". Argument może wystąpić wielokrotnie. Każdy argument powinien być przekazany w osobnej dyrektywie. Argumenty do aplikacji przekazywane są w kolejności ich wystąpienia w pliku opisu
    #QCG argument=arg1
    #QCG argument=arg2
    
  • environment - ustawianie zmiennych środowiskowych. Składnia "nazwa -> wartość". Każda zmienna musli być ustawiana w osobnej linii.
    #QCG environment=name -> piontek
    #QCG environment=location -> poznan
    
  • executable - lokalizacja pliku uruchomieniowego. Lokalizacja może być lokalizacją gsiftp:// lub ścieżką do pliku. W tym drugim przypadku przyjmuje się, że jest ustalana względem katalogu, z którego zlecone zostało zadanie.
    #QCG executable=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/executables/exec1
    #QCG executable=executables/exec1
    
  • application - nazwa aplikacji do uruchomienia.

#QCG application=namd

  • persistent - dyrektywa określająca czy po zakończeniu zadania system ma pozostawić katalog roboczy, w którym wykonywane było zadanie.
    #QCG persistent
    
  • procs - liczba rdzeni obliczeniowych, na których ma być wykonane zadanie. Stosowane dla zadań MPI.
    #QCG procs=32
    
  • nodes - dyrektywa pozwalająca zdefiniować na ilu węzłach i rdzeniach w ramach węzła ma być uruchomione zadanie. Opcjonalnie można podać ile procesów ma być uruchomione na węzłach. Domyślnie, jeżeli nie zostanie podane inaczej, liczna procesów równa jest liczbie rdzeni przydzielonych w ramach węzła. Składnia liczna_węzłów:liczba_rdzeni_na_węźle[:liczba_procesów].
    #QCG nodes=10:5:1
    #QCG nodes=12:12
    

Przykłady

#QCG name=date
#QCG application=date
#QCG host=reef.man.poznan.pl
#QCG output=output
#!/bin/bash

#QCG queue=plgrid
#QCG persistent
#QCG name=tar
#QCG host=reef.man.poznan.pl
#QCG output=output
#QCG error=error

#QCG stage-in-dir=inputs -> inputs

/bin/tar -czf output.tgz inputs/input.*

#QCG stage-out-file=output.tgz -> output.tgz