Versions Compared

Key

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

 

QCG-Monitoring - Narzędzie graficzne QosCosGrid umożliwiające monitoring i śledzenie postępu wykonania aplikacji w infrastrukturze PL-Grid.

Table of Contents

 

Wstęp

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.

...

Sposób logowania do usługi oraz jej funkcjonalność opisana jest w sekcji: Portal Monitoringu.

Section
Column

Column

 

Schematy monitoringu

Informacja o postępie wykonania aplikacji prezentowana jest zgodnie z wybranymi schematami zarejestrowanymi w systemie i dostępnymi dla poszczególnych aplikacji.

Lista predefiniowanych schematów znajduje się w sekcji: Schematy monitoringu.

Integracja z narzędziami dostępowymi

...

Informacja o tym, jak zlecić zadanie aby było ono monitorowane opisane jest w sekcji: Monitorowanie Zlecenie zadania

 

Definicja 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

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".

Format wyjścia skryptu monitorującego

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.

Schematy danych

generic

  • generic - dane wyświetlane są w niezmienionej formie. Kolejne dane dopisywane są do poprzednich.

generic2

  • generic2 - dane wyświetlane są w niezmienionej formie. Kolejne dane zastępują poprzednie.

gaussian

  • gaussian - schemat prezentujący tabele i wykres dla energii wyznaczonej przez aplikację gaussian.
    Image Removed

Skrypt monitorujący:

Code Block
collapsetrue
#!/bin/bash
echo 'qcg.monitor.scheme=gaussian'
grep "SCF Done:" _stdouterr | awk '{print $5}'

gaussian_ext

gaussian_ext - rozszerzony monitoring aplikacji gaussian.
Image Removed
Skrypt monitorujący

Code Block
collapsetrue
#!/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
    collapsetrue
    #!/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 zadanie

Przykładowe opis zadania dla aplikacji gaussian z monitoringiem postępu wykonania:

...

.

 

...