Versions Compared

Key

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

...

...

Code Block
#QCG argument=arg1
#QCG argument=arg2

...

assistant

  • deadline

    assistant - dyrektywa umożliwiająca

    zdefiniowanie, że zadanie lub rezerwacja ma być wykonane „w czasie nie dłuższym niż”. Dyrektywa wymusza użycie mechanizmu rezerwacji zasobów z wyprzedzeniem. Nie może być użyta równocześnie z dyrektywą „reservation”. Argumentem dyrektywy jest przedział czasu w formacie PnYnMnDTnHnMnS (ISO 8601) gdzie:
    • P - obowiązkowy znak rozpoczynający definicję okresu,
    • nY - liczba lat,
    • nM - liczba miesięcy,
    • nD - liczba dni,
    • T - separator czasu (musi być obecny, jeśli zdefiniowane są poniższe wartości)
    • nH - liczba godzin,
    • nM - liczba minut,
    • nS - liczba sekund.

W przypadku nie podania dyrektywy „not_before” system próbuje dokonać rezerwacji zasobów od aktualnej chwili. Dyrektywa wyklucza równoczesne użycie „not_after”.

Code Block
#QCG deadline=P3DT12H
Code Block
#QCG not-before=2012.07.25
#QCG deadline=P3DT12H

environment

  • environment - ustawianie zmiennych środowiskowych. Składnia „nazwa → wartość”. Każda zmienna musli być ustawiana w osobnej linii.
Code Block
#QCG environment=name -> piontek
#QCG environment=location -> poznan

error

  • error - lokalizacja gdzie ma być przegrany standardowe wyjście błędów zadnia (stderr). Jeśli nie jest to zdalna lokalizacja zakłada się, że jest ustalana względem katalogu, z którego zlecono zadanie 

    Code Block
    #QCG error=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/errors/${JOB_ID}.error
    #QCG error=error.txt
    

executable

  • executable - lokalizacja pliku do uruchomienia. Lokalizacja może być lokalizacją zdalną lub ścieżką do pliku. W tym drugim przypadku przyjmuje się, że jest ustalana względem katalogu, z którego zlecone zostało zadanie. Opcjonalnie możliwe jest podanie nazwy pod jaką ma być zapisany plik wykonywalny. W przypadku braku nazwy zapisywany jest pod oryginalna nazwą. 
Code Block
#QCG executable=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/executables/exec1
#QCG executable=executables/exec1
#QCG executable=executables/exec1 -> exec-file

grant

  • grant - nazwa grantu, w ramach którego ma być wykonane zadanie.
Code Block
#QCG grant=plgpiontek_grant

host

Code Block
#QCG host=reef.man.poznan.pl
#QCG host=zeus.cyfronet.pl

include

  • include - dyrektywa umożliwia włączenie do opisu zadania zawartości innego pliku. Linia z dyrektywa w finalnym opisie zastępowana jest zawartością pliku na który wskazuje. Dyrektywa umożliwia podawanie ścieżki względnej i bezwzględnej a także rekurencyjne osadzanie kolejnych dyrektyw include w plikach.
Code Block
#QCG include=includes/application.qcg
#QCG include=/home/piontek/includes/notifications.qcg

 

input

  • input - lokalizacja skąd ma być wzięte standardowe wejście dla aplikacji (stdin). Jeśli nie jest to zdalna lokalizacja zakłada się, że jest ustalana względem katalogu, z którego zlecono zadanie.
Code Block
#QCG input=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs/experiment.input
#QCG input=input.txt

memory

  • memory - dyrektywa definiująca deklarowane maksymalne zapotrzebowanie aplikacji na pamięć operacyjną. Podana wartość jest w MB.
Code Block
#QCG memory=1024

memory-per-slot

  • memory-per-slot - ilość pamięci per rdzeń (slot) wyrażona w MB. Całkowite maksymalne zapotrzebowanie na pamięć liczone jest jako iloczyn liczby żądanych rdzeni (slotów) i wartości dyrektywy "memory-per-slot"
Code Block
#QCG memory-per-slot=512

 

