1 | | [[PageOutline]] |
2 | | |
3 | | = QCG-!SimpleClient = |
4 | | |
5 | | QCG-!SimpleClient oferuje prosty, wzorowany na poleceniech systemu kolejkowego, interfejs do infrastruktury QCG. |
6 | | |
7 | | = Środowisko = |
8 | | Maszyna dostępowa: qcg.man.poznan.pl |
9 | | |
10 | | Wymagany moduł: qcg |
11 | | |
12 | | {{{ |
13 | | module load qcg |
14 | | }}} |
15 | | |
16 | | = Polecenia: = |
17 | | * '''qcg-sub''' - zlecenie zadania do wykonania na infrastrukturze QCG zgodnie z uproszczonym opisem, |
18 | | * '''qcg-list''' - wyświetlenie listy zleconych zadań wraz z informacjami o nich, |
19 | | * '''qcg-info''' - wyświetlenie szczegółowej informacji o danym zadaniu, |
20 | | * '''qcg-peek''' - podgląd wyjścia (stdout, stderr) aplikacji, |
21 | | * '''qcg-proxy''' - utworzenie certyfikatu proxy użytkownika, |
22 | | * '''qcg-cancel''' - anulowanie zadania. |
23 | | = Składnia poleceń: = |
24 | | * '''qcg-sub''' ''plik_z_opisem'' - ścieżka do pliku z uproszczonym opisem zadania |
25 | | {{{ |
26 | | qcg-sub /home/piontek/tasks/date.qcg |
27 | | qcg-sub ./tasks/date.qcg |
28 | | }}} |
29 | | * '''qcg-list''' ''liczba jednostka'' - zadania z ostatnich "liczba" dni ("d"), godzin ("h"), minut ("m") |
30 | | {{{ |
31 | | qcg-list 7d |
32 | | qcg-list 1m |
33 | | }}} |
34 | | * '''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". |
35 | | {{{ |
36 | | qcg-info J1331196390748_date_3099 true |
37 | | }}} |
38 | | * '''gcg-peek''' ''jobId'' ''[liczba_znaków]'' - jobId - identyfikator eksperymentu, liczba_znaków - liczba znaków do wyświetlenia, |
39 | | {{{ |
40 | | qcg-peek J1331196390748_date_3099 |
41 | | qcg-peek J1331196390748_date_3099 10 |
42 | | }}} |
43 | | * '''qcg-proxy''' |
44 | | {{{ |
45 | | qcg-proxy |
46 | | }}} |
47 | | * '''qcg-cancel''' ''jobId'' - identyfikator eksperymentu |
48 | | {{{ |
49 | | qcg-cancel J1331196390748_date_3099 |
50 | | }}} |
51 | | |
52 | | = Opis zadania: = |
53 | | Zlecany plik jest plikiem tekstowym, który może zawierać dyrektywy infrastruktury QCG. |
54 | | Dyrektywą jest każda linia zaczynająca się od "#QCG". |
55 | | '''WAŻNE:''' Jeżeli w pliku nie zdefiniowano dyrektywy "''executable''" ani "''application''" uruchamiany jest zlecany plik z opisem. |
56 | | |
57 | | == Lista dyrektyw == |
58 | | * '''queue''' - wybrana kolejka systemu kolejkowego. |
59 | | {{{ |
60 | | #QCG queue=plgrid |
61 | | }}} |
62 | | * '''note''' - krótka informacja o zadaniu. |
63 | | {{{ |
64 | | #QCG note=moje pierwsze zadanie QCG |
65 | | }}} |
66 | | * '''name''' - dyrektywa określająca nazwę zadania. Nazwa zadania pojawi się jako końcówka identyfikatora zadania. |
67 | | {{{ |
68 | | #QCG name=nobel-experiment |
69 | | }}} |
70 | | * '''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. |
71 | | {{{ |
72 | | #QCG output=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/outputs/${JOB_ID}.output |
73 | | #QCG output=output.txt |
74 | | }}} |
75 | | * '''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. |
76 | | {{{ |
77 | | #QCG error=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/errors/${JOB_ID}.error |
78 | | #QCG error=error.txt |
79 | | }}} |
80 | | * '''host''' - nazwa maszyny na której może być uruchomione zadanie. Może być wiele takich dyrektyw dla alternatywnych maszyn. |
81 | | {{{ |
82 | | #QCG host=reef.man.poznan.pl |
83 | | #QCG host=zeus.cyfronet.pl |
84 | | }}} |
85 | | * '''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. |
86 | | {{{ |
87 | | #QCG stage-in-file=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs/input.txt -> input.txt |
88 | | #QCG stage-in-file=input_file.txt -> input.txt |
89 | | }}} |
90 | | * '''stage-in-dir''' - dyrektywa kopiowania katalogu wejściowego. Funkcjonalność i składnia analogiczna jak dla dyrektywy "stage-in-file" tyle, że kopiowany jest katalog. |
91 | | {{{ |
92 | | #QCG stage-in-dir=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/inputs -> inputs |
93 | | #QCG stage-in-dir=input_dir -> inputs |
94 | | }}} |
95 | | * '''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. |
96 | | {{{ |
97 | | #QCG stage-out-file=results.txt -> gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/results/result.1 |
98 | | #QCG stage-out-file=result.txt -> ${JOB_ID}.result |
99 | | }}} |
100 | | * '''stage-out-dir''' - dyrektywa kopiowania katalogu wyjściowego. Funkcjonalność i składnia analogiczna jak dla dyrektywy "stage-out-file" tyle, że kopiowany jest katalog. |
101 | | {{{ |
102 | | #QCG stage-out-dir=results -> gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/results/${JOB_ID} |
103 | | #QCG stage-out-dir=results -> result |
104 | | }}} |
105 | | * '''grant''' - nazwa grantu, w ramach którego ma być wykonane zadanie. |
106 | | {{{ |
107 | | #QCG grant=plgpiontek_grant |
108 | | }}} |
109 | | * '''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 |
110 | | {{{ |
111 | | #QCG argument=arg1 |
112 | | #QCG argument=arg2 |
113 | | }}} |
114 | | * '''environment''' - ustawianie zmiennych środowiskowych. Składnia "nazwa -> wartość". Każda zmienna musli być ustawiana w osobnej linii. |
115 | | {{{ |
116 | | #QCG environment=name -> piontek |
117 | | #QCG environment=location -> poznan |
118 | | }}} |
119 | | * '''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. |
120 | | {{{ |
121 | | #QCG executable=gsiftp://qcg.man.poznan.pl//home/plgrid/plgpiontek/reef/executables/exec1 |
122 | | #QCG executable=executables/exec1 |
123 | | }}} |
124 | | * '''application''' - nazwa aplikacji do uruchomienia. |
125 | | #QCG application=namd |
126 | | * '''persistent''' - dyrektywa określająca czy po zakończeniu zadania system ma pozostawić katalog roboczy, w którym wykonywane było zadanie. |
127 | | {{{ |
128 | | #QCG persistent |
129 | | }}} |
130 | | * '''procs''' - liczba rdzeni obliczeniowych, na których ma być wykonane zadanie. Stosowane dla zadań MPI. |
131 | | {{{ |
132 | | #QCG procs=32 |
133 | | }}} |
134 | | * '''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]. |
135 | | {{{ |
136 | | #QCG nodes=10:5:1 |
137 | | #QCG nodes=12:12 |
138 | | }}} |
139 | | == Przykłady == |
140 | | {{{ |
141 | | #QCG name=date |
142 | | #QCG application=date |
143 | | #QCG host=reef.man.poznan.pl |
144 | | #QCG output=output |
145 | | }}} |
146 | | |
147 | | {{{ |
148 | | #!/bin/bash |
149 | | |
150 | | #QCG queue=plgrid |
151 | | #QCG persistent |
152 | | #QCG name=tar |
153 | | #QCG host=reef.man.poznan.pl |
154 | | #QCG output=output |
155 | | #QCG error=error |
156 | | |
157 | | #QCG stage-in-dir=inputs -> inputs |
158 | | |
159 | | /bin/tar -czf output.tgz inputs/input.* |
160 | | |
161 | | #QCG stage-out-file=output.tgz -> output.tgz |
162 | | }}} |
| 1 | Najbardziej aktualne informacje na temat klienta tekstowego QCG można znaleźć na stronie [https://docs.plgrid.pl/pages/viewpage.action?pageId=4260731 podręcznika użytkownika PL-Grid] |