USER ACCOUNTING







Moduł Rozliczeniowy dostarcza użytkownikom oraz administratorom informacji o obciążeniach poszczególnych przyrządów oraz wykorzystaniu zasobów obliczeniowych. Funkcjonalnie moduł składa się z dwóch części: pierwszej operującej na bazie danych i interpretującej dane przesyłane z formularza WWW oraz drugiej - prezentacyjnej, dzięki której w postaci przejrzystych wykresów i/lub tabel uzyskane z bazy danych informacje prezentowane są na ekranie. MR może również współpracować z innymi (zewnętrznymi) modułami tego typu.


ZAŁOŻENIA POCZĄTKOWE

W koncepcji LW dokonano podziału na dwa typy zasobów w nim wykorzystywanych: przyrządów tj. spektrometr, radioteleskop oraz serwerów obliczeniowych (zasoby tj. pamięć operacyjna, dyskowa, procesor, węzły obliczeniowe). Informacja o wykorzystaniu każdego z nich dostarczana jest użytkownikowi/administratorowi przez moduł rozliczeniowy.
Po zakończeniu każdego zadania eksperymentalnego otrzymuje informacje z nim związane (czasy rozpoczęcia i zakończenia, identyfikator użytkownika i laboratorium do którego należy, numer zadania, itp.) i zapisuje je do bazy danych laboratorium.
W przypadku zasobów obliczeniowych moduł otrzymuje informacje od serwerów obliczeniowych, które przesyłane są w postaci danych XML opisanych za pomocą standardu opracowanego przez Usage Record Working Group. Krótki opis standardu znalazł się w dalszej części tego dokumentu.
W związku z podziałem zasobów na dwa typy, dokonano także rozróżnienia na poziomie bazy danych oraz rodzaju przesyłanych między modułami komunikatów.


ZASOBY

Jak wspomniano wcześniej w LW wyróżniamy dwa typy zasobów: eksperymentalne i obliczeniowe. W punkcie tym opisane zostaną najważniejsze ich cechy. Podczas prac nad LW podjęto próbę zunifikowania opisu wykorzystania zasobów dokonując podziału na czas, kiedy przyrząd został zarezerwowany, czas przeznaczony na tuning urządzenia oraz fizyczne z niego korzystanie określając różne stawki kosztowe dla każdego z tych okresów. W odniesieniu do zasobów obliczeniowych mówimy o dostosowaniu przewidzianych opisów użycia do istniejącego standardu URWG.

Zasoby eksperymentalne

O wykorzystaniu zasobów eksperymentalnych mówimy w odniesieniu do okresu czasu, przez jaki był on w używany. Mnożąc okres czasu przez jednostkowy koszt użycia otrzymamy całkowity koszt wykorzystania danego przyrządu przez użytkownika. Przewidziano różne stawki w zależności od tego, czy dotyczy ona tylko okresu, na jaki przyrząd jest zarezerwowany (a nieużywany), strojony, czy ktoś fizycznie z niego korzysta. Administrator odpowiedzialny jest za ustanowienie osobnego limitu dla każdego z użytkowników, który jest odpowiednio pomniejszany po każdym zakończonym eksperymencie. W przypadku, gdy przewidywany koszt wykonania zadania jest większy od pozostałego limitu użytkownik traci prawo do wykonania eksperymentu do czasu, aż jego limit nie zostanie ponownie zwiększony przez administratora.

Zasoby obliczeniowe a standard URWG