module

  • module - dyrektywa umożliwiająca zdefiniowanie wymaganego przez zadanie modułu (nazwy programu/biblioteki oraz wersji). Możliwe jest wielokrotne podanie dyrektywy. Przy wyborze klastra do uruchomienia zadania system weźmie pod uwagę tylko te klastry na których dostępne są wszystkie wymagane moduły.
Code Block
#QCG module=nwchem/6.0
#QCG module=namd

monitor

  • monitor - dyrektywa umożliwiająca zdefiniowanie skryptu, który zostanie uruchomiony przed uruchomieniem właściwego zadania i zabity po zakończeniu zadania. Funkcjonalność ta umożliwia w prosty sposób zaimplementowanie monitoringu aplikacji. Uruchomiony skrypt może cyklicznie wyszukiwać w wyniku aplikacji zadanych wzorców i przesyłać je w dowony sposób do użytkownika.
Code Block
#QCG monitor=monitor-script.sh

name

  • name - dyrektywa określająca nazwę zadania. Nazwa zadania pojawi się jako końcówka identyfikatora zadania.
Code Block
#QCG name=nobel-experiment

native

  • native - dyrektywa umożliwiająca przekazanie do systemu kolejkowego specyficznych dla niego wymagań zasobowych. Wymagania takie są specyficzne do systemu kolejkowego i powinny być używane z dyrektywami „host” i w przemyślany przez użytkownika sposób.

Przykład dla PBSa oznaczający dane zadanie jako wznawialne.

(-r y|n Declares whether the job is rerunable.)

Code Block
#QCG native=-r n

nodes

  • 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
Code Block
#QCG nodes=10:5:1
#QCG nodes=12:12

not-after

  • not-after - dyrektywa umożliwiająca zdefiniowanie, że zadanie lub rezerwacja ma być wykonane „nie później niż”. Argumentem dyrektywy jest data z opcjonalnym czasem. Dyrektywa wymusza użycie mechanizmu rezerwacji zasobów z wyprzedzeniem. Nie może być użyta równocześnie z dyrektywą „reservation”, wymaga podania dyrektywy „walltime”.
Code Block
#QCG not-after=2012.08.25
#QCG walltime=PT2H
Code Block
#QCG not-after=2012.08.25 13:20
#QCG walltime=PT2H

not-before

  • not-before - dyrektywa umożliwiająca zdefiniowanie, że zadanie lub rezerwacja ma być wykonane „nie wcześniej niż”. Argumentem dyrektywy jest data z opcjonalnym czasem. Dyrektywa wymusza użycie mechanizmu rezerwacji zasobów z wyprzedzeniem. Nie może być użyta równocześnie z dyrektywą „reservation”. W przypadku braku dyrektywy przyjmuje się, że zadanie może być uruchomione „od razu”. Dyrektywa wymaga dyrektywy „walltime”.
Code Block
#QCG not-before=2012.07.25
#QCG walltime=PT2H
Code Block
#QCG not-before=2012.07.25 15:20
#QCG walltime=PT2H

note

  • note - krótka informacja o zadaniu.
Code Block
#QCG note=moje pierwsze zadanie QCG

notify

  • notify - dyrektywa umożliwiająca podanie protokołu i adresu docelowego dla powiadomień o stanie zadania. Możliwe jest wysyłanie powiadomień mailem i xmpp (dawniej Jabber).
Code Block
#QCG notify=mailto:piontek@man.poznan.pl
#QCG notify=xmpp:tomasz.piontek@gmail.com

W przypadku chęci otrzymywania powiadomień protokołem xmpp konieczne jest dodanie do kontaktów nadawcy: qcg-notification@plgrid.pl    

