Popularnym ostatnio przedmiotem wielu rozważań i prac naukowych jest tematyka związana z przetwarzaniem w rozproszonych strukturach obliczeniowych typu grid. Określenie to odnosi się do systemu umożliwiającego jednolity i niezależny od lokalizacji dostęp do geograficznie i organizacyjnie odległych zasobów. W ogólności grid zapewnia dostęp do rozproszonych zbiorów zdanych, mocy obliczeniowej, ale także pozwala na zdalną współpracę użytkowników i obsługę różnego rodzaju urządzeń, czy wręcz instrumentów badawczych. Pojęcie gridu obliczeniowego dotyczy zaś wykorzystania tego typu struktury do przeprowadzania obliczeń wymagających dużych mocy, często nieosiągalnych dla pojedynczego ośrodka badawczego. Dane (w odróżnieniu np. od gridów danych, czy gridów informacyjnych) są składowane i przesyłane odpowiednio do zapotrzebowania procesów obliczeniowych i systemu zarządzania. Od tego momentu pojęcie grid dotyczyć będzie właśnie gridów obliczeniowych.
Pojawia się często wątpliwość na ile i w jaki sposób grid różni się od systemu rozproszonego czy klastra. Do kilku podstawowych różnic zalicza się:
niezależność udostępnianych zasobów - nie są one częścią gridu, ale tworzą grid,
wyższy stopień heterogeniczności - grid definiuje interfejsy, z których korzystać mają wszystkie dostępne zasoby,
szerszą gamę zasobów - zasobem może być również wspomniany wcześniej instrument badawczy,
dostosowanie do wymagań użytkownika - użytkownik ma wpływ na decyzje systemu o wyborze zasobu, nawet jeśli zmniejszy to wydajność systemu jako całości.
Zbiór zagadnień związanych z przetwarzaniem w środowisku typu grid obejmuje szereg usług, do których nalezą m.in.:
usługi informacyjne, które pozwalają użytkownikowi poznać zbiór dostępnych zasobów możliwych do wykorzystania (serwerów, oprogramowania oraz innych usług), monitorować uruchomione zadania, stan sieci i awarie,
bezpieczeństwo obejmujące autoryzację, autentykację i prywatność użytkowników,
usługi zlecania zadań umożliwiające użytkownikowi zlecenie zadania obliczeniowego z wykorzystaniem dowolnego zasobu w ramach nadanych mu uprawnień,
udostępnianie, rezerwację i przydział zasobów oraz usługi co-scheduling'u, umożliwiające równoczesne wykorzystywanie więcej niż jednego zasobu,
usługi komunikacyjne i przesyłania danych, umożliwiające komunikację niezależnie od lokalizacji i z zadanym poziomem jakości,
system rozliczeń za wykorzystane zasoby.
Różne struktury gridowe różnią się również między sobą w sposobie realizacji wymienianych wcześniej założeń. Dla przykładu korzystanie z zasobów danych w niektórych strukturach typu grid umożliwia przynajmniej jedna z usług:
wspólna przestrzeń nazw dla zbiorów danych i wszystkich innych obiektów wchodzących w skład gridu,
dostęp do katalogów metadanych opisujących dostępne zasoby,
wykorzystanie brokera zasobów danych,
globalny system zarządzania danymi umożliwiający dodatkowo automatyczne lokalne składowanie (cache) zbiorów danych dla zwiększenia wydajności.
Grid obliczeniowy jest mocno uzależniony od właściwego i sprawnego dostępu do danych. Pomimo braku funkcji czysto informacyjnej można wręcz przyjąć, że jest on najbardziej podatny na brak sprawności komunikacji ze wszystkich odmian gridów. Gorsza komunikacja objawia się zwykle w przestojach procesorów w oczekiwaniu na dane, co wpływa na ogólną wydajność. Takich sytuacji pozwoliłaby uniknąć przynajmniej przybliżona znajomość wymagań komunikacyjnych konkretnego zadania. Mogłaby ona być przeprowadzana na bazie informacji dostarczanych jawnie przez użytkownika lub automatycznie przez analizę samego zadania.
Zadania mogłyby także żądać pewnego poziomu obsługi i zapewnić takie lub inne parametry jakościowe poprzez uprzednią rezerwację zasobów. Jakość komunikacji można oceniać stosując np. klasyczne parametry QoS tj. wymagane opóźnienie, maksymalna przepustowość, itd. Obliczenia w zależności od ich charakteru mogą bowiem przesyłać duże porcje danych lub niewielkie ilości, do komunikacji może dochodzić często lub rzadko, a opóźnienia mogą być w pewnym stopniu tolerowane, bądź całkowicie niedopuszczalne.
Scenariusz postępowania wobec przykładowego zadania obliczeniowego angażuje przynajmniej kilka usług gridu. W uproszczeniu usługi informacyjne dostarczają tu informacji dotyczących stanu sieci. Na bazie wiedzy zgromadzonej nt. zapotrzebowania zadania na pewien poziom jakości komunikacji dobierane są odpowiednie lokalizacje sieci, najbardziej właściwe do uruchomienia danej części zadania. Usługi komunikacyjne zapewniają realizację odwołań w jednolitej przestrzeni nazw, a mechanizmy QoS i rezerwacji zasobów gwarantują odpowiedni poziom ich obsługi.
Najbardziej interesujące problemy, związane z realizacją platformy obliczeniowej umożliwiającej komunikację na przewidywalnym poziomie QoS, dotyczą:
opisu oraz automatycznej analizy zadania pod kątem wymaganej ilości i jakości komunikacji,
sposobu zebrania parametrów aktualnego stanu sieci i metody opisu tych parametrów w sposób nadający się do dalszego przetwarzania, zapewnienia jakości obsługi i jej ewentualnej rezerwacji,
algorytmów doboru i wskazania najdogodniejszych lokalizacji dla umiejscowienia obliczeń, oraz ewentualnego pośrednictwa w procesie komunikacji na zasadzie proxy,
rzeczywistego zagwarantowania jakości poprzez wykorzystanie mechanizmów niżej leżących warstw sieci.