Sposób obliczania wykorzystania zasobów obliczeniowych jest dużo bardziej złożonym mechanizmem, niż w przypadku zasobów eksperymentalnych. Związane jest to z większą liczbą danych wymagających rozliczenia oraz koniecznością komunikacji z innymi serwisami rozliczeniowymi. Dane pobierane są stamtąd, a następnie przesyłane w formacie XML ustalonym przez Usage Record Working Group (URWG). W związku z faktem, iż mamy do czynienia ze współdzieleniem zasobów, dane muszą być przechowywane w jednolitym formacie. Założeniem było, by format rekordu opisującego wykorzystanie zasobu w wystarczająco wierny sposób umożliwiało przesyłanie informacji w środowisku gridowym oraz był na tyle ogólny, by można go było zastosować dla wielu celów np. rozliczanie z użycia zasobów, pobieranie opłat, wykorzystanie serwisów gridowych, monitoring, poprawa ich wydajności itd.
Dane XML pogrupowane są w elementy globalne, a te z kolei w atrybuty (również globalne). Jeśli chodzi o pierwsze z wymienionych, zaliczmy do nich: UsageRecord (krotka użycia zasobu), JobUsageRecord (krotka wykorzystania przez zadanie), UsageRecords (krotka użycia zasobów) - grupuje krotki typu UsageRecord. Elementy te dziedziczą ze złożonego elementu UsageRecordType. Atrybuty globalne dostarczają mechanizm dodatkowej, opcjonalnej informacji dołączonej do UsageRecord.
Zaliczamy do nich:

  • storageUnit (jednostka pojemności) - wyrażana w następujących jednostkach: b, B, KB, MB, GB, TB, PB, EB, KB, Mb, Gb, Tb, Pb, Eb;
  • phaseUnit (jednostka czasu trwania zadania),
  • intervallicVolume - grupuje razem dwa poprzednie atrybuty dostarczając czasowej informacji o wykorzystaniu danego zasobu,
  • metric (miara) - dostarcza opis sposobu pomiaru wykorzystania zasobu. Miarą może wykorzystanie maksymalne, minimalne, średnie, łączne.
  • unit (jednostka) - atrybut, używany w celu wyrażenia jednostki miary, która jest niepoliczalna w odniesieniu do czasu/ilości lub ich kombinacji np. ilość odwołań, sygnały, błędy, wiadomości itp


Elementy globalne posiadają też wspólne własności, z których każdy może wystąpić w danej sesji co najwyżej raz.
Zaliczamy do nich:

  • RecordIdentity (identyfikacja kroki) - element ten może zawierać informacje, które identyfikują elementy UsageRecord lub UsageRecords. Posiada następujące atrybuty: recordId (id krotki), createTime (określa, kiedy dany UsageRecord został stworzony). Każdy UsageRecord musi zawierać ten element,
  • JobIdentity (id zadania) - jednoznacznie identyfikuje zadanie z danym wykorzystaniem zasobu,
  • GlobalJobId (globalny identyfikator zadania)
  • ProcessId (id procesu) - jeżeli wykorzystanych zostało kilka procesów, każdy z nich może zostać zgłoszony jako ProcessId element.
  • UserIdentity (identyfikacja użytkownika) - zawiera z kolei element LocalUserId,
  • JobName (nazwa zadania) - zawiera nazwę zadania, bądź aplikacji, która spowodowała wygenerowanie informacji o wykorzystaniu zasobu,
  • Charge (opłata) - określa łączną kwotę do zapłaty określoną przez wykorzystywany system powiązaną z użytym zasobem. Może zawierać dodatkowe atrybuty, tj. description (opis), unit (jednostka), formula (formuła wykorzystana do wyliczenia opłaty),
  • Status (status) - status zadania. Może przyjąć jedną z następujących wartości: aborted (anulowane), completed (zakończone), failed (zakończone błędem), held (zatrzymane), queued (zakolejkowane), started (rozpoczęte), suspended (wstrzymane),
  • CpuDuration (wykorzystany czasem procesora),
  • EndTime (czas, zakończenia wykorzystania zasobu). Jest to element opcjonalny,
  • MachineName (nazwa maszyny, na której uruchomiono zadanie),
  • Host (nazwa hosta, na którym uruchomiono zadanie),
  • SubmitHost (nazwa hosta, z którego zadanie zostało zlecone),
  • Queue (kolejka) - element specyfikujący kolejkę, która uruchomiła zadanie,
  • ProjectName (nazwa projektu) - specyfikuje nazwę/identyfikator projektu lub grupy pozwiązanej z wykorzystanym zasobem,