output

  • uruchomienie równolegle z podstawowym programem skryptu pomocniczego. Skrypt ten zakończony zostanie automatycznie z końcem zadnia.

    Warning

    Dyrektywa wprowadzona została w wersji 3.4 i zastąpiła dyrektywę #QCG monitor, która zmieniła znaczenie.

    Składnia:

    Code Block
    #QCG assistant=skrypt
    #QCG assistant=script->skrypt

    Parametry:

    • script - obligatoryjny, domyślny parametr definiujący skrypt, który ma być uruchomiony. W przypadku korzystania ze skryptu musi być on przegrany dyrektywą #QCG stage-in-file.

    Code Block
    #QCG stage-in-file=script.sh
    Note

    WAŻNE: Skrypt uruchamiany jest jednokrotnie na początku zadania. Jeżeli akcja zdefiniowana wewnątrz skryptu ma być wywoływana cyklicznie użytkownik jest odpowiedzialny za implementacje takiej funkcjonalności.

deadline

  • deadline - dyrektywa umożliwiająca zdefiniowanie, że zadanie lub rezerwacja ma być wykonane „w czasie nie dłuższym niż”. Dyrektywa wymusza użycie mechanizmu rezerwacji zasobów z wyprzedzeniem. Nie może być użyta równocześnie z dyrektywą „reservation”. Argumentem dyrektywy jest przedział czasu w formacie PnYnMnDTnHnMnS (ISO 8601) gdzie:
    • P - obowiązkowy znak rozpoczynający definicję okresu,
    • nY - liczba lat,
    • nM - liczba miesięcy,
    • nD - liczba dni,
    • T - separator czasu (musi być obecny, jeśli zdefiniowane są poniższe wartości)
    • nH - liczba godzin,
    • nM - liczba minut,
    • nS - liczba sekund.

W przypadku nie podania dyrektywy „not_before” system próbuje dokonać rezerwacji zasobów od aktualnej chwili. Dyrektywa wyklucza równoczesne użycie „not_after”.

Code Block
#QCG deadline=P3DT12H
Code Block
#QCG not-before=2012.07.25
#QCG deadline=P3DT12H

environment

  • environment - ustawianie zmiennych środowiskowych. Składnia „nazwa → wartość”. Każda zmienna musli być ustawiana w osobnej linii.
Code Block
#QCG environment=name -> piontek
#QCG environment=location -> poznan

error

  • error - lokalizacja gdzie ma być przegrany standardowe wyjście błędów zadnia (stderr). Jeśli nie jest to zdalna lokalizacja zakłada się, że jest ustalana względem katalogu, z którego zlecono zadanie 

    Code Block
    #QCG error=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/errors/${JOB_ID}.error
    #QCG error=error.txt
    

executable

  • executable - lokalizacja pliku do uruchomienia. Lokalizacja może być lokalizacją zdalną lub ścieżką do pliku. W tym drugim przypadku przyjmuje się, że jest ustalana względem katalogu, z którego zlecone zostało zadanie. Opcjonalnie możliwe jest podanie nazwy pod jaką ma być zapisany plik wykonywalny. W przypadku braku nazwy zapisywany jest pod oryginalna nazwą. 
Code Block
#QCG executable=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/executables/exec1
#QCG executable=executables/exec1
#QCG executable=executables/exec1 -> exec-file

grant

  • grant - nazwa grantu, w ramach którego ma być wykonane zadanie.
Code Block
#QCG grant=plgpiontek_grant

host

Code Block
#QCG host=reef.man.poznan.pl
#QCG host=zeus.cyfronet.pl

include

  • include - dyrektywa umożliwia włączenie do opisu zadania zawartości innego pliku. Linia z dyrektywa w finalnym opisie zastępowana jest zawartością pliku na który wskazuje. Dyrektywa umożliwia podawanie ścieżki względnej i bezwzględnej a także rekurencyjne osadzanie kolejnych dyrektyw include w plikach.
Code Block
#QCG include=includes/application.qcg
#QCG include=/home/piontek/includes/notifications.qcg

 

input

  • input - lokalizacja skąd ma być wzięte standardowe wejście dla aplikacji (stdin). Jeśli nie jest to zdalna lokalizacja zakłada się, że jest ustalana względem katalogu, z którego zlecono zadanie.
Code Block
#QCG input=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs/experiment.input
#QCG input=input.txt

