A rácsszámítások (angolul: grid computing, elosztott számítás és adattárolás vagy csak grid) az elosztott számítások egy olyan változata, amelynek több jelentése is lehet:
Több független számítógépfürt, amelyek azért viselkednek gridként, mert több adminisztratív tartományban elhelyezett erőforrásból állnak.
Mérhető kereskedelmi számítási vagy adattárolási szolgáltatás, ismertebb nevén közműszerű számítás vagy számítási felhő (cloud computing).
Egy „virtuális szuperszámítógép”, amely egy szervezeten belüli szabad erőforrásokból áll.
Egy „virtuális szuperszámítógép”, amely földrajzilag elosztott számítógép-hálózatból áll. Az önkéntes számítás, amely elsősorban a tudományos, matematikai és kutatói problémákra fókuszál, napjainkban a leggyakoribb alkalmazása e technológiának.
A számos különböző definíció együttesen fedi le az "elosztott számítás” fogalmát, és néha előfordul, hogy két különböző kifejezést szinonimaként használják. Ez az írás azokra az elosztott számítási technológiákra fókuszál, melyek különböznek a hagyományos, dedikált fürtökből. (Egyébként lásd: számítási fürtök.)
Funkcionálisan többféle rácsszámítást különböztetünk meg:
Számítási grid (beleértve a CPU-idő-gyűjtő grideket is), amely a nagy számításiidő-igényű feladatok végrehajtására koncentrál.
Adatgridek, vagy más néven olyan rendszerek, amelyek nagy mennyiségű adat felügyelt elosztására és menedzselésére képesek.
Speciális erőforrásokat tartalmazó gridek, amelyhez egy saját erőforrás tartozik (például teleszkóp), és ahol a gridet arra használják, hogy távolról vezéreljék, illetve feldolgozzák az általa szolgáltatott adatokat.
2007 folyamán a számítási felhő fogalma egyre népszerűbbé vált. Ez nagyon hasonlít Ian Foster „gridszámítás”-definíciójához. A gyakorlatban minden számítási felhő egyben grid, de nem minden grid menedzselhető „felhőszerű” módon.
Gridek vs. hagyományos szuperszámítógépek
Az "elosztott" vagy "grid" számítás általánosságban a párhuzamos feldolgozás egy speciális típusa, amely hagyományos hálózati interfészen (például Ethernet) keresztül (privát vagy publikus) hálózat segítségével összekapcsolt önálló (saját CPU-val, adattárolóval, tápegységgel, hálózati interfésszel stb. rendelkező) számítógépek segítségével történik. Szemben a hagyományos szuperszámítógép rendszerekkel, amelyek processzorai nagysebességű, belső busz-rendszeren keresztül kapcsolódnak egymáshoz.
Az elosztott számítástechnika legnagyobb előnye, hogy minden csomópontja kizárólag olyan, könnyen beszerezhető elemekből áll, amelyek megfelelő kombinálásával egy sokprocesszoros szuperszámítógép teljesítményével egyenértékű számítási erőforrást kapunk, azok árának töredékén. Ennek oka az, hogy a viszonylag alacsony sorozatszámban gyártott szuperszámítógépek tervezési és előállítási költségei relatíve magasabbak a rendkívül hatékony tömegtermelésben előállított PC-architektúrájú gépek hasonló költségéhez képest. A hátránya ugyanakkor az, hogy a különböző processzorok és a helyi adattároló területek nem rendelkeznek nagy teljesítményű összeköttetésekkel, így a megoldást elsősorban azok az alkalmazások tudják jól kihasználni, amelyek a számítási feladatot több párhuzamosan futó szálon, a szálak között keveset kommunikálva végzik.
A nagy földrajzi skálázhatóság a grid rendszerek esetén nagyon előnyös, annak következtében, hogy minimális igény van arra, hogy a csomópontok között nagy sávszélességű kapcsolat létezzen. A hagyományos szuperszámítógépek szintén nagy kihívást jelentenek a szükséges elektromos áram és hűtés biztosítása tekintetében. A szuperszámítógépek és gridek együtt is használhatók összetett párhuzamos számítások szimultán futtatására, ahol a számítási feladatok lehetnek ugyanazon projekthez tartozó részfeladatok, vagy teljesen különböző alkalmazások egyaránt. A két különböző infrastruktúra, eltérő programozási metodikát igényel.
A szuperszámítógépek és a grid rendszerek között programozás és a telepítés tekintetében is van különbség. Költséges és nehézkes lehet például olyan programokat írni, melyek olyan szuperszámítógépes környezetben futhatnak, ahol speciális operációs rendszer fut, vagy a rendszer megköveteli azt, hogy a konkurens hozzáférés problémájával is foglalkozzunk. Ha egy probléma kielégítően párhuzamosítható, akkor egy vékony grid szoftver réteg lehetővé teszi azt, hogy egymástól független programok fussanak több gépen, más-más bemeneti adathalmazt feldolgozva. Ez teszi lehetővé azt, hogy az alkalmazást hagyományos gépen fejlesszük, leegyszerűsítve ezáltal a konkurens memóriahozzáférés kezeléséből adódó problémákat.
Tervezési megfontolások és változatok
A grid jellegzetessége, hogy több egyénhez, vagy szervezethez (szervezeti egységhez) tartozó számítási erőforrásból alakítható ki. Ez a tény elősegítheti a közműszerű számítási infrastruktúrák létrehozását, vagy megkönnyítheti az önkéntes számítási hálózatok kialakítását.
Az elosztott jellegnek egy lényeges hátránya azért van: azok a számítógépek, amelyek a számítási feladatokat elvégzik, nem feltétlenül megbízhatóak. Ezért a rendszer tervezőinek olyan tervezési szempontokat is figyelembe kell venni, amelyek segítségével megakadályozható az hogy az hibásan működjön, vagy rosszindulatú felhasználók hamis, félrevezető, illetve hibás eredmények segítségével, a rendszert támadási bázisul használják. Ezt gyakran például úgy érik el, hogy ugyanazt a feladatot legalább két, véletlenszerűen kiválasztott (vélhetően különböző személyek által menedzselt) csomóponton futtatják és ellenőrizik, hogy a két futtatás ugyanazt az eredményt produkálják-e. E módszerrel a hibás csomópontok, illetve a hibák azonosíthatóak.
A hardver elemek központi menedzsmentjének hiánya miatt nem lehet garantálni, hogy a csomópontok nem fognak kiesni a hálózatból. Néhány csomópont típus (például laptopok vagy modemen keresztül elérhető gépek) elméletileg felhasználhatók számítási feladatokra, de a hálózati kapcsolatuk esetlegessége miatt nagyobb mennyiségű munkát kell rájuk ütemezni, és amennyiben a várható határidőn belül nem érhetők el a futtatás eredményei, az általuk végzett feladatokat más erőforrásokon kell elindítani.
A megbízhatóság, a teljesítmény, a rendelkezésre állás, illetve az alkalmazások fejlesztésével kapcsolatos nehézségek mind hatással lehetnek arra a döntésre, hogy a számítás-igényes alkalmazásokat egy dedikált fürtön futtatjuk, vagy részben dedikált, de saját erőforrásokon, vagy netán az Internet segítségével, önkéntes hozzájárulók által biztosított erőforrásokon.
Sok esetben a részt vevő csomópontoknak meg kell bízniuk egy központi rendszerelemben, hogy az onnan érkező grid alkalmazások nem fognak visszaélni a számukra adományozott jogosultságokkal, nem fognak más helyi programmal interferálni, nem fognak privát adatokat a számítási erőforrásról kijuttatni, illetve nem hoznak létre helyben új biztonsági lyukakat. Néhány rendszer nem igényli ezt a feltétlen bizalmat; ezek azok, amelyek virtualizációs technikát alkalmazva szeparálják a feladat futtatókörnyezetét a privát rendszerkörnyezetüktől.
Publikus rendszerek, vagy egy adott szervezeten belül több szervezeti egységen átívelő gridek esetén szükségük lehet arra, hogy heterogén környezetet (különböző operációs rendszerek és számítógépes architektúrák) is kezeljünk. Sok esetben kompromisszumot kell kötnünk a futtatandó alkalmazás fejlesztési költsége és operációs rendszerkörnyezet támogatottsága között. Ebben segít az ún. scripting nyelvek használata, amely segítségével platformfüggetlen alkalmazásokat lehet írni, bár a futásidejű fordítás, illetve a nyelv optimalitásának hiánya miatt azok néhány platformon teljesítményveszteséget okozhatnak.
A különböző köztesréteg fejlesztési projektek egyrészt olyan általános infrastruktúrát készítettek, amelyek lehetővé teszik a bennük foglalt erőforrások tudományos és ipari célú használatát, másrészt azt is lehetővé teszik, hogy segítségükkel új grid infrastruktúrákat építsünk fel. A BOINC egy a népszerű akadémiai projektek közül, amely önkéntesek segítségével épül (kapcsolódást lásd a lap alján).
CPU-gyűjtés
CPU-gyűjtés, ciklusidő-gyűjtés, ciklusidő lopás vagy megosztott számítás. E kifejezések mindegyike arra az elvre utal, ahogy egy szervezet vagy az internet más (például irodai) célra felhasznált erőforrásait aknázzuk ki számítási célokra is. Ez a módszer tipikusan asztali számítógépek erőforrásait alkalmazza olyankor, amikor egyébként kihasználatlanok maradnának. Például: este, ebéd alatt, hétvégén, vagy amikor nincs a gép előtt a felhasználó.
Az önkéntes számítási projektek kizárólag ezt a CPU gyűjtési modellt használják.
A gyakorlatban a részt vevő számítógépek a CPU-felhasználási lehetőségen túl lemezterületet, RAM-ot és hálózati sávszélességet is nyújtanak. A csomópontoknak időről időre fel kellett függeszteniük saját működésüket, hogy az erőforrásokat eredeti rendeltetésük szerint is használhassák, így már a modell megtervezésekor fel kellett készíteni az alkalmazásokat, illetve magát a rendszert is az ebből adódó kiesésekre checkpointing (ellenőrzőpontozás) segítségével.
Történet
A Grid számítás 1990-es évekből eredeztethető. A "The Grid: Blueprint for a new computing infrastructure" című cikkében Ian Foster és Carl Kesselman alkotta meg, az elektromos áramhoz hasonlatos módon, könnyen hozzáférhető számítási erőforrás metaforájaként.
A distributed.net 1997 elején, a SETI@home 1999-ben tette népszerűvé a felesleges CPU idő gyűjtését valamint az önkéntes számítást támogató technológiáit, amelyek képesek voltak hálózatba kötött számítógépek feldolgozó-kapacitását CPU-intenzív feladatok megoldása is használni.
A grid nagy vívmányai (idetartozik az elosztott számítás, objektumorientált programozás, fürt számítástechnika, webszolgáltatások és sok más) Ian Foster, Carl Kesselman és Steve Tuecke nevéhez fűződnek, akiket sokan a grid technológia atyjainak tekintenek.[1] Közös erővel készítették el a Globus Toolkit rendszert, amely egyesíti a számítási-képességet, a tárolási erőforrás menedzsmentet, biztonsági szolgáltatásokat, adat mozgatást, monitorozást és egy olyan eszközkészletet, amely további szolgáltatások fejlesztését teszi lehetővé ugyanazon a infrastruktúrán. Ez magába foglalja a tárgyalási mechanizmust, trigger szolgáltatásokat és az információgyűjtés lehetőségét. A Globus Toolkit vált a grid fejlesztés defacto szabványává. Ugyanakkor ma már számos egyéb eszköz is elérhető az iparban, vagy a globális gridek terén felmerülő igények kielégítésére.
A grid rendszerek lehetőséget biztosítanak arra, hogy segítségükkel Nagy Kihívásokat oldjunk meg, mint például fehérjedokkolási kísérletek, vagy pénzügyi modellezés, földrengés szimuláció, és klíma / időjárás modellezés. Gridek segítségével egy szervezeten belül hatékonyabban használhatjuk ki az információs technológia nyújtotta erőforrásokat is, amelyek így közműszerű számítási erőforrásként érhetők el kereskedelmi ügyfelek és kutatók számára. A felhasználók, az áram- és vízszolgáltatáshoz hasonlóan, csak a ténylegesen igénybe vett szolgáltatásért fizetnek.
A grid számítás alapelveit a National Science Foundation National Technology Grid-je, a NASA's Information Power Grid-je, a Pratt & Whitney, a Bristol-Myers Squibb, Co., és az American Express [forrás?] jelenleg sikeresen használja.
A leghíresebb szabad CPU-gyűjtő hálózat a SETI@home volt, amely több mint 3 millió számítógépet kapcsolt össze: tartósan 23,37 teraflops (élete alatt eddig összesen 979 teraflop) számítási teljesítményt eredményezve 2001. szeptember óta [2].
2005 májusában a Folding@home teljesítménye 186 teraflop volt 160 000 gép felhasználásával.
Egy másik ismert projekt a distributed.net, amely 1997-es indulását követően vált rendkívül sikeressé. Sok sikeres alkalmazói projekt is fűződik a nevéhez.
2007. április 27-ig a United Devices működtette a Grid MP nevű termékén alapuló, rákkutatás témájú United Devices Cancer Research Projectjét, amely az Internethez csatlakozó önkéntesek szabad erőforrásaival gazdálkodott. 2005 júniusáig a Grid MP körülbelül 3 100 000 számítógépen futott. [3].[4]
Az Európai Unióban született Enabling Grids for E-sciencE, amely ma már számos Ázsiai, az Egyesült Államokbeli csomópontot is tartalmaz, és amely a szintén európai European DataGrid (EDG) nevű projekt folytatása, a Föld legnagyobb számítási hálózata. Az LHC Computing Gridet a[4] (LCG) számára fejlesztették ki abból a célból, hogy a CERN-ben folyó Large Hadron Collider kísérletekhez használják fel. A mérések során keletkező igen nagy mennyiségű, másodpercenkénti néhány gigabyte méretű adatot kell feldolgoznia. Az aktív LCG site-ok listája megtalálható a https://web.archive.org/web/20080320145926/http://goc.grid.sinica.edu.tw/gstat/ weboldalon. Az EGEE infrastruktúrát élőben itt lehet monitorozni. A fontosabb szoftver komponensek és azok dokumentációi is publikusak.[5]
Definíciók
A “Grid számítás” fogalmára nagyon sok definíció létezik:
Ian Foster "What is the Grid? A Three Point Checklist"[6] című cikkében, az alábbi három követelményt határozza meg:
Plaszczak/Wellner[7] a grid technológiát a következőképpen definiálja: "Az a technológia, amely erőforrás virtualizációt, szolgáltatás (erőforrás) megosztást tesz lehetővé szervezetek között."
Az IBM a grid számítást az alábbi módon értelmezi: "Nyílt szabványok és protokollok alkalmazása azért, hogy alkalmazásokat, adatokat, adattárolási kapacitást és számos más számítógépes erőforrást érjünk el az Interneten keresztül." A grid egy párhuzamos és elosztott rendszer amely több szervezeten átívelve megoszthatóvá, kiválaszthatóvá teszi, és összegyűjti az elosztott erőforrásokat, a következő igényeket tartva szem előtt: elérhetőség, kapacitás, teljesítmény, ár és a felhasználók szolgáltatás minőségi igényei.[8]
A számítási fogalmak egy korai közműszerű értelmezése 1965-ból, Fernando Corbatótól (MIT) származik. Fernando és a Multics operációs rendszer néhány más tervezője megálmodták a számítógép egy, az áramszolgáltatókhoz vagy vízszolgáltatókhoz hasonlóan működő számítógép közművet. http://www.multicians.org/fjcc3.html
Buyya úgy definiálta a gridet mint egy "párhuzamos és elosztott rendszert, amely lehetővé teszi földrajzilag elosztott autonóm erőforrások elérhetőségen, képességen, teljesítményen, költségen, valamint a felhasználók által elvárt minőségi követelményeken alapuló dinamikus, futásidejű megosztását, kiválasztását, összegyűjtését.[9]
A CERN, amely a világ legnagyobb grides felhasználói táborát képviseli, azt mondja A Gridről: "Számítógépes erőforrásokat és adattárolási kapacitásokat az Interneten keresztül megosztani képes szolgáltatás."[10]
A grideket három kategóriába sorolhatjuk: ágazati, vállalati és globális gridek. Ezek közül az első megfelel egy irodában, kezdetben egy csoport által használt erőforrások összességének, mint például egy műszaki osztály összekapcsolt asztali számítógépeinek, egy fürtnek illetve ezekhez kapcsolódó berendezéseknek. Később ez fejlődik tovább vállalati griddé, ahol a nem műszaki alkalmazottak számítógépes erőforrásai is felhasználhatók tárolásra, illetve számításra. A globális grid vállalati és ágazati gridek összekapcsolása lehet, amely felhasználható kereskedelmi és kollaboratív célokra egyaránt.
World Community Grid: Elsődleges célja számos tudományos projekt emberközelibbé tétele, mint például a rák gyógyítását, a szekvenciális emberi génállomány megismerését, az AIDS legyőzését célzó kutatások, stb. Az együttműködés lehetősége mindenki számára adott, aki szabad PC erőforrással szeretné támogatni ezen törekvéseket.