Dodatkowo z elementami globalnymi związane są atrybuty rozróżniane na podstawie miary lub typu. Mogą one występować wielokrotnie w obrębie jednego UsageRecord jeśli użycie zasobu mierzone jest przy pomocy kilku jednoznacznie określonych miar. Pod pojęciem miar rozumiemy informację, czy zużycie zasobu rozumiane jest jako min (minimalne), max (maksymalne), avg (średnie), total (łączne).
Do opisywanych elementów zaliczmy:

  • Network (sieć) - wykorzystanie interfejsu sieciowego (transfer),
  • Disk (dysk) - wykorzystanie przestrzeni dyskowej,
  • Memory (pamięć) - wykorzystanie pamięci,
  • Swap (plik wymiany) - wykorzystanie pliku wymiany,
  • NodeCount (liczba węzłów) - liczba wykorzystanych węzłów (definicja węzłów może zależeć od architektury),
  • Processors (procesory) - liczba wykorzystanych procesorów. Pojawia się tutaj atrybut consumptionRate, który oznacza procentowe wykorzystanie procesorów.
  • TimeDuration (czas trwania) - specyfikuje czas, w którym zasób był wykorzystany,
  • TimeInstant - czas dodatkowy, który przypisany może zostać wykorzystanemu zasobowi np. czas zlecenia zadania zamiast czasu rozpoczęcia.


Niezbędne (wybrane) informacje zostały w odpowiedni sposób zamodelowane w bazie danych LW.


UAKTUALNIENIE DANYCH ROZLICZENIOWYCH W BAZIE DANYCH LW

Uaktualnianie danych rozliczeniowych w bazie danych LW następuje każdorazowo po zakończeniu zadania. W przypadku zadań wykorzystujących przyrządy pomiarowe informacja ta przekazywana jest z modułu monitoringu, w odniesieniu do zadań obliczeniowych komunikat wysyłany jest z serwerów obliczeniowych, na których przeprowadzane są obliczenia.
Komunikat taki niesie ze sobą informacje o użytkowniku oraz laboratorium, do którego on należy, wykorzystanym typie zasobu oraz okresie czasu, na podstawie, którego ma zostać obliczony koszt zadania. Dodatkowo limit obliczeniowy, który przyznawany jest każdemu z użytkowników przez administratorów pomniejszany jest jednocześnie o wyliczony wcześniej koszt wykonania zadania.


OBLICZANIE KOSZTÓW

Jak wspomniano moduł rozliczeniowy wykorzystywany jest do uzyskiwania informacji rozliczeniowych nt. danego użytkownika/laboratorium oraz zasobów, które z kolei wykorzystywane są przez moduł szeregowania globalnego (GS) do procesu planowania i szeregowania zadań. Moduł GS przed zaszeregowaniem zapytuje MR, czy szacowany przez niego koszt wykonania zadania mieści się w przyznanym użytkownikowi limicie. Jeśli odpowiedź jest pozytywna zadanie zostaje zaszeregowane.
Koszty dla zasobów eksperymentalnych obliczane są na podstawie danych zawartych w bazie danych laboratorium. Stanowią one sumę części składowych obliczanych na podstawie operacji mnożenia kosztów jednostkowych przez odpowiednie okresy czasu wyrażone w minutach.
Dla pozyskania informacji nt. zasobów obliczeniowych konieczne jest odwołanie do specjalnych serwisów działających w środowisku gridowym. Przy pozyskiwaniu tych informacji wykorzystano opracowany przez GGF (Global Grid Forum), a ściślej przez URWG standard przesyłania danych rozliczeniowych między dwoma niezależnymi systemami w postaci danych XML.


PRZYGOTOWANIE DANYCH STATYSTYCZNYCH DO WIZUALIZACJI

Użytkownik wypełniając odpowiednie pola w formularzu dostarczonym mu przez portal WWW, a następnie zatwierdzając go, powoduje wysłanie komunikat do modułu rozliczeniowego z prośbą o dostarczenie danych niezbędnych do wygenerowania danych statystycznych. W zależności od rodzaju wybranej statystyki wysyłane jest odpowiednie zapytanie do bazy danych. Dane te są następnie zbierane i przesyłane z powrotem do portalu, gdzie ulegają przetworzeniu i prezentowane są w postaci wykresów, bądź tabel. Format przesyłanych danych został ujednolicony tak, aby zmniejszyć nakład czasowy związany z rozpatrywaniem wyników każdego zapytania z osobna.