memory

  • memory - dyrektywa definiująca deklarowane maksymalne zapotrzebowanie aplikacji na pamięć operacyjną. Podana wartość jest w MB.
Code Block
#QCG memory=1024

memory-per-slot

  • memory-per-slot - ilość pamięci per rdzeń (slot) wyrażona w MB. Całkowite maksymalne zapotrzebowanie na pamięć liczone jest jako iloczyn liczby żądanych rdzeni (slotów) i wartości dyrektywy "memory-per-slot"
Code Block
#QCG memory-per-slot=512

 

module

  • module - dyrektywa umożliwiająca zdefiniowanie wymaganego przez zadanie modułu (nazwy programu/biblioteki oraz wersji). Możliwe jest wielokrotne podanie dyrektywy. Przy wyborze klastra do uruchomienia zadania system weźmie pod uwagę tylko te klastry na których dostępne są wszystkie wymagane moduły.
Code Block
#QCG module=nwchem/6.0
#QCG module=namd

monitor

  • monitor - dyrektywa umożliwiająca monitorowanie stanu i postępu wykonania zadania w infrastrukturze QCG z wykorzytaniem usługi QCG-monitoring.

    Warning

    Dyrektywa #QCG monitor od wersji QCG 3.4 zmieniła znaczenie. Poprzednia funkcjonalność dostępna jest poprzez dyrektywę #QCG assistant.



Składnia:

Code Block
#QCG monitor[=skrypt]

#QCG monitor=script->skrypt[,delay->N]

Dla aplikacji posiadających jeden predefiniowany schemat monitorowania dyrektywa może być bezparametrowa:

Code Block
#QCG monitor

W przypadku, gdy chcemy zdefiniować konkretny schemat, lub użyć własnego skryptu monitorującego konieczne jest przekazanie parametru. Domyślnym parametrem jest parametr "script".

Note

W przypadku korzystania z własnego skryptu monitorującego należy go zdefiniować jako plik wejściowy aplikacji dyrektywą #QCG stage-in-file.

Code Block
#QCG monitor=gaussian

#QCG monitor=skrypt_monitorujący.sh
#QCG stage-in-file=skrypt_monitorujący.sh

Częstotliwość uruchamiania skryptu monitorującego definiuje parametr delay, którego wartości jest okres czasu w sekundach co jaki będzie uruchamiany skrypt. Powiadomienie wysyłane jest tylko w przypadku wykrycia zmiany od poprzedniego wysłania.

Code Block
#QCG monitor=gaussian,delay->60

#QCG monitor=script->gaussian,delay->60

 

mount

  • mount - dyrektywa umożliwiając automatyczne zamontowanie dla zadania określonej usługi składowania danych.

    Aktualnie jedynym wspieranym systemem jest veilFS.

    Code Block
    #QCG mount=veilfs[->katalog]

    Opcjonalny parametr katalog pozwala zdefiniować nazwę katalogu w którym ma być zamontowany system. Domyślą wartością jest "mount".

    Code Block
    #QCG mount=veilfs->veilFS_dir

name

  • name - dyrektywa określająca nazwę zadania. Nazwa zadania pojawi się jako końcówka identyfikatora zadania.
Code Block
#QCG name=nobel-experiment

native

  • native - dyrektywa umożliwiająca przekazanie do systemu kolejkowego specyficznych dla niego wymagań zasobowych. Wymagania takie są specyficzne do systemu kolejkowego i powinny być używane z dyrektywami „host” i w przemyślany przez użytkownika sposób.

Przykład dla PBSa oznaczający dane zadanie jako wznawialne.

(-r y|n Declares whether the job is rerunable.)

Code Block
#QCG native=-r n

nodes

  • 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
Code Block
#QCG nodes=10:5:1
#QCG nodes=12:12

not-after

  • not-after - dyrektywa umożliwiająca zdefiniowanie, że zadanie lub rezerwacja ma być wykonane „nie później niż”. Argumentem dyrektywy jest data z opcjonalnym czasem. Dyrektywa wymusza użycie mechanizmu rezerwacji zasobów z wyprzedzeniem. Nie może być użyta równocześnie z dyrektywą „reservation”, wymaga podania dyrektywy „walltime”.
