Hoe Grid Computing verschillende machines in een supercomputer verandert

9

Een onderzoeker moet de vouwing van eiwitten simuleren. Ze logt in op een terminal, niet om één machine te gebruiken, maar om toegang te krijgen tot een uitgebreid netwerk dat de lading afhandelt. Een handelaar moet aandelenbewegingen voorspellen. Hij haalt gegevens op op een draagbare PDA en haalt zo stroom uit de backend-infrastructuur van zijn bedrijf. Een militaire commandant coördineert een aanval. Hij vertrouwt niet op één enkele serverfarm; hij maakt gebruik van hulpbronnen in drie afzonderlijke, gescheiden militaire netwerken om een ​​strategie te formuleren.

Deze scenario’s klinken als sciencefiction of fantasie op ondernemingsniveau, maar ze verwijzen allemaal naar dezelfde onderliggende architectuur: grid computing.

Het is het digitale equivalent van het bundelen van middelen. In een raster beschikt u niet alleen over de stroom van uw eigen computer. U hebt toegang tot de verwerkingskernen, het geheugen en de opslag van elke geautoriseerde machine in het systeem. Het is gedistribueerd computergebruik op steroïden. Het doel? Om een ​​netwerk van ongelijksoortige computers te laten fungeren als één enorme, verenigde supercomputer.

De mythe van de enkele machine

Historisch gezien kocht je een snellere computer als je meer kracht nodig had. Je hebt meer RAM toegevoegd. Je hebt op een grotere harde schijf geslagen. Er zat een plafond aan wat een enkele doos kon doen, ongeacht hoeveel geld je erin gooide. Grid computing doorbreekt dat plafond.

Zie het als een kampeertrip. Je gaat alleen. Je hebt één tentje. Je vriend heeft er nog een. Eén brengt het eten. Men brengt de SUV. Als je alleen gaat, moet je alles dragen. Je wordt beperkt door je eigen kracht en je eigen uitrusting. Als u samen reist, deelt u de lading. Je maakt gebruik van elkaars vaardigheden. De reis wordt gemakkelijker, sneller en efficiënter omdat niemand de hele last draagt.

Grid computing past deze logica toe op data.

Een standaardcomputer vertrouwt op zijn eigen Central Processing Unit (CPU). Deze microprocessor verwerkt cijfers en stuurt gegevens aan. Het is ook afhankelijk van geheugen (RAM), tijdelijke opslag met hoge snelheid dicht bij de CPU, en opslag (harde schijven of databases), die permanent maar langzamer is. Standaard zit een gebruiker gevangen binnen de grenzen van zijn eigen hardware.

In een raster verdwijnen die grenzen. Het systeem koppelt deze bronnen aan elkaar. Wanneer u een query uitvoert, gebruikt het raster niet alleen uw CPU. Het stuurt delen van de taak door naar duizenden andere machines in het netwerk. Voor de gebruiker voelt het als magie. Je hebt toegang tot de collectieve kracht van het hele elektriciteitsnet, en niet alleen tot het silicium dat voor je ligt.

Het is niet nieuw, maar het is nog niet klaar

Hier is het addertje onder het gras: grid computing is geen nieuw idee. Het is een specifiek type gedistribueerd computergebruik. Gedistribueerd computergebruik bestaat al tientallen jaren, waarbij verschillende computers bronnen delen via een netwerk. Maar echte grid computing gaat nog verder. In de ideale staat wordt elke bron gedeeld. Elke processorcyclus en elke byte aan opslag wordt een gemeenschapsmiddel.

De toegang zou naadloos moeten zijn. De interface mag er niet uitzien alsof je een mainframe hackt. Het zou eruit moeten zien alsof u op uw eigen bureaublad werkt. Het verschil is de onzichtbare schaal van de pk’s achter de schermen.

De technologie is echter verre van geperfectioneerd. We zitten nog steeds in het rommelige midden. Computerwetenschappers en ingenieurs worstelen momenteel met standaarden en protocollen. Op dit moment zijn veel netwerksystemen afhankelijk van propriëtaire software. Ze zijn in silo’s ondergebracht. Als u zich wilt aansluiten bij het netwerk, heeft u vaak specifieke, door de leverancier bepaalde tools nodig. Totdat de industrie het eens wordt over een universele reeks regels, is adoptie onhandig. Organisaties aarzelen om te investeren in infrastructuur die misschien niet goed bij anderen past.

De jargonval

Als u zich verdiept in de documentatie over grid computing, verdrinkt u in acroniemen. Het veld leent zwaar van andere technologiesectoren. Om te begrijpen hoe het werkt, moet je het signaal van de ruis scheiden.

