Section |
---|
QCG-Monitoring - Narzędzie graficzne QosCosGrid umożliwiające monitoring i śledzenie postępu wykonania aplikacji w infrastrukturze PL-Grid. |
Table of Contents |
---|
Usługa QCG-Monitoring umożliwia śledzenie postępu wykonania aplikacji uruchomionej przy pomocy narzędzi dostępowych QosCosGrid na infrastrukturze PL-Grid. Postęp wykonania aplikacji prezentowany jest w formie graficznej w postaci wykresów, tabel i obrazów w zależności od schematu zdefiniowanego w systemie dla danej aplikacji. Usługa QCG-Monitoring dedykowana jest dla osób wykonujących długotrwałe obliczenia w infrastrukturze, które na podstawie prezentowanych wyników mogą określić stopień zaawansowania obliczeń oraz podjąć decyzje o ewentualnym wstrzymaniu zadania jeśli obliczenia nie przebiegają zgodnie z założeniami.
...
Informacja o tym, jak zlecić zadanie aby było ono monitorowane opisane jest w sekcji: Monitorowanie Zlecenie zadania
Zadanie, którego postęp wykonania ma być monitorowany musi zawierać dyrektywę "#QCG watch-output".
Dyrektywa ta odpowiedzialna jest za poinformowanie systemu o konieczności uruchomienia dodatkowego procesu monitorującego aplikację.
Jednym z argumentów dyrektywy "watch-output" jest skrypt monitorujący.
Skrypt monitorujący postęp aplikacji uruchamiany jest automatycznie, cyklicznie przez środowisko QCG.Rolą tego skrypty jest wyszukanie zadanej informacji i przekazanie jej w odpowiednim formacie na standardowe wyjście. Format danych wypisywanych przez skrypt monitorujący jest uzależniony od używanego schematu. Informacjaze standardowego wyjścia jest przechwytywana i wysyłana do usługi QCG-Monitor.
Skrypt monitorujący musi być przesłany wraz z zadaniem za pomocą dyrektywy "#QCG stage-in-file".
Wyjście skryptu monitorującego w pierwszej linii musi zawierać definicję formatu pozostałych danych w postaci
Code Block |
---|
qcg.monitor.scheme=format |
gdzie format jest jednym z predefiniowanych formatów rozumianych przez usługę QCG-Monitor.
generic2 - dane wyświetlane są w niezmienionej formie. Kolejne dane zastępują poprzednie.
Skrypt monitorujący:
Code Block | ||
---|---|---|
| ||
#!/bin/bash
echo 'qcg.monitor.scheme=gaussian'
grep "SCF Done:" _stdouterr | awk '{print $5}' |
gaussian_ext - rozszerzony monitoring aplikacji gaussian.
Skrypt monitorujący
Code Block | ||
---|---|---|
| ||
#!/bin/bash
echo 'qcg.monitor.scheme=gaussianext'
echo "#energy#"
grep "SCF Done:" _stdouterr | awk '{print $5}'
echo "#maxforce#"
grep "^ Maximum Force" _stdouterr | awk '{print $3}'
echo "#rmsforce#"
grep "^ RMS Force" _stdouterr | awk '{print $3}'
echo "#maxdispl#"
grep "^ Maximum Displacement" _stdouterr | awk '{print $3}'
echo "#rmsdispl#"
grep "^ RMS Displacement" _stdouterr | awk '{print $3}' |
...
piernik - monitoring aplikacji "piernik"
Code Block | ||
---|---|---|
| ||
#!/bin/bash
WPREFIX=sedov_tst_000
status=`tac ${WPREFIX}.log | grep -e "\s*@\s*0:\s*nstep\s*=" -m 1 || echo "-"`
status=`echo "$status" | sed -e 's/^[ ]\+@[ ]\+//'`
headers=`head -n 1 ${WPREFIX}.tsl`
table_data=`grep -v '^#' ${WPREFIX}.tsl`
lines=''
while read line; do
if [ ! -z "$lines" ]; then
lines="$lines,\n"
fi
lines="$lines \"$line\""
done <<< "$table_data"
echo 'qcg.monitor.scheme=piernik'
echo -e "{"
echo -e "\t\"status\": \"$status\","
echo -e "\t\"headers\": \"$headers\","
echo -e "\t\"rows\": [\n$lines\n]"
if [ ! -z "$images" ]; then
echo -e ",\n\t\"images\": [\n$images\n]"
fi
echo -e "}" |
Przykładowe opis zadania dla aplikacji gaussian z monitoringiem postępu wykonania:
...
.
...