Code Block
#QCG not-after=2012.08.25
#QCG walltime=PT2H
Code Block
#QCG not-after=2012.08.25 13:20
#QCG walltime=PT2H

not-before

  • not-before - dyrektywa umożliwiająca zdefiniowanie, że zadanie lub rezerwacja ma być wykonane „nie wcześniej niż”. Argumentem dyrektywy jest data z opcjonalnym czasem. Dyrektywa wymusza użycie mechanizmu rezerwacji zasobów z wyprzedzeniem. Nie może być użyta równocześnie z dyrektywą „reservation”. W przypadku braku dyrektywy przyjmuje się, że zadanie może być uruchomione „od razu”. Dyrektywa wymaga dyrektywy „walltime”.
Code Block
#QCG not-before=2012.07.25
#QCG walltime=PT2H
Code Block
#QCG not-before=2012.07.25 15:20
#QCG walltime=PT2H

note

  • note - krótka informacja o zadaniu.
Code Block
#QCG note=moje pierwsze zadanie QCG

notify

  • notify - dyrektywa umożliwiająca podanie protokołu i adresu docelowego dla powiadomień o stanie zadania. Możliwe jest wysyłanie powiadomień mailem i xmpp (dawniej Jabber).
Code Block
#QCG notify=mailto:piontek@man.poznan.pl
#QCG notify=xmpp:tomasz.piontek@gmail.com

W przypadku chęci otrzymywania powiadomień protokołem xmpp konieczne jest dodanie do kontaktów nadawcy: qcg-notification@plgrid.pl    

output

  • output - lokalizacja gdzie ma być przegrane standardowe wyjście zadnia (stdout). Jeśli nie jest to lokalizacja zdalna (gsiftp/irods) zakłada się, że jest ustalana względem katalogu, z którego zlecono zadanie.
Code Block
#QCG output=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/outputs/${JOB_ID}.output
#QCG output=output.txt

parameter-sweep

  • parameter-sweep -dyrektywa umożliwiająca zdefiniowanie przestrzeni parametrów dla zadania. Dyrektywa może być użyta wielokrotnie definiując wielowymiarową przestrzeń parametrów. Dla każdego zestawu parametrów uruchamiane jest osobne zadanie. Dyrektywa skład się z nazwy zmiennej, która będzie przyjmować kolejne wartości oraz z definicji zmienności parametru.

    Code Block
    #QCG parameter-sweep=VAR->PARAMETER_SPACE
  • Dyrektywa dopuszcza następujące sposoby definiowania zmienności parametru:

  • list - wartości podane są jako lista oddzielona przecinkami

    Code Block
    #QCG parameter-sweep=var->list:mon,tue,wed,thu,fri,sat,sun
    #QCG parameter-sweep=var->list:1,2,3,4,5,6
  • for - wartość wyznaczane są od wartości początkowej (start) do końcowej (end) z opcjonalnie definiowalnym krokiem (step) (domyślnie 1). Liczba miejsc po przecinku wyznaczana jest jako największa liczba cyfr po przecinku dla parametrów start, end, step.

    Code Block
    #QCG parameter-sweep=var->for:start..end
    #QCG parameter-sweep=var->for:start..end..step
    
    #QCG parameter-sweep=var->for:0..10
    #QCG parameter-sweep=var->for:0..10..2
    #QCG parameter-sweep=var->for:1.0..2.0..0.5
  • pattern - kolejne wartości przyjmują nazwy plików zgodnych z podanym wzorcem wyszukiwanych

    output - lokalizacja gdzie ma być przegrane standardowe wyjście zadnia (stdout). Jeśli nie jest to lokalizacja zdalna (gsiftp/irods) zakłada się, że jest ustalana

    względem katalogu, z którego zlecono zadanie.

    Code Block
    #QCG 

...

  • parameter-sweep=var->pattern->*.input
  • file - kolejnymi wartościami są kolejne linie pobierane z pliku

    Code Block
    #QCG parameter-sweep=var->file:file_with_values.txt