Grid computing is gerelateerd aan verschillende andere modellen, en de lijnen zijn vaak vaag:

  • Gedeelde computers: Dit is de brede categorie. Het verwijst naar elke verzameling computers die verwerkingskracht delen om een ​​taak te voltooien. Het is een beetje generiek.
  • Utility Computing: Dit wordt vaak geleverd via Software-as-a-Service (SaaS). Zie het als elektriciteit. Je bouwt geen energiecentrale; u sluit de stekker aan op het elektriciteitsnet en betaalt voor wat u gebruikt. Bedrijven bieden opslag- of verwerkingskracht op gemeten basis aan.
  • Cloud Computing: Dit is tegenwoordig de meest bekende term. Bij cloud computing zijn applicaties en opslag ‘live’ op internet. U bent niet de eigenaar van de hardware; u huurt de toegang ertoe. Terwijl cloud en grid hun wortels delen, richt grid zich meer op het bundelen van inactieve bronnen voor enorme computertaken, terwijl cloud zich vaak richt op het leveren van diensten via internet.

Om door deze concepten te navigeren, moet u het lexicon kennen. Hier zijn de basisprincipes:

  • Cluster: Een groep netwerkcomputers die bronnen delen. Ze werken samen als één geheel.
  • Knooppunt: Elk apparaat in een netwerk dat gegevens kan verzenden, ontvangen of omleiden. Controleknooppunten beheren de stroom.
  • XML (Extensible Markup Language): Een codeertaal die gegevens beschrijft. Het is door mensen leesbaar en machinaal leesbaar. Controleknooppunten gebruiken XML-derivaten zoals WSDL (Web Services Description Language) om te begrijpen hoe om te gaan met specifieke applicaties en gegevenstypen.
  • Hub: Een centraal punt in een netwerk waar meerdere apparaten verbinding mee maken.
  • IDE (Integrated Development Environment): De toolkit die programmeurs gebruiken om applicaties te bouwen.
  • Sandbox: Een geïsoleerde omgeving die wordt gebruikt voor het testen van applicaties zonder het hoofdsysteem in gevaar te brengen.

De technologie werkt. Het concept is goed. Maar de versnippering van normen blijft het grootste obstakel. Totdat het ‘loodgieterswerk’ van het elektriciteitsnet gestandaardiseerd is, zullen we geïsoleerde machtseilanden blijven zien in plaats van een werkelijk verenigde mondiale supercomputer.

De technische woordenschat

Om grid computing te begrijpen, moet je de taal spreken. Het zijn niet alleen modewoorden; het zijn de mechanismen van hoe ongelijksoortige machines met elkaar praten.

Interoperabiliteit is de basis. Zonder dit zijn uw pc en een Macintosh eilanden. Ze hebben verschillende besturingssystemen, verschillende architecturen. Ze kunnen niet samenwerken tenzij de software die kloof overbrugt.

Dan zijn er nog open standaarden. Eigen standaarden sluiten u op in het ecosysteem van één leverancier. Open standaarden zijn openbaar. Iedereen kan ze adopteren. Dit maakt de integratie veel eenvoudiger omdat iedereen volgens hetzelfde regelboek speelt.

We hebben het ook over parallelle verwerking. Dit is niet alleen multitasken op één chip. Het gebruikt meerdere CPU’s om één enkel rekenprobleem op te lossen. Het is nauw verbonden met gedeeld computergebruik, waarbij onaangeboorde bronnen uit een netwerk worden overgeheveld om de klus te klaren.

Een platform is slechts de basis. Het kan een besturingssysteem, een architectuur, een taal of zelfs een website zijn. Ontwikkelaars bouwen er bovenop.

Als één server niet genoeg is, heb je een serverfarm nodig. Een cluster van servers die samenwerken aan taken die te complex zijn voor één enkele machine.

Maar het kopen van meer hardware is duur. Voer servervirtualisatie in. Deze techniek maakt gebruik van software om een ​​enkele fysieke server op te delen in meerdere exclusieve virtuele platforms. Elke virtuele server draait onafhankelijk zijn eigen besturingssysteem. Eén box kan tegelijkertijd een Linux-server en een Windows-server hosten. Dit werkt omdat de meeste servers het grootste deel van de tijd inactief zijn. Virtualisatie verlaagt de hardwarekosten voor gridsystemen die tientallen knooppunten nodig hebben.

In deze omgeving is een service elk softwaresysteem waarmee computers via het netwerk kunnen communiceren.

Communicatie is vaak afhankelijk van SOAP (Simple Object Access Protocol). Een set regels voor het uitwisselen van XML-berichten via een netwerk. Microsoft heeft het ontwikkeld. Het is de syntaxis voor het gesprek.

Gegevensbeheer brengt ons bij staat. In IT zijn alle persistente gegevens de status. Het overleeft de levenscyclus van de applicatie. Wanneer u boeken in een Amazon-winkelwagentje plaatst, zijn dat stateful gegevens. Amazon houdt uw selectie bij terwijl u browst. Stateful services maken apps in meerdere stappen mogelijk die afhankelijk zijn van consistente kerngegevens.

En tot slot vergankelijkheid. De mogelijkheid om een ​​service via het netwerk aan of uit te zetten zonder de hele operatie te laten crashen.

Bronnen delen

Dus, hoe zijn deze stukken met elkaar verbonden?

Verschillende organisaties zijn bezig met het creëren van gestandaardiseerde protocollen. Het doel? Maak grid computing-omgevingen plug-and-play.

Er bestaan ​​tegenwoordig rastersystemen. Maar compatibiliteit is wisselvallig. Waarom? Omdat elk systeem vaak een unieke set protocollen en tools gebruikt. Het kan zijn dat twee rasters niet met elkaar praten. Dat gebrek aan overeenstemming is het knelpunt.

Een functioneel gridcomputersysteem vereist doorgaans drie dingen:

  1. Een controleknooppunt. Meestal een server die administratieve taken afhandelt. Het is de coördinator.
  2. Een netwerk. Computers waarop speciale rastersoftware draait. Deze fungeren als gebruikersinterfaces en bronnenpools. Het netwerk kan homogeen zijn (hetzelfde besturingssysteem, dezelfde hardware) of heterogeen (een mengelmoes van alles). Het kan bedraad zijn of via het open internet.
  3. Middleware. Het werkpaard. Software waarmee verschillende computers een proces over het netwerk kunnen uitvoeren. Zonder middleware is communicatie onmogelijk. Er bestaat niet één format voor middleware, wat het fragmentatieprobleem alleen maar vergroot.

Het besturingsknooppunt is bezet. Het geeft prioriteit aan taken. Het plant het werk via het netwerk. Het bepaalt welke bronnen elke taak krijgt. Er wordt gecontroleerd op overbelasting. Cruciaal is dat het ervoor moet zorgen dat de lokale machine van de gebruiker niet vertraagt. Het netwerk moet gebruik maken van ongebruikte hulpbronnen. Als uw computer achterblijft wanneer het elektriciteitsnet actief is, faalt het systeem.

Het standaardisatieprobleem

Het potentieel is grenzeloos. Maar alleen als iedereen het eens is over protocollen en hulpmiddelen.

Zonder een standaardformaat zitten externe ontwikkelaars vast. Onafhankelijke programmeurs willen apps op het elektriciteitsnet bouwen, maar kunnen de compatibiliteit niet garanderen. Het kan zijn dat ze verschillende versies van dezelfde app voor verschillende systemen moeten bouwen. Dat is tijdrovend. Ontwikkelaars willen niet twee keer hetzelfde werk doen.

Met een gestandaardiseerde protocolset konden ontwikkelaars zich op één formaat concentreren. Eén codebasis. Eén rooster.

Tot die tijd zitten we met een gefragmenteerd landschap. Krachtig, ja. Maar rommelig.

Dat brengt ons terug bij de vraag: als de hardware er is en de software bestaat, waarom is dan niet elk netwerk een netwerk?

De veiligheidsparadox van gedistribueerde macht

Het koppelen van ongelijksoortige machines in één enkel computernetwerk klinkt als een utopische oplossing voor verwerkingskracht. Dat is het niet. Het is een logistieke hoofdpijn die gepaard gaat met veiligheidsrisico’s. Wanneer u twee computers met elkaar verbindt, laat staan ​​duizenden, roept u vragen op over privacy, toegangscontrole en het gebruik van hulpbronnen.

Middleware is het antwoord, of in ieder geval het huidige verband. Rasterprotocollen lossen deze problemen niet inherent op; ze maken het alleen eenvoudiger voor ontwikkelaars om de tools te bouwen die dat wel doen. De grote zorg? Encryptie.