persistent

  • persistent - dyrektywa określająca że po zakończeniu zadania system ma pozostawić katalog roboczy, w którym wykonywane było zadanie.

    Warning

    Dyrektywa ta powinna być używana tylko na etapie testowania. Przy normalnym trybie wykonywania aplikacji dyrektywa ta nie powinna być ustawiona, gdyż powoduje, że katalog roboczy zadania nie jest usuwany i zajmuje miejsce na zasobach.

    Zadania zlecone jako "persistent" mogą być po zakończeniu "wyczyszczone" poleceniem qcg-clean.

...

  • walltime - dyrektywa definiująca deklarowany przez użytkownika czas wykonania zadania lub długość rezerwacji w formacie PnYnMnDTnHnMnS  (format ISO 8601) gdzie:
    • P - obowiązkowy znak rozpoczynający definicję okresu,
    • nY - liczba lat,
    • nM - liczba miesięcy,
    • nD - liczba dni,
    • T - separator czasu (musi być obecny, jeśli zdefiniowane są poniższe wartości)
    • nH - liczba godzin,
    • nM - liczba minut,
    • nS - liczba sekund.
    • nH - liczba godzin,
    • nM - liczba minut,
    • nS - liczba sekund.
Code Block
#QCG walltime=P3DT12H

watch-output

  • watch-output - dyrektywa umożliwiająca monitorowanie pliku wyjściowego aplikacji i przesyłanie powiadomień z informacją. 

    Warning

    Od wersji QCG 3.4 składnia dyrektywy #QCG watch-output uległa zmianie.

Składnia:

Code Block
#QCG walltime=P3DT12H

watch-output

watch-output=consumer->konsument,[pattern->wyrazenie | script->skrypt ,delay->N]
#QCG watch-output=konsument

Dyrektywa ma następujące parametry:

  • consumer - obligatoryjny, domyślny parametr określający odbiorcę powiadomienia. (wspieranymi protokołami są mail i xmpp - patrz dyrektywa notify)
  • pattern lub script - parametry definiujące albo poszukiwane w pliku wyjściowym wyrażenie regularne lub własny skrypt monitorujący (skrypt powłoki bash). W obu przypadkach wynik (output) przesyłany jest na wskazany adres. W przypadku korzystania ze skryptu monitorującego należy w zadaniu zdefiniować dyrektywę (#QCG stage-in-file) kopiującą plik.
  • delay - okres pomiędzy kolejnymi uruchomieniami procedury monitoringu (w sekundach). Wiadomość wysyłana jest tylko w przypadku stwierdzenia zajścia zmiany od poprzedniego wysłaniawatch-output - dyrektywa umożliwiająca monitorowanie pliku wyjściowego aplikacji i przesyłanie powiadomień z informacją. Argumentem dyrektywy jest trójka parametrów oddzielonych przecinkami:
  • adres na który ma być przesłane powiadomienie (wspieranymi protokołami są mail i xmpp - patrz dyrektywa notify)
  • częstotliwość przesyłania powiadomień w sekundach,
  • wyrażenie regularne, dla którego linia pliku wynikowego ma być przesłana w powiadomieniu, lub nazwa pliku którego wyjście ma być przesłane.

Code Block
#QCG watch-output=mailto:piontek@man.poznan.pl,20,ENERGY
Code Block
#QCG stage-in-file=nft_expr_filepattern->ENERGY,dalay->60

#QCG watch-output=mailtoconsumer->mailto:piontek@man.poznan.pl,30,ntf_expr_filescript->skrypt_monitorujacy.sh,dalay->60
#QCG stage-in-file=skrypt_monitorujacy.sh

variable

  • variable - dyrektywa pozwalająca zdefiniować zmienne w obrębie opisu zadania.

    Note

    Zmienne podmienione zostaną TYLKO w obrębie dyrektyw QCG.

    Prosze nie mylić dyrektywy variable ze zmiennymi "systemowymi" QCG podmienianymi przez system.

...