De meeste ingenieurs vertrouwen op encryptie om gegevens veilig te houden. U codeert informatie zodat alleen degenen met de sleutel deze kunnen lezen. Om die code te kraken moet je doorgaans enorme getallen in hun priemdelers verwerken – een taak die een normale supercomputer jaren in beslag neemt. Maar hier is de ironie: een gridcomputersysteem kan als wapen worden ingezet om juist deze codes te kraken. Als er voldoende inactieve processors zijn gekoppeld, daalt de tijd die nodig is om sterke encryptie te doorbreken van jaren naar dagen.

“Het is mogelijk dat een hacker een gridcomputersysteem creëert met als doel gecodeerde informatie te kraken.”

Propriëtaire software biedt misschien een kleine bescherming, maar open standaarden – essentieel voor het functioneren van netwerken – laten de deuren wijd open. Elk knooppunt heeft specifieke software nodig om met het geheel te kunnen communiceren. Als die software een kwetsbaarheid heeft, loopt het hele elektriciteitsnet leeg.

Dan is er nog de kwestie van de toegang. Je kunt niet iedereen zomaar de vrije loop laten. Als een gebruiker alle bronnen opgebruikt, komt u in een impasse terecht. Het besturingsknooppunt loopt vast. Er gebeurt niets. Autorisatie- en authenticatieprotocollen worden dus niet meer onderhandelbaar. Alleen geselecteerde gebruikers krijgen volledige netwerktoegang. Alle anderen? Ze krijgen hun eigen machine terug, minus de extra pk’s.

Wie houdt de winkel in de gaten?

De middleware en het besturingsknooppunt fungeren als uitsmijters van het raster. Zij beheren de stroom. Ze zorgen ervoor dat geen enkele computer het netwerk domineert, en omgekeerd zorgen ze ervoor dat het netwerk de personal computer van een gebruiker niet voor elke laatste druppel CPU-cycli leeghaalt. Als het systeem u berooft van uw eigen computerbronnen, is het niet efficiënt. Het is vijandig.

Van sciencefiction tot laboratoriumbank

Waar gaat deze kracht eigenlijk heen? Niet in je videogames. Niet in uw spreadsheets.

De meeste operationele netwerken behoren tegenwoordig toe aan de academische wereld en het onderzoek. Technisch gezien zijn het ‘gedeelde computersystemen’ en geen echte, persistente ondernemingsnetwerken. Ze oogsten ongebruikte cycli. En ze doen zwaar werk.

SETI@home: Luisteren naar de Leegte

Het Search for Extraterrestrial Intelligence (SETI)-project heeft grid computing op de kaart gezet. Radiotelescopen verzamelen terabytes aan kosmisch geluid. Geen enkele computer kan die hooiberg niet doorzoeken op zoek naar een naald. SETI@home heeft een programma gemaakt dat miljoenen thuis-pc’s in een virtuele supercomputer verandert. Jij installeert het. Het bevindt zich op de achtergrond. Het analyseert gegevens op buitenaardse signalen. Als je Call of Duty wilt spelen, levert de software mee. Wanneer u zich afmeldt, wordt het hervat.

Folding@home: de eiwitpuzzel oplossen

Dan is er de Pande Group op Stanford. Ze zijn niet op zoek naar buitenaardse wezens; ze zoeken naar de oorzaken van Parkinson en Alzheimer. De sleutel is het vouwen van eiwitten. Eiwitten nemen specifieke vormen aan om te functioneren. Wanneer ze verkeerd vouwen, volgen ziekten.

Folding@home simuleert hoe eiwitten vouwen. Het is een enorm rekenprobleem. De Pande Group hoopt dat ze, door de fysica van verkeerd vouwen te begrijpen, nieuwe behandelingen kunnen vinden. Het proces is identiek aan SETI: download de app, laat je CPU ‘s nachts inactief en draag bij aan de medische wetenschap.

De kortstondige aard van vrijwilligerscomputers

Er zijn tientallen van dit soort projecten. Velen zijn niet permanent. Zodra het onderzoeksdoel is bereikt, lost het raster op. Soms vervangt een nieuw project het oude. Soms verdwijnt het gewoon.

Het is een fascinerend model. Je leent je nutteloze cycli aan de wetenschap. Je krijgt niets anders terug dan het warme, donzige gevoel van een bijdrage aan SETI of medisch onderzoek. De software is ontworpen met een lage prioriteit. Het respecteert uw machine. Het wordt uitgeschakeld wanneer u het nodig hebt. Het wordt wakker als jij dat niet doet.

Maar maakt het uit? Als het netwerk kan worden gebruikt om encryptie te kraken, als de toegangscontroles kwetsbaar zijn, als de projecten tijdelijk zijn… is het het risico dan wel waard? De code is daar. De verwerkers zijn online. De vraag is of we een tool voor ontdekking bouwen of een botnet dat nog moet gebeuren.

Zodra uw computer klaar is met het verwerken van de cijfers, stuurt de projectsoftware die gegevens terug naar het besturingsknooppunt. Het knooppunt sorteert het en schuift de resultaten naar de juiste database. Vervolgens stuurt het een nieuw stuk gegevens naar uw machine. De cyclus herhaalt zich totdat de klus is geklaard. Als er voldoende mensen meedoen, worden ambitieuze doelen in verrassend korte tijd verpletterd.

Naarmate deze gridcomputersystemen slimmer worden, zullen we zien dat steeds meer organisaties veelzijdige netwerken bouwen. Er zou zelfs een dag kunnen komen waarop bedrijven rechtstreeks met elkaar kunnen internetten. In die wereld zouden rekenproblemen die vandaag de dag onmogelijk lijken, kunnen worden teruggebracht tot een paar uur verwerkingstijd. We zullen gewoon moeten afwachten.

Succes in de echte wereld: het genoomvergelijkingsproject

Theorie is prima, maar de resultaten zijn beter. Neem het Genome Comparison Project als bewijs. Deze onderzoeksinspanning was bedoeld om eiwitsequenties van meer dan 3.500 organismen te vergelijken. Het begon op 20 december 2006.

Op 21 juli 2007 had het project al zijn doelstellingen bereikt. Er was geen enkele supercomputerboerderij voor nodig. Het maakte gebruik van een gridcomputersysteem om het zware werk te verwerken. Dat is de kracht van gedistribueerde hulpbronnen.

Wat is gridcomputing precies?

Mensen verwarren dit vaak met standaard cloud computing. Het verschil ligt in de reikwijdte en het doel. Een grid is een netwerk van computers die bronnen delen om grote, complexe problemen op te lossen. Het fungeert als een virtuele supercomputer.

U kunt grid computing zien als het inzetten van bronnen uit meerdere administratieve domeinen om één enkel probleem op te lossen. Het combineert de kracht van veel individuele computers verspreid over een netwerk, vaak het openbare internet. Daarmee onderscheidt het zich van een eenvoudig cluster, dat doorgaans binnen één organisatie blijft.

Populaire voorbeelden van rasterprojecten

Waarom is dit belangrijk voor jou? Omdat deze netwerken echte crises oplossen. Hier zijn een paar opmerkelijke voorbeelden:

  • SETI@home : gebruikt de reserveverwerkingskracht van miljoenen pc’s om naar buitenaards leven te zoeken. Het verandert inactieve CPU’s in luisterposten in de diepe ruimte.
  • Folding@home : richt zich op het vouwen van eiwitten. Door te bestuderen hoe eiwitten zich vouwen, hopen onderzoekers ziekten als Alzheimer en Parkinson beter te begrijpen.
  • World Community Grid : Pakt humanitaire uitdagingen aan. Dit omvat kankeronderzoek, HIV/AIDS-studies en initiatieven op het gebied van schone energie.

Deze projecten laten zien hoe grid computing inactieve hardware transformeert in een kracht voor wetenschappelijk belang. Je hoeft geen wetenschapper te zijn om te helpen. Je hebt alleen een internetverbinding en een beetje vrije tijd nodig.

Waarom dit er nu toe doet

De verfijning van deze systemen neemt toe. Binnenkort zullen waarschijnlijk meer bedrijven veelzijdige netwerken creëren. We zijn op weg naar een tijdperk waarin rekenproblemen worden teruggebracht tot beheersbare brokken. Dit democratiseert high-performance computing. Het betekent dat je geen serverruimte van een miljoen dollar nodig hebt om simulaties uit te voeren.

De infrastructuur is er al. De Globus Alliance en het Open Grid Forum blijven de normen verfijnen. Bedrijven als IBM investeren al lang in het toegankelijk maken van grid computing. De tools vergemakkelijken de samenwerking via internet voor deze enorme taken.

Vooruitkijken

De volgende keer dat u uw computer inactief ziet staan, bedenk dan dat deze deel kan uitmaken van iets groters. Het kan het analyseren van eiwitsequenties zijn of het scannen van de sterren. De technologie is volwassen. De toepassingen groeien. En de impact is reëel.

“Grid computing vergroot zijn bereik.”

De stukken liggen op hun plaats. De vraag is of we ze snel genoeg zullen gebruiken. De toekomst van gedistribueerd werk komt niet. Het is er al en speelt op de achtergrond van ons dagelijks leven.