Effectieve clusteroplossingen. Veritas Cluster Server-softwarecomponenten

De snelle ontwikkeling van informatietechnologieën, de groei van verwerkte en verzonden gegevens en tegelijkertijd verhoogde eisen aan betrouwbaarheid, beschikbaarheid, fouttolerantie en schaalbaarheid dwingen ons om met een frisse blik naar de toch al verre van jonge clustertechnologie te kijken. Met deze technologie kunt u redelijk flexibele systemen maken die aan alle bovenstaande vereisten voldoen. Het zou verkeerd zijn om te denken dat het installeren van een cluster absoluut alle problemen oplost. Maar het is heel goed mogelijk om indrukwekkende resultaten te behalen met clustering. U hoeft alleen maar duidelijk te begrijpen wat het is, wat de belangrijkste verschillen zijn tussen hun individuele variëteiten, en ook de voordelen van bepaalde systemen kennen - in termen van hun effectiviteit in uw bedrijf.

Analisten van IDC schatten dat de markt voor clusters in 1997 slechts $ 85 miljoen bedroeg, terwijl deze markt vorig jaar al $ 367,7 miljoen "waarde" waard was. De stijgende trend is duidelijk.

Laten we dus proberen alle "i"-tekens te plaatsen. Tot op heden is er geen duidelijke definitie van een cluster. Bovendien is er geen enkele norm die het cluster duidelijk regelt. Wanhoop echter niet, want de essentie van clustering houdt niet in dat aan enige norm wordt voldaan. Het enige dat bepaalt dat een cluster een cluster is, is een set van eisen voor dergelijke systemen. Laten we deze vereisten op een rij zetten (vier regels): betrouwbaarheid, beschikbaarheid van functies (beschikbaarheid), schaalbaarheid, rekenkracht. Op basis hiervan formuleren we de definitie van een cluster. Een cluster is een systeem van willekeurige apparaten (servers, diskdrives, opslagsystemen, enz.) die een fouttolerantie van 99,999% bieden en ook voldoen aan de "vier regels". Een servercluster is bijvoorbeeld een groep servers (gewoonlijk clusterknooppunten genoemd) die zijn verbonden en geconfigureerd om een ​​gebruiker toegang te geven tot het cluster als een enkele, coherente bron.

fouttolerantie:

Het belangrijkste kenmerk van een cluster is ongetwijfeld fouttolerantie. Dit wordt bevestigd door een enquête onder gebruikers: 95% van de respondenten antwoordde dat ze betrouwbaarheid en fouttolerantie in clusters nodig hebben. De twee moeten echter niet worden verward. Fouttolerantie verwijst naar de beschikbaarheid van bepaalde functies in het geval van een storing, met andere woorden, het is de redundantie van functies en load balancing. En betrouwbaarheid wordt opgevat als een reeks middelen om bescherming te bieden tegen storingen. Dergelijke vereisten voor de betrouwbaarheid en fouttolerantie van clustersystemen zijn te wijten aan de specifieke kenmerken van hun gebruik. Laten we een klein voorbeeld geven. Het cluster bedient het elektronische betalingssysteem, dus als een klant op een bepaald moment zonder service voor het operatorbedrijf komt te zitten, komt dat hem duur te staan. Met andere woorden, het systeem moet 24 uur per dag, zeven dagen per week (7-24) continu werken. Tegelijkertijd is een fouttolerantie van 99% duidelijk niet voldoende, aangezien dit betekent dat bijna vier dagen per jaar het informatiesysteem van een onderneming of operator niet werkt. Dit lijkt misschien niet lang, gezien preventief onderhoud en systeemonderhoud. Maar de klant van vandaag is absoluut onverschillig voor de redenen waarom het systeem niet werkt. Hij heeft diensten nodig. Het acceptabele cijfer voor fouttolerantie wordt dus 99,999%, wat overeenkomt met 5 minuten per jaar. Dergelijke indicatoren kunnen worden bereikt door de clusterarchitectuur zelf. Hier is een voorbeeld van een servercluster: elke server in het cluster blijft relatief onafhankelijk, dat wil zeggen dat hij kan worden gestopt en uitgeschakeld (bijvoorbeeld voor onderhoud of installatie van extra apparatuur) zonder het hele cluster te verstoren. De nauwe interactie van de servers die het cluster vormen (clusternodes) garandeert maximale performance en minimale downtime van applicaties doordat: l bij een softwarestoring op één node de applicatie blijft functioneren (of automatisch herstart) op andere clusterknooppunten; l storing of uitval van een knooppunt (of knooppunten) van een cluster om welke reden dan ook (inclusief personeelsfouten) betekent niet dat het cluster als geheel uitvalt; l preventief onderhoud, herconfiguratie en wijziging van de softwareversie in de meeste gevallen kan één voor één op de clusterknooppunten worden uitgevoerd, zonder de werking van applicaties op andere knooppunten in het cluster te onderbreken Potentiële uitvaltijd die conventionele systemen niet kunnen voorkomen, in het cluster resulteert in ofwel een lichte afname van de prestaties (als de knooppunten zijn gesloten) down), of een aanzienlijke reductie (applicaties zijn slechts korte tijd niet beschikbaar die nodig zijn om naar een ander knooppunt over te schakelen ) om een ​​beschikbaarheidsniveau van 99,99% te bereiken.

schaalbaarheid

De hoge kosten van clustersystemen zijn te wijten aan hun complexiteit. Daarom is clusterschaalbaarheid behoorlijk relevant. Computers waarvan de prestaties voldoen aan de eisen van vandaag, hoeven daar in de toekomst niet per se aan te voldoen. Met bijna elke bron in het systeem krijgt men vroeg of laat te maken met een prestatieprobleem. In dit geval zijn er twee opties voor schalen: horizontaal en verticaal. De meeste computersystemen bieden verschillende manieren om hun prestaties te verbeteren: geheugen toevoegen, het aantal processors in multiprocessorsystemen vergroten of nieuwe adapters of schijven toevoegen. Deze schaling wordt verticale schaling genoemd en kan de systeemprestaties tijdelijk verbeteren. Het systeem wordt echter ingesteld op de maximaal ondersteunde hoeveelheid geheugen, processors of schijven en de systeembronnen raken uitgeput. En de gebruiker zal hetzelfde probleem van het verbeteren van de prestaties van het computersysteem tegenkomen als voorheen. Uitschalen biedt de mogelijkheid om extra computers aan het systeem toe te voegen en werk tussen hen te verdelen. De prestaties van het nieuwe systeem als geheel gaan dus verder dan het vorige. De natuurlijke beperking van een dergelijk systeem is de software die u erop wilt laten draaien. Het eenvoudigste voorbeeld van het gebruik van een dergelijk systeem is de distributie van verschillende toepassingen over verschillende componenten van het systeem. U kunt bijvoorbeeld uw kantoortoepassingen naar het ene clusterwebtoepassingsknooppunt verplaatsen naar het andere, en bedrijfsdatabases naar een derde. Dit roept echter de vraag op hoe deze applicaties met elkaar omgaan. Nogmaals, schaalbaarheid is meestal beperkt tot de gegevens die in de applicaties worden gebruikt. Verschillende toepassingen die toegang tot dezelfde gegevens vereisen, hebben een manier nodig om toegang te bieden tot gegevens van verschillende knooppunten in een dergelijk systeem. De oplossing in dit geval zijn technologieën die in feite een cluster tot een cluster maken, en niet een systeem van met elkaar verbonden machines. In dit geval blijft er natuurlijk de mogelijkheid van verticale schaling van het clustersysteem. Door verticale en horizontale schaling biedt het clustermodel dus aanzienlijke investeringsbescherming voor consumenten.Als optie voor horizontale schaling is het ook vermeldenswaard het gebruik van een groep computers die zijn verbonden via een schakelaar die de belasting balanceert (Load Balancing-technologie ). We zullen deze nogal populaire optie in het volgende artikel in detail beschrijven. Hier zullen we alleen de lage kosten van een dergelijke oplossing opmerken, voornamelijk de som van de prijs van de switch ($ 6.000 en meer, afhankelijk van de functionele uitrusting) en de hostadapter (in de orde van enkele honderden dollars voor elk; hoewel , u kunt natuurlijk ook gewone netwerkkaarten gebruiken). Deze oplossingen worden meestal gebruikt op websites met veel verkeer waar een enkele server niet alle inkomende verzoeken kan verwerken. De mogelijkheid om de belasting over de serverknooppunten van een dergelijk systeem te verdelen, stelt u in staat een enkele website op veel servers te maken.

Beowulf, of rekenkracht

Vaak worden oplossingen die vergelijkbaar zijn met de hierboven beschreven oplossingen het Beowulf-cluster genoemd. Dergelijke systemen zijn in de eerste plaats ontworpen voor maximale rekenkracht. Daarom zijn er eenvoudigweg geen aanvullende systemen voor het verhogen van de betrouwbaarheid en fouttolerantie. Een dergelijke oplossing onderscheidt zich door een uiterst aantrekkelijke prijs, en misschien is het daarom de grootste populariteit in veel onderwijs- en onderzoeksorganisaties. Het Beowulf-project verscheen in 1994 - het idee ontstond om parallelle computersystemen (clusters) te creëren van openbaar beschikbare Intel-gebaseerde computers en goedkope Ethernet-netwerken, door Linux en een van de gratis communicatiebibliotheken (PVM en vervolgens MPI) op deze computers te installeren. Het bleek dat dergelijke systemen op veel probleemklassen en met een voldoende aantal knooppunten prestaties leveren die vergelijkbaar zijn met die van een supercomputer. Zoals de praktijk laat zien, is het vrij eenvoudig om zo'n systeem te bouwen. Het enige dat hiervoor nodig is, is een krachtige switch en meerdere werkstations (servers) die erop zijn aangesloten met het geïnstalleerde Linux-besturingssysteem. Dit is echter niet voldoende. Om deze stapel hardware tot leven te laten komen, is speciale software voor parallel computing nodig. De meest voorkomende parallelle programmeerinterface in het message passing-model is MPI (Message Passing Interface). De naam "Messaging Interface" spreekt voor zich. Het is een goed gestandaardiseerd mechanisme voor het bouwen van parallelle programma's in een berichtenmodel. Er zijn gratis (!) en commerciële implementaties voor bijna alle supercomputerplatforms, evenals voor UNIX- en Windows NT-werkstationnetwerken. Momenteel is MPI de meest gebruikte en dynamisch ontwikkelende interface in zijn klasse. De aanbevolen gratis implementatie van MPI is het MPICH-pakket van Argonne National Laboratory. MPI-standaardisatie wordt verzorgd door het MPI Forum. De nieuwste versie van de standaard is 2.0. In deze versie voegt MPI belangrijke functies toe als dynamische procesbesturing, eenrichtingscommunicatie (Put / Get), parallelle I / O. De constante vraag naar hoge rekenkracht heeft geleid tot het ontstaan ​​van een aantrekkelijke markt voor veel fabrikanten. Sommigen van hen hebben hun eigen technologieën ontwikkeld om computers in een cluster te verbinden. De bekendste zijn Myrinet van MyriCom en cLAN van Giganet. Myrinet is een open standaard. Voor de implementatie biedt MyriCom een ​​breed scala aan netwerkapparatuur tegen relatief lage prijzen. De fysieke laag ondersteunt SAN (System Area Network), LAN (CL-2) en glasvezel. Myrinet-technologie zorgt voor een hoge schaalbaarheid van het netwerk en wordt nu op grote schaal gebruikt bij de constructie van high-performance clusters. Giganet ontwikkelt software en hardware voor directe interactie van centrale verwerkingseenheden van clusterservers met gigabitsnelheden, waarbij OS-functies worden omzeild. De oplossing kost ongeveer $ 2.500 voor de 8-poorts switch, $ 150 voor de Myrinet-adapter, $ 6.250 voor de 8-poorts switch en $ 800 voor de Giganet-adapter. Die laatste kreeg trouwens de Best of Show-award op Microsoft Tech Ed 2000. Laten we als voorbeeld de implementatie van het Beowulf-cluster bij het Institute of High Performance Computing and Databases van het Ministerie van Wetenschap en Technisch Beleid van de Russische Federatie noemen. Het cluster, genaamd "PARITET", is gemaakt op basis van algemeen beschikbare componenten voor personal computers en werkstations en biedt een totale piekprestatie van 3,2 GFLOP / sec. Het cluster bestaat uit vier dual-processor computing-nodes op basis van Intel Pentium II / 450MHz-processors. Elk knooppunt heeft 512 MB RAM en een 10 GB Ultra Wide SCSI-harde schijf. Rekenknooppunten van het cluster worden verenigd door een krachtige Myrinet-switch (kanalen met een bandbreedte van 1,28 GB / s, full-duplex). Er wordt ook een redundant netwerk gebruikt voor besturing en configuratie (100 Mbit Fast Ethernet). De rekenclusterknooppunten zijn uitgerust met het Linux-besturingssysteem (Red Hat 5.2-distributie). MPI / PVM-berichteninterfaces worden gebruikt voor het programmeren van parallelle toepassingen.

Minicluster van Dell en Compaq

Naast de schakeloplossing voor het bouwen van een cluster zijn er nog een aantal andere oplossingen, zowel hardware als software. Sommige oplossingen zijn complex en worden geleverd "As is" - "all in one box". De laatste optie - laten we het "cluster in a box" noemen - is ook behoorlijk populair omdat het is ontworpen voor de massamarkt en een cluster op instapniveau is (in termen van prestaties en schaalbaarheid). De constructie van dergelijke systemen, de onderlinge verbinding van interne componenten, betrouwbaarheid en fouttolerantie zijn echter volledig consistent met "grote" systemen. Laten we, om te begrijpen hoe het cluster werkt, eens kijken naar twee vergelijkbare productiesystemen: Compaq en Dell. Clusters van deze bekende spelers op de computermarkt zijn opgebouwd uit twee DELL-servers - PowerEdge 6100 of PowerEdge 4200 en op hun beurt Compaq - Proliant 1850R. Microsoft Cluster Server (Compaq, Dell) of Novell High-Availability Services voor NetWare 4.0 / Clustering Services voor NetWare 5.0 (Compaq) worden gebruikt als software. Met de software kunt u twee servers configureren, zodat als een van de servers in het cluster uitvalt, het werk en de applicaties onmiddellijk automatisch worden gemigreerd naar de andere server, waardoor downtime wordt geëlimineerd. Beide servers in het cluster bieden hun bronnen om productiewerk uit te voeren, dus geen van beide is inactief terwijl ze wachten tot de andere uitvalt. De configuratie die in de afbeelding wordt getoond, is een typische cluster met de implementatie van het principe van failover, waardoor een hoge mate van beschikbaarheid en duplicatie van componenten op systeemniveau. De communicatie tussen de twee servers vindt plaats via de zogenaamde hartslagverbinding van een speciaal gebied van het lokale netwerk. Wanneer er een storing optreedt op de primaire server, leert de tweede server, die de hartslagberichten bewaakt, dat de primaire server niet beschikbaar is en neemt de werklast van de defecte machine over. Uitgevoerde functies omvatten het starten van de applicaties, processen en services die nodig zijn om te reageren op clientverzoeken voor toegang tot een defecte server. Hoewel elke server in een cluster alle middelen moet hebben die nodig zijn om de functies van een andere server over te nemen, kunnen de uitgevoerde basisverantwoordelijkheden heel verschillend zijn. Een secundaire server die deel uitmaakt van een failovercluster voldoet aan de vereiste om hot-standbycapaciteit te bieden, maar kan ook zijn eigen toepassingen uitvoeren. Ondanks de enorme duplicatie van bronnen, heeft zo'n cluster echter een bottleneck - de interface tussen de SCSI-bus en het gedeelde externe geheugensysteem, waarvan het falen leidt tot het falen van het cluster. Hoewel de kans daarop volgens fabrikanten verwaarloosbaar klein is, zijn dergelijke miniclusters in de eerste plaats ontworpen voor autonoom bedrijf zonder constante monitoring en administratie. Als voorbeeld van gebruik kunnen we een oplossing noemen voor externe kantoren van grote bedrijven om een ​​hoge beschikbaarheid (7-24) van de meest kritische applicaties (databases, mailsystemen, enz.) te garanderen. Met de groeiende vraag naar krachtige maar veerkrachtige instapsystemen, ziet de markt voor deze clusters er redelijk goed uit. De enige "maar" is dat niet elke potentiële consument van clustersystemen bereid is om ongeveer $ 20.000 te betalen voor een systeem met twee servers.

Droog residu

Samenvattend moet worden opgemerkt dat clusters eindelijk een massamarkt hebben. Deze conclusie kan eenvoudig worden getrokken op basis van de prognoses van analisten van Standish Group International, die beweren dat de wereldwijde groei van het aantal geïnstalleerde clustersystemen in de komende twee jaar 160% zal bedragen. Daarnaast hebben analisten van IDC berekend dat de markt voor clusters in 1997 slechts $ 85 miljoen bedroeg, en vorig jaar was deze markt al $ 367,7 miljoen "waarde" De stijgende trend is duidelijk. De behoefte aan clusteroplossingen ontstaat tegenwoordig niet alleen in grote datacenters, maar ook in kleine bedrijven die niet willen leven volgens het "goedkoop betaalt tweemaal"-principe en hun geld willen investeren in zeer betrouwbare en gemakkelijk schaalbare clustersystemen. Gelukkig zijn er meer dan genoeg mogelijkheden om een ​​cluster te implementeren. Houd er bij het kiezen van een oplossing echter rekening mee dat alle clusterparameters onderling afhankelijk zijn. Met andere woorden, je moet de benodigde functionaliteit van het cluster duidelijk prioriteren, want naarmate de performance toeneemt, neemt de mate van beschikbaarheid (beschikbaarheid) af. Het verhogen van de productiviteit en het waarborgen van het vereiste niveau van beschikbaarheid leidt onvermijdelijk tot een stijging van de kosten van de oplossing. De gebruiker moet dus het allerbelangrijkste doen - de gulden middenweg vinden van de capaciteiten van het cluster op dit moment. Dit is des te moeilijker om te doen, des te meer verschillende oplossingen er tegenwoordig op de clustermarkt worden aangeboden.Bij het opstellen van het artikel is gebruik gemaakt van materialen van WWW-servers: http://www.dell.ru/, http://www.compaq .ru/, http://www.ibm.ru/, http://www.parallel.ru/, http://www.giganet.com/, http://www.myri.com/

ComputerPers 10 "2000

Een cluster is een groep computers die met elkaar zijn verbonden via snelle communicatiekanalen en eruitzien als een enkele gezamenlijke hardwarebron.

Gregory Pfister, een van de eerste architecten die clustertechnologie ontwikkelde, definieerde de betekenis van een cluster met de volgende woorden: "Een cluster is een van de varianten van een gedistribueerd of parallel systeem." Dergelijke systemen kunnen ofwel bestaan ​​uit een aantal computers die met elkaar zijn verbonden, of ze kunnen worden gebruikt als een enkele, uniforme computerbron. Op dit moment wordt de meest acceptabele optie voor het kiezen van clusterknooppunten beschouwd als besturingssystemen op basis van Intel-processors. Er zijn een aantal redenen, op basis van de resultaten van de overweging waarvan, de meest optimale optie voor het bouwen van clusters is om ze te creëren op basis van systemen met twee processors.

    Clusters worden ingedeeld in verschillende hoofdtypen:
  • 1. Zeer beschikbare clusters.
    Deze clusters worden gebruikt om de hoogst mogelijke beschikbaarheid te garanderen van de dienst die het betreffende cluster vertegenwoordigt. Als één cluster het maximale aantal nodes bevat, is er op het moment dat één of meerdere servers uitvallen een garantie voor dienstverlening. Laptopservice- en reparatiebedrijven adviseren gebruikers dat het minimumaantal nodes dat nodig is om de beschikbaarheid te verbeteren, maximaal twee nodes mag zijn. Er zijn veel verschillende softwareontwikkelingen voor het maken van dit soort clusters.
  • 2. Clusters met load balancing-functies.
    Het werkingsprincipe van dit type clusters is de distributie van verzoeken via een of meerdere toegangsknooppunten tegelijk, die op hun beurt bezig zijn ze voor voltooiing naar alle andere knooppunten te leiden. In de eerste fase waren de ontwikkelaars van dit cluster van mening dat het verantwoordelijk zou zijn voor de prestaties, maar in de meeste gevallen, omdat dergelijke clusters zijn uitgerust met speciale methoden, worden ze gebruikt om de betrouwbaarheid te verbeteren. Dergelijke constructies worden ook wel noordelijke boerderijen genoemd.
  • 3. Computerclusters.
    Deze clusters worden veel gebruikt tijdens berekeningen, namelijk bij het uitvoeren van een verscheidenheid aan wetenschappelijke onderzoeken die worden uitgevoerd bij het ontwikkelen van clustersystemen met meerdere processors. Computingclusters onderscheiden zich door hoge prestaties van processors op het moment van drijvende-kommabewerkingen en lage latentie van onderling verbonden netwerken. Bovendien dragen rekenclusters, met enkele unieke kenmerken, bij aan een aanzienlijke vermindering van de tijd die aan berekeningen wordt besteed.
  • 4. Systemen van gedistribueerd computergebruik.
    Dergelijke systemen worden niet als clusters beschouwd, maar ze verschillen in vergelijkbare principes van technologieën die worden gebruikt om clusters te creëren. Het belangrijkste dat hun verschil is, is dat elk knooppunt van deze systemen een zeer lage beschikbaarheid heeft, dat wil zeggen dat de vruchtbare werking ervan niet kan worden gegarandeerd. Daarom moet deze, om een ​​specifieke taak uit te voeren, in dit geval worden verdeeld over een aantal onafhankelijke verwerkers. Dit type systeem heeft, in tegenstelling tot een cluster, niets te maken met een enkele computer, maar dient alleen om een ​​vereenvoudigde manier uit te voeren om de verkregen berekeningen te verdelen. De instabiele configuratie in deze variant wordt grotendeels gecompenseerd door het grote aantal nodes.

Van Wikipedia, de gratis encyclopedie

Netwerktaakverdeling (NLB)-clusters

Het principe van hun werking is gebaseerd op de distributie van verzoeken via een of meer invoerknooppunten, die ze voor verwerking omleiden naar de overige, rekenknooppunten. Het oorspronkelijke doel van zo'n cluster is performance, maar ze gebruiken vaak ook methoden om de betrouwbaarheid te verbeteren. Deze constructies worden serverfarms genoemd. De software (software) kan commercieel (OpenVMS, MOSIX, Platform LSF HPC, Solaris Cluster, Moab Cluster Suite, Maui Cluster Scheduler) of gratis (OpenMosix, Sun Grid Engine, Linux Virtual Server) zijn.

Rekenclusters

Clusters worden gebruikt voor computationele doeleinden, met name in wetenschappelijk onderzoek. Voor computerclusters zijn belangrijke indicatoren hoge processorprestaties bij bewerkingen op drijvende-kommagetallen (flops) en lage latentie van het backingnetwerk, en minder belangrijk - de snelheid van I / O-bewerkingen, die belangrijker is voor databases en webservices. Rekenclusters maken het mogelijk om de rekentijd te verkorten, in vergelijking met een enkele computer, door de taak te verdelen in parallel lopende takken die gegevens uitwisselen via een aansluitend netwerk. Een typische configuratie is een set computers die is opgebouwd uit openbaar beschikbare componenten, met een Linux-besturingssysteem en verbonden via Ethernet, Myrinet, InfiniBand of andere relatief goedkope netwerken. Dit systeem wordt gewoonlijk het Beowulf-cluster genoemd. High-performance clusters worden speciaal onderscheiden (aangeduid met de Engelse afkorting HPC-cluster - Krachtig computercluster). Lijst met de krachtigste computers met hoge prestaties (kan ook worden aangeduid met de Engelse afkorting HPC) is te vinden in de TOP500-ranglijst van de wereld. Rusland heeft een classificatie van de krachtigste computers in het GOS.

Gedistribueerde computersystemen (grid)

Dergelijke systemen worden niet als clusters beschouwd, maar hun principes lijken grotendeels op clustertechnologie. Ze worden ook wel rastersystemen genoemd. Het belangrijkste verschil is de lage beschikbaarheid van elk knooppunt, dat wil zeggen de onmogelijkheid om de werking ervan op een bepaald moment te garanderen (knooppunten zijn verbonden en losgekoppeld tijdens bedrijf), dus de taak moet worden verdeeld in een aantal onafhankelijke processen. Zo'n systeem ziet er, in tegenstelling tot clusters, niet uit als een enkele computer, maar dient als een vereenvoudigde manier om berekeningen te distribueren. De instabiliteit van de configuratie wordt in dit geval gecompenseerd door een groot aantal knooppunten.

Cluster van servers programmatisch georganiseerd

Geclusterde systemen nemen hun rechtmatige plaats in in de lijst van de snelste, terwijl ze qua prijs aanzienlijk beter presteren dan supercomputers. Vanaf juli 2008 wordt de 7e plaats in de TOP500-classificatie ingenomen door het SGI Altix ICE 8200-cluster (Chippewa Falls, Wisconsin, VS).

Clusters op basis van het Beowulf-concept, die zijn opgebouwd uit gewone goedkope computers op basis van gratis software, vormen een relatief goedkoop alternatief voor supercomputers. Een praktisch voorbeeld van een dergelijk systeem is de Stone Soupercomputer van het Oak Ridge National Laboratory (Tennessee, VS, 1997).

Het grootste cluster dat eigendom is van een persoon (van 1000 processors) werd gebouwd door John Koza.

Verhaal

De geschiedenis van het ontstaan ​​van clusters is onlosmakelijk verbonden met de vroege ontwikkelingen op het gebied van computernetwerken. Een van de redenen voor de opkomst van snelle communicatie tussen computers was de hoop computerbronnen te bundelen. In het begin van de jaren 70 hebben het TCP/IP-protocolteam en Xerox PARC netwerkstandaarden vastgesteld. Het Hydra-besturingssysteem voor DEC PDP-11-computers verscheen ook; het op deze basis gecreëerde cluster kreeg de naam C.mpp (Pittsburgh, Pennsylvania, VS, 1971). Het was echter pas rond 1983 dat mechanismen werden gecreëerd om het gemakkelijk te maken om taken en bestanden over een netwerk te distribueren, waarvan de meeste ontwikkelingen waren in SunOS (Sun Microsystems' op BSD gebaseerde besturingssysteem).

Het eerste commerciële project van het cluster was ARCNet, opgericht door Datapoint in 1977. Het werd niet winstgevend en daarom ontwikkelde de bouw van clusters zich pas in 1984, toen DEC zijn VAXcluster bouwde op basis van het VAX / VMS-besturingssysteem. ARCNet en VAXcluster zijn niet alleen ontworpen voor gezamenlijke berekeningen, maar ook voor het gezamenlijk gebruik van het bestandssysteem en randapparatuur, rekening houdend met het behoud van de integriteit en eenduidigheid van de gegevens. VAXCluster (nu VMSCluster genoemd) is een integraal onderdeel van het OpenVMS-besturingssysteem dat wordt aangedreven door DEC Alpha- en Itanium-processors.

Twee andere vroege clusterproducten die geaccepteerd worden, zijn Tandem Hymalaya (1994, klasse) en IBM S/390 Parallel Sysplex (1994).

De geschiedenis van het maken van clusters van gewone pc's heeft veel te danken aan het Parallel Virtual Machine-project. In 1989 opende deze software voor het combineren van computers tot een virtuele supercomputer de mogelijkheid om onmiddellijk clusters te creëren. Als gevolg hiervan overtrof de totale prestatie van alle goedkope clusters die destijds werden gecreëerd de totale capaciteit van "serieuze" commerciële systemen in prestatie.

De creatie van clusters op basis van goedkope personal computers, verenigd door een datatransmissienetwerk, werd in 1993 voortgezet door de Amerikaanse ruimtevaartorganisatie NASA, waarna in 1995 de speciaal op basis van dit principe ontworpen Beowulf-clusters werden ontwikkeld. De successen van dergelijke systemen hebben geleid tot de ontwikkeling van grids die al bestaan ​​sinds de oprichting van UNIX.

Software

Een veelgebruikte tool voor het organiseren van server-naar-server-communicatie is de MPI-bibliotheek, die talen ondersteunt en Fortran. Het wordt bijvoorbeeld gebruikt in een weersimulatieprogramma.

Het Solaris-besturingssysteem biedt de Solaris Cluster-software voor hoge beschikbaarheid en beschikbaarheid voor servers waarop Solaris wordt uitgevoerd. Er is een open source-implementatie voor OpenSolaris genaamd OpenSolaris HA-cluster.

Verschillende programma's zijn populair onder GNU / Linux-gebruikers:

  • distcc, MPICH, enz. - gespecialiseerde tools voor het parallelliseren van het werk van programma's. distcc staat parallelle compilatie toe in de GNU Compiler Collection.
  • Linux Virtual Server, Linux-HA - hostsoftware voor het distribueren van verzoeken tussen rekenservers.
  • MOSIX, openMosix, Kerrighed, OpenSSI zijn volledig uitgeruste clusteromgevingen die in de kernel zijn ingebouwd en die automatisch taken verdelen over homogene knooppunten. OpenSSI, openMosix en Kerrighed maken tussen knooppunten.

Het is ook de bedoeling dat de clustermechanismen worden ingebouwd in de DragonFly BSD-kernel, die in 2003 uit FreeBSD 4.8 is voortgekomen. In de verre plannen, ook veranderen in omgeving met één besturingssysteem.

Microsoft brengt het HA-cluster uit voor het Windows-besturingssysteem. Er wordt aangenomen dat het is gemaakt op basis van de technologie van Digital Equipment Corporation, tot 16 (sinds 2010) knooppunten in een cluster ondersteunt en in een SAN-netwerk (Storage Area Network) werkt. Een set API's wordt gebruikt om gedistribueerde applicaties te ondersteunen; er zijn sjablonen voor het werken met programma's die niet voorzien in werk in een cluster.

Windows Compute Cluster Server 2003 (CCS), uitgebracht in juni 2006, is ontworpen voor hightech-toepassingen waarvoor clustercomputing vereist is. De editie is ontworpen om te worden geïmplementeerd op meerdere computers die zijn samengevoegd tot een cluster om de kracht van een supercomputer te bereiken. Elk cluster op een Windows Compute Cluster Server bestaat uit een of meer mastermachines die taken verdelen en verschillende slavemachines die het hoofdwerk doen. Windows HPC Server 2008 werd in november 2008 geïntroduceerd ter vervanging van Windows Compute Cluster Server 2003.

Schrijf een review voor Cluster (Computergroep)

Notities (bewerken)

zie ook

Links

Uittreksel dat de Cluster karakteriseert (groep computers)

- Nou, bg "at, tepeg" laten we ons gaan afdrogen, - zei hij tegen Pete.
Toen hij het boswachtershuis naderde, stopte Denisov en tuurde het bos in. Een man in een jasje, bastschoenen en een Kazan-hoed, met een pistool over zijn schouder en een bijl in zijn riem, liep door het bos, tussen de bomen, met grote, lichte stappen op lange benen, met lange bungelende armen. Toen hij Denisov zag, gooide deze man haastig iets in de struik, nam zijn natte hoed met hangende rand af en ging naar de chef. Het was Tichon. Zijn gezicht, vol pokken en gerimpeld, met kleine smalle ogen straalde van zelfvoldaan amusement. Hij hief zijn hoofd op en, alsof hij niet lachte, staarde hij Denisov aan.
"Nou, waar is pg" gevallen? "Zei Denisov.
- Waar was je? Ik ging achter de Fransen aan, - antwoordde Tichon brutaal en haastig in een schorre maar melodieuze bas.
- Waarom ben je 's middags geklommen? Beest! Nou, niet meegenomen? ..
'Ik heb het genomen,' zei Tichon.
- Waar is hij?
- Ja, ik nam hem eerst en vooral bij het ochtendgloren, - vervolgde Tikhon, herschikte bredere platte benen, gedraaid in bastschoenen, - en leidde hem het bos in. Ik zie dat het niet goed is. Ik denk, laat me gaan, ik zal een ander nemen die voorzichtiger is dan wat.
- Kijk, schurk, dat is het, - zei Denisov tegen de esaul. - Waarom heb je dit niet gedaan?
"Maar waarom hem rijden," onderbrak Tichon boos en haastig, "hij heeft geen honger. Weet ik niet welke je wilt?
- Wat een beest! .. Nou? ..
- Ik ging voor een andere, - vervolgde Tichon, - Ik kroop op zo'n manier het bos in en ging naar bed. - Tikhon lag onverwacht en flexibel op zijn buik en stelde zich in hun gezichten voor hoe hij het deed. 'Eén en zeker weten,' vervolgde hij. - Ik beroof hem op zo'n manier. - Tikhon sprong snel en gemakkelijk op. - Laten we naar de kolonel gaan, zeg ik. Hoe te zagald. En dat zijn er vier. Ze stormden op me af met spiesen. Ik sloeg hen op zo'n manier met een bijl: dat jij, zeggen ze, Christus is met jou, - riep Tichon, zwaaiend met zijn armen en dreigend fronsend, zijn borst blootleggend.
'Nu hebben we vanaf de berg gezien hoe je het stuk door de plassen hebt gevraagd,' zei de esaul, zijn glanzende ogen samenknijpend.
Petya wilde echt lachen, maar hij zag dat iedereen niet lachte. Hij wendde snel zijn ogen van het gezicht van Tichon naar het gezicht van de Esaul en Denisov, niet begrijpend wat dit alles betekende.
- Je groef "aka niet voorstellen", zei Denisov, boos hoestend.
Tichon begon met zijn ene hand op zijn rug te krabben, zijn hoofd met de andere, en plotseling strekte zijn hele gezicht zich uit in een glanzende, domme glimlach, die het ontbreken van een tand onthulde (waarvoor hij de bijnaam Shcherbaty kreeg). Denisov glimlachte en Petya barstte in een vrolijke lach uit, waaraan Tichon zelf meedeed.
- Ja, volkomen oneerlijk, - zei Tikhon. - Slechte kleren aan, waar breng je hem dan heen. Ja, en een onbeschofte man, edelachtbare. Wel, zegt hij, ik ben zelf een Anaralische zoon, ik ga niet, zegt hij.
- Wat een bruut! - zei Denisov. - Ik moet het vragen ...
- Ja, ik vroeg het hem, - zei Tikhon. - Hij zegt: slechte kennis. Van ons, zegt hij, zijn er veel, maar ze zijn allemaal slecht; alleen, zegt één naam. Ahnete, zegt hij, nou, je neemt iedereen mee, 'concludeerde Tichon, vrolijk en vastberaden in Denisovs ogen kijkend.
- Hier zal ik die honderden gogs "yachih, je zult worden gebogen" oftewel die kog "chit" gieten, - zei Denisov streng.
- Maar waarom zou je dan boos zijn, - zei Tichon, - nou, ik heb je Fransen niet gezien? Laat het donker worden, ik ben precies wat ik wil, ik zal er minstens drie meenemen.
'Nou, laten we gaan,' zei Denisov, en hij reed de hele weg naar het wachthuis, boos en stil fronsend.
Tikhon kwam erachteraan en Petya hoorde hoe de Kozakken met hem en hem lachten om een ​​paar laarzen die hij in de bush gooide.
Toen dat gelach dat hem in zijn greep nam voorbijging bij de woorden en glimlach van Tichon, en Petya zich even realiseerde dat deze Tichon de man had vermoord, voelde hij zich ongemakkelijk. Hij keek terug naar de gevangen drummer en iets raakte hem in het hart. Maar deze onhandigheid duurde maar even. Hij voelde de behoefte om zijn hoofd hoger te heffen, op te vrolijken en de esaul met een veelbetekenende air te ondervragen over de onderneming van morgen, om de samenleving waarin hij zich bevond niet onwaardig te zijn.
De gestuurde officier ontmoette Denisov onderweg met het nieuws dat Dolokhov nu zelf zou komen en dat alles in orde was aan zijn kant.
Denisov vrolijkte plotseling op en riep Petya naar hem toe.
‘Nou, vertel eens wat over jezelf,’ zei hij.

Petya, die Moskou verliet, zijn familieleden achterliet, voegde zich bij zijn regiment en kort daarna werd hij door een ordonnateur naar de generaal gebracht die het bevel voerde over een groot detachement. Vanaf het moment van zijn promotie tot officier, en vooral vanaf het moment dat hij het actieve leger betrad, waar hij deelnam aan de Slag om Vyazemsk, was Petya in een constant blij opgewonden staat van vreugde dat hij groot was, en in een constant enthousiaste haast niet om een ​​geval van echte heldenmoed te missen ... Hij was erg blij met wat hij zag en beleefde in het leger, maar tegelijkertijd leek het hem dat waar hij niet was, daar nu het meest echte, heroïsche gebeurt. En hij had haast om daar te komen waar hij niet was.
Toen zijn generaal op 21 oktober de wens uitte om iemand naar het detachement van Denisov te sturen, vroeg Petya zo meelijwekkend om hem te sturen dat de generaal niet kon weigeren. Maar hij stuurde hem, de generaal, en herinnerde zich Petya's krankzinnige daad in de Vyazemsky-strijd, waar Petya, in plaats van over de weg te gaan naar waar hij was gestuurd, in een ketting galoppeerde onder Frans vuur en daar twee keer met zijn pistool vuurde - hem, de algemeen was hij het die Petya verbood deel te nemen aan acties van Denisov. Daarom bloosde en verwarde Petya toen Denisov vroeg of hij mocht blijven. Voordat hij naar de rand van het bos vertrok, dacht Petya dat hij, strikt zijn plicht nakomen, onmiddellijk moest terugkeren. Maar toen hij de Fransen zag, Tichon zag en hoorde dat ze 's nachts zeker zouden aanvallen, besloot hij, met de snelheid van de overgangen van jonge mensen van de ene blik naar de andere, met zichzelf dat zijn generaal, die hij nog steeds zeer respecteerde , was onzin, Duits, dat Denisov een held is en Esaul een held, en dat Tichon een held is, en dat hij zich zou schamen om hen op een moeilijk moment te verlaten.
Het werd al donker toen Denisov met Petya en de esaul naar het wachthuis reed. In het halfduister zag je paarden in zadels, kozakken, huzaren, hutten op de open plek repareren en (zodat de Fransen de rook niet zouden zien) een blozend vuur aansteken in een bosravijn. In de ingang van een kleine hut rolde een Kozak zijn mouwen op en hakte schapenvlees. In de hut zelf waren drie officieren van Denisovs partij, die een tafel bij de deur regelden. Petya liep weg, liet zijn natte jurk drogen en begon meteen de agenten te helpen bij het regelen van de eettafel.
Binnen tien minuten was de tafel klaar, bedekt met een servet. Op tafel stond wodka, rum in een kolf, wit brood en gebakken lamsvlees met zout.
Zittend aan de tafel met de officieren en met zijn handen vet, geurig lam scheurend, waar reuzel doorheen stroomde, was Petya in een extatische jeugdstaat van tedere liefde voor alle mensen en, als resultaat, vertrouwen in dezelfde liefde van andere mensen voor zichzelf.
- Dus wat denk je, Vasily Fedorovich, - hij wendde zich tot Denisov, - is het goed dat ik een dag bij je blijf? - En, zonder op een antwoord te wachten, antwoordde hij zelf: - Per slot van rekening heb ik de opdracht gekregen om erachter te komen, nou, dus ik zal erachter komen ... Alleen jij laat me in de meeste ... in de belangrijkste . Ik heb geen onderscheidingen nodig... Maar ik wil... - Petya beet op zijn tanden en keek om zich heen, trok zijn opgeheven hoofd omhoog en zwaaide met zijn hand.
- In de belangrijkste ... - herhaalde Denisov glimlachend.
- Alleen, alsjeblieft, geef me een bevel, zodat ik het bevel heb, - vervolgde Petya, - nou, wat kost het jou? Oh, heb je een mes? - hij wendde zich tot de officier die het schaap wilde afsnijden. En hij stak zijn zakmes uit.
De agent prees het mes.
- Neem alsjeblieft jezelf. Ik heb er veel... - zei Petya blozend. - Vaders! Ik was het helemaal vergeten”, riep hij ineens uit. - Ik heb prachtige rozijnen, weet je, zulke, zonder pitjes. We hebben een nieuwe token - en zulke prachtige dingen. Ik kocht tien pond. Ik ben gewend aan iets zoets. Wil je? .. - En Petya rende de doorgang naar zijn Kozak in, bracht tassen mee, waarin vijf pond rozijnen zaten. - Eet, heren, eet.
- Heb je een koffiepot nodig? - hij wendde zich tot de esaul. - Ik heb het van onze winkelier gekocht, geweldig! Hij heeft prachtige dingen. En hij is heel eerlijk. Dit is het belangrijkste. Ik zal het u zonder meer toesturen. En misschien meer, vuurstenen kwamen naar buiten, bedekt met vuurstenen - het gebeurt tenslotte. Ik nam mee, ik heb het hier... - hij wees naar de tas, - honderd vuurstenen. Ik heb het heel goedkoop gekocht. Neem alsjeblieft zoveel als je nodig hebt, of zelfs dat is alles ... - En plotseling, bang dat hij loog, stopte Petya en bloosde.
Hij begon zich te herinneren of hij nog andere stomme dingen had gedaan. En terwijl hij de herinneringen van vandaag doorspit, diende zich de herinnering aan de Franse drummer aan. “Het is prima voor ons, maar hoe voelt hij zich? Waar heb je het naartoe gebracht? Heb je hem te eten gegeven? Heb je beledigd?" Hij dacht. Maar toen hij merkte dat hij over vuurstenen loog, werd hij nu bang.
'Je zou het kunnen vragen,' dacht hij, 'maar ze zullen zeggen: hij had zelf medelijden met de jongen. Ik zal ze morgen laten zien wat voor jongen ik ben! Ga je je schamen als ik het vraag? - Dacht Petya. "Nou, het maakt niet uit!" - en onmiddellijk, blozend en angstig kijkend naar de officieren, als er spot in hun gezichten zou zijn, zei hij:
- Mag ik deze jongen noemen die gevangen is genomen? geef hem iets te eten ... misschien ...
- Ja, een zielig jongetje, - zei Denisov, die zich blijkbaar niet schaamde in deze herinnering. - Bel hem hier. Vincent Bosse is zijn naam. Telefoongesprek.
- Ik bel, - zei Petya.
- Bel, bel. Een zielige jongen,' herhaalde Denisov.
Petya stond bij de deur toen Denisov dit zei. Petya klom tussen de officieren en kwam dicht bij Denisov.
'Laat me je kussen, lieverd,' zei hij. - O, wat geweldig! hoe goed! - En nadat hij Denisov had gekust, rende hij de tuin in.
- Baas! Vincentius! - riep Petya en stopte bij de deur.
- Wie wilt u, meneer? Zei een stem uit de duisternis. Petya antwoordde dat de jongen een Fransman was die ze vandaag hadden meegenomen.
- EEN! Lente? - zei de Kozak.
Zijn naam Vincent is al veranderd: de Kozakken - in Spring, en de mannen en soldaten - in Visenya. In beide versies paste deze herinnering aan de lente bij het idee van een jonge jongen.
- Hij warmde zich daar bij het vuur. Hé, Visenya! Visenya! Lente! - werden gehoord in de duisternis uitgezonden stemmen en gelach.
- En de jongen is slim, - zei de huzaar, die naast Petya stond. - We hebben hem zojuist te eten gegeven. Passie had honger!
In het donker werden voetstappen gehoord en, met zijn blote voeten in de modder ploffend, naderde de drummer de deur.
"Ah, c" est vous! "Zei Petya." Voulez vous kribbe? N "ayez pas peur, on ne vous fera pas de mal," voegde hij eraan toe, schuchter en liefdevol zijn hand aanrakend. - Entrez, entrez. [O, jij bent het! Wilt u eten? Wees niet bang, ze zullen je niets doen. Kom binnen, kom binnen.]
- Merci, monsieur, [Dank u, meneer.] - antwoordde de trommelaar met een trillende, bijna kinderlijke stem en begon zijn vuile voeten op de drempel af te vegen. Petya wilde veel zeggen tegen de drummer, maar hij durfde niet. Hij, schuivend, stond naast hem in de hal. Toen pakte hij in het donker zijn hand en schudde die.
'Entrez, entrez,' herhaalde hij slechts zachtjes fluisterend.
'O, wat kon ik hem aandoen!' - zei Petya tegen zichzelf en terwijl hij de deur opendeed, liet hij de jongen langs hem gaan.
Toen de trommelaar de hut binnenkwam, ging Petya bij hem vandaan zitten en vond het vernederend voor zichzelf om aandacht aan hem te schenken. Hij voelde alleen het geld in zijn zak en twijfelde of hij zich niet zou schamen om het aan de drummer te geven.

Van de trommelaar, die op bevel van Denisov wodka en schapenvlees kreeg en die Denisov beval zich in een Russische kaftan te kleden, zodat hij, zonder hem met de gevangenen op pad te sturen, met het gezelschap zou worden achtergelaten, werd Petya's aandacht afgeleid door de komst van Dolokhov. Petya in het leger hoorde veel verhalen over Dolokhov's buitengewone moed en wreedheid jegens de Fransen, en daarom, sinds Dolokhov de hut binnenging, keek Petya, zonder zijn ogen af ​​te wenden, hem aan en werd meer en meer aangemoedigd, terwijl hij zijn opgeheven hoofd schudde om niet om zelfs een samenleving als Dolokhov onwaardig te zijn.
Het uiterlijk van Dolokhov trof Petya vreemd met zijn eenvoud.
Denisov kleedde zich in chekmenen, droeg een baard en op zijn borst het beeld van Nicholas the Wonderworker, en in zijn manier van spreken, in al zijn recepties, toonde hij de eigenaardigheid van zijn positie. Dolokhov, integendeel, eerder in Moskou, die een Perzisch pak droeg, had nu het uiterlijk van de meest primordiale bewaker. Zijn gezicht was gladgeschoren, hij was gekleed in een gewatteerde bewakersjas met Georgy in zijn knoopsgat en in een eenvoudige pet, die hij recht droeg. Hij deed zijn natte mantel uit in de hoek en ging naar Denisov toe, zonder iemand te begroeten, en begon onmiddellijk naar de zaak te informeren. Denisov vertelde hem over de plannen die grote detachementen hadden voor hun transport, en over het sturen van Petya, en over hoe hij reageerde op beide generaals. Toen vertelde Denisov alles wat hij wist over de positie van het Franse detachement.
"Dat is zo, maar je moet weten welke en hoeveel troepen," zei Dolokhov, "je zult moeten gaan. Zonder precies te weten hoeveel het er zijn, kunt u geen zaken doen. Ik doe dingen graag netjes. Als een van de heren met mij mee naar hun kamp wil. Ik heb mijn uniformen bij me.
- Ik, ik... ik ga met je mee! - Petya schreeuwde het uit.
"Je hoeft helemaal niet te gaan," zei Denisov, zich tot Dolokhov wendend, "en ik zal hem nooit binnenlaten."
- Dat is geweldig! - Petya schreeuwde, - waarom zou ik niet gaan? ..
- Ja, want dat is niet nodig.
'Nou, neem me niet kwalijk, want... omdat... ik ga, dat is alles. Neem je me mee? - hij wendde zich tot Dolokhov.
- Waarom... - antwoordde Dolokhov afwezig, kijkend in het gezicht van de Franse drummer.
- Hoe lang heb je deze jonge kerel al? - vroeg hij aan Denisov.
- Vandaag hebben ze het genomen, maar ze weten niets. Ik liet hem pg "en mezelf.
- Wat doe je met de rest? - zei Dolokhov.
- Hoe, waar? riep Denisov uit, plotseling blozend, en ik zal stoutmoedig zeggen dat er geen enkele persoon op mijn geweten is dan de tovenaar "aat, ik pg" yamo zegt, de eer van een soldaat.
- Hier is een jonge graaf van zestien jaar oud om deze beleefdheden te zeggen, - zei Dolokhov met een koude grijns, - maar het is tijd dat je dat verlaat.
"Nou, ik zeg niets, ik zeg alleen dat ik zeker met je mee zal gaan," zei Petya verlegen.
'En het is tijd voor jou en mij, broeder, om deze beleefdheden op te geven,' vervolgde Dolokhov, alsof hij bijzonder plezier schepte in het praten over dit onderwerp, dat Denisov irriteerde. - Waarom heb je dit voor jezelf gehouden? zei hij hoofdschuddend. - Waarom heb je dan medelijden met hem? Wij kennen dit immers uw bonnetjes. Je stuurt er honderd en er zullen er dertig komen. Ze zullen van honger omkomen of geslagen worden. Dus is het allemaal hetzelfde om ze niet te nemen?


Afdeling 29 "Intelligente systemen aansturen"

Samenvatting over het onderwerp:

Clustersystemen

Voltooid:

leerling van groep K9-292

Popov IA

MOSKOU 2001

1. Inleiding

2. De belangrijkste klassen van moderne parallelle computers

3. Clusterarchitectuur van parallelle computers

4. De doelen van het maken van clustersystemen

5. Failoverclusters

6. Krachtige clusters

7. Project Beowulf

8. Conclusie

9. Literatuur

Invoering

Ontwikkeling van computersystemen met meerdere processors

De ontwikkeling van traditionele architecturen voor het bouwen van computersystemen, zoals SMP, MPP, vector parallelle systemen, gaat in een vrij snel tempo. Prestaties nemen toe, betrouwbaarheid en veerkracht nemen toe. Deze architecturen hebben echter één nadeel - de kosten van de systemen die worden gemaakt, die soms ontoegankelijk zijn voor veel gebruikers van dergelijke systemen - onderwijs- en onderzoeksorganisaties. Het rendert erg hoog vanwege de complexiteit van de hardware- en softwarecomponenten van het systeem, die nodig zijn om deze productiviteitsgroei te ondersteunen. De behoefte aan computerbronnen is momenteel echter zeer hoog op veel gebieden van wetenschappelijke en praktische activiteit, en de bronnen van traditionele supercomputersystemen zijn niet voldoende om hierin te voorzien.

Clustersystemen kwamen naar voren als een goedkopere oplossing voor het probleem van een gebrek aan computerbronnen en zijn gebaseerd op het gebruik in hun architectuur van wijdverbreide en relatief goedkope technologieën, hardware en software, zoals pc, Ethernet, Linux, enz. Het gebruik van massatechnologieën in clustersystemen is mogelijk geworden dankzij aanzienlijke vooruitgang in de ontwikkeling van componenten van conventionele computersystemen, zoals centrale verwerkingseenheden, besturingssystemen en communicatieomgevingen.

Aangezien clustersystemen architectonisch de ontwikkeling zijn van systemen met massale parallellisme MPP, is de belangrijkste rol in hun ontwikkeling vooruitgang op het gebied van netwerktechnologieën. Inmiddels zijn er goedkope maar effectieve communicatieoplossingen verschenen. Dit bepaalde de snelle opkomst en ontwikkeling van clustercomputersystemen. Ook andere factoren droegen bij aan de voortgang in de ontwikkeling van clustersystemen.

De prestaties van pc's op basis van Intel-processors zijn de afgelopen jaren ook aanzienlijk toegenomen. Dergelijke computers begonnen serieuze concurrentie te creëren voor werkstations op basis van duurdere en krachtigere RISC-processors. Tegelijkertijd begon het Linux-besturingssysteem, een freeware-versie van UNIX, steeds populairder te worden. Tegelijkertijd zijn er in wetenschappelijke organisaties en universiteiten, waar de meeste clustersystemen worden ontwikkeld, in de regel Linux-specialisten.

De hoge mate van ontwikkeling van clustersystemen vandaag blijkt uit het feit dat er 11 clusterinstallaties zijn in de lijst van de krachtigste supercomputers ter wereld Top500.


De belangrijkste klassen van moderne parallelle computers

Geclusterde systemen zijn een evolutie van parallelle systemen. Om de plaats van clustersystemen tussen andere soorten parallelle architecturen van computersystemen te laten zien, is het noodzakelijk om hun classificatie te geven. Parallelle systemen kunnen worden ingedeeld op basis van verschillende criteria.

Vanuit hardware-oogpunt is de belangrijkste parameter voor de classificatie van parallelle computers de aanwezigheid van gedeeld (SMP) of gedistribueerd geheugen (MPP). Iets tussen SMP en MPP zijn NUMA-architecturen waar geheugen fysiek wordt toegewezen maar logisch wordt gedeeld.

Symmetrische multiprocessorsystemen

Een SMP-systeem bestaat uit verschillende homogene processors en een reeks gedeeld geheugen. Een van de benaderingen die vaak worden gebruikt in SMP-architecturen om een ​​schaalbaar, openbaar geheugensysteem te vormen, is om de toegang tot geheugen uniform te organiseren door een schaalbaar geheugenprocessorkanaal te organiseren:

Elke geheugentoegangsbewerking wordt geïnterpreteerd als een processor-naar-geheugenbustransactie. Cachecoherentie wordt ondersteund door hardware.

In SMP heeft elke processor ten minste één eigen cache (en mogelijk meerdere).

We kunnen stellen dat een SMP-systeem één computer is met meerdere peer-to-peer-processors. Al het andere zit in één instantie: één geheugen, één I/O-subsysteem, één besturingssysteem. Het woord "peer" betekent dat elke processor alles kan doen wat elke andere processor kan. Elke processor heeft toegang tot al het geheugen, kan elke I/O-bewerking uitvoeren, andere processors onderbreken, enz.

Het nadeel van deze architectuur is de noodzaak om een ​​processor-geheugenkanaal te organiseren met een zeer hoge bandbreedte.

Massaal parallelle systemen

Een massaal parallel MPP-systeem bestaat uit homogene rekenknooppunten, waaronder:

  • een of meer centrale verwerkingseenheden (meestal RISC)
  • lokaal geheugen (directe toegang tot geheugen van andere nodes is niet mogelijk)
  • communicatieprocessor of netwerkadapter
  • harde schijven en/of andere I/O-apparaten

Er kunnen speciale I/O-knooppunten en besturingsknooppunten aan het systeem worden toegevoegd. De knooppunten zijn verbonden via een soort communicatiemedium (hogesnelheidsnetwerk, switch, enz.)

Systemen met heterogene NUMA-geheugentoegang

NUMA (niet-uniforme geheugentoegang), in tegenstelling tot de gebruikelijke SMP-architectuur met gedeeld geheugen, wordt vertegenwoordigd door verschillende afzonderlijke processors, die elk, naast een eigen cache, ook lokaal geheugen hebben:

In een dergelijke architectuur zijn de processor- en geheugenmodules nauw geïntegreerd, daarom is de toegangssnelheid tot het lokale geheugen veel hoger dan tot het geheugen van de "naburige" processor. I / O-subsystemen kunnen deel uitmaken van elk knooppunt of worden geconsolideerd in speciale I / O-knooppunten. Als cachecoherentie door het hele systeem wordt gehandhaafd, wordt deze architectuur cc-NUMA genoemd.

De eenvoudigste manier om een ​​NUMA-systeem te karakteriseren, is door je een groot SMP-systeem voor te stellen dat in verschillende delen is verdeeld. Deze delen zijn verbonden door een communicatiebus die is verbonden met de systeembussen, en elk deel heeft zijn eigen hoofdgeheugen en I/O-subsysteem. Dit is NUMA: een grote SMP, opgesplitst in een reeks kleinere en eenvoudigere SMP's. Het grootste probleem met NUMA is het zorgen voor cachecoherentie. De hardware maakt het mogelijk om met alle afzonderlijke apparaten van het hoofdgeheugen van de samenstellende delen van het systeem (meestal nodes genoemd) als één gigantisch geheugen te werken.

Clusterarchitectuur

Overweeg de plaats van de clusterarchitectuur van computersystemen in deze classificatie.

Een cluster is een onderling verbonden set van complete computers die als een enkele bron wordt gebruikt. De term "volwaardige computer" verwijst naar een compleet computersysteem dat alles heeft wat nodig is voor de werking ervan, inclusief processors, geheugen, invoer- / uitvoersubsysteem, evenals een besturingssysteem, subsystemen, applicaties, enz. Meestal zijn hiervoor personal computers of parallelle systemen geschikt, die een SMP- en zelfs NUMA-architectuur kunnen hebben. Clusters zijn losjes gekoppelde systemen, communicatie van nodes maakt gebruik van een van de standaard netwerktechnologieën (Fast/Gigabit Ethernet, Myrinet) op basis van een busarchitectuur of een switch. Daarom zijn ze een goedkopere modificatie van de MPP-architectuur te bouwen.

Clusterarchitectuur van parallelle computers

Algemene principes

Zoals eerder vermeld, is een computercluster een verzameling computers die in een netwerk zijn verenigd om één probleem op te lossen (Fig. 3), dat aan de gebruiker wordt gepresenteerd als een enkele bron. Dit concept van de cluster werd voor het eerst voorgesteld en geïmplementeerd in de vroege jaren 80 door Digital Equipment Corporation, die deze technologie nog steeds aan het ontwikkelen is.

Single Resource verwijst naar de aanwezigheid van software waarmee gebruikers, beheerders en applicaties kunnen aannemen dat er maar één entiteit is waarmee ze werken: het cluster. Met een batchverwerkingssysteem voor clusters kunt u bijvoorbeeld een taak voor verwerking naar het cluster sturen in plaats van naar een afzonderlijke computer. Een complexer voorbeeld zijn databasesystemen. Vrijwel alle databaseleveranciers hebben versies die parallel lopen op meerdere machines in het cluster. Hierdoor hoeven applicaties die de database gebruiken zich geen zorgen te maken over waar hun werk wordt gedaan. Het DBMS is verantwoordelijk voor het synchroniseren van parallelle acties en het handhaven van de integriteit van de database.

De computers die het cluster vormen - de zogenaamde clusterknooppunten - zijn altijd relatief onafhankelijk, waardoor ze allemaal kunnen worden gestopt of uitgeschakeld om onderhoudswerkzaamheden uit te voeren of extra apparatuur te installeren zonder het hele cluster te verstoren.

Personal computers met één processor, SMP-servers met twee of vier processors worden gewoonlijk gebruikt als rekenknooppunten in een cluster. Elk knooppunt voert zijn eigen kopie van het besturingssysteem uit, meestal standaardbesturingssystemen: Linux, NT, Solaris, enz. De samenstelling en kracht van knooppunten kan zelfs binnen hetzelfde cluster veranderen, waardoor het mogelijk wordt om heterogene systemen te creëren. De keuze voor een specifieke communicatie-omgeving wordt bepaald door vele factoren: de bijzonderheden van de klasse van taken die worden opgelost, de noodzaak voor latere uitbreiding van het cluster, enz. Het is mogelijk om gespecialiseerde computers in de configuratie op te nemen, bijvoorbeeld een bestandsserver, en in de regel is de mogelijkheid van externe toegang tot het cluster via internet voorzien.

Uit de definitie van de architectuur van clustersystemen volgt dat deze een zeer breed scala aan systemen omvat. Gezien de extreme punten kan een cluster worden beschouwd als een paar pc's die zijn verbonden door een lokaal 10-megabit Ethernet-netwerk, evenals een computersysteem dat is gemaakt als onderdeel van het Cplant-project in het Sandia National Laboratory: 1400 werkstations op basis van Alpha-processors, verbonden door een supersnel Myrinet-netwerk.

Zo kan worden gezien dat er veel verschillende opties zijn voor het bouwen van clusters. Tegelijkertijd zijn de gebruikte communicatietechnologieën en standaarden van groot belang in de clusterarchitectuur. Zij bepalen voor een groot deel het takenpakket voor de oplossing waarvan het mogelijk is om clusters te gebruiken die op basis van deze technologieën zijn gebouwd.

Communicatietechnologieën voor het bouwen van clusters

Clusters kunnen zowel op basis van gespecialiseerde hoals op basis van massanetwerktechnologieën worden gebouwd. Van de massacommunicatiestandaarden is Ethernet het meest gebruikte netwerk of de productievere versie ervan - Fast Ethernet, in de regel op basis van switches. De grote overhead van messaging via Fast Ethernet leidt echter tot ernstige beperkingen op de reeks taken die op een dergelijke cluster effectief kunnen worden opgelost. Als het cluster hogere prestaties en veelzijdigheid vereist, dan is het noodzakelijk om snellere en meer gespecialiseerde technologieën toe te passen. Deze omvatten SCI, Myrinet, cLAN, ServerNet, enz. Vergelijkende kenmerken van de parameters van deze technologieën worden gegeven in
Tafel 1.

ServerNet

Snel Ethernet

Latentie (MPI)

Bandbreedte (MPI)

180 MB/s

Bandbreedte (hardware)

400 MB/s

160 MB/s

150 MB/s

12,5 MB/s

MPI-implementatie

HPVM, MPICH-GM, enz.

Tafel 1.

De prestatie van communicatienetwerken in clustersystemen wordt bepaald door verschillende numerieke kenmerken. Er zijn twee hoofdkenmerken: latentie - de tijd van de initiële vertraging bij het verzenden van berichten en de netwerkbandbreedte, die de snelheid van informatieoverdracht via communicatiekanalen bepaalt. In dit geval zijn niet zozeer de piekkarakteristieken die in de norm worden aangegeven van belang, maar de echte die worden bereikt op het niveau van gebruikersapplicaties, bijvoorbeeld op het niveau van MPI-applicaties. In het bijzonder, nadat de gebruiker de functie Send () voor het verzenden van het bericht heeft aangeroepen, gaat het bericht achtereenvolgens door een hele reeks lagen, bepaald door de eigenaardigheden van de organisatie van software en hardware, voordat het de processor verlaat - daarom is er een significante uitsplitsing in de normen van latentiewaarden. De aanwezigheid van latency heeft tot gevolg dat de maximale transmissiesnelheid over het netwerk niet kan worden bereikt met berichten met een kleine lengte.

Fast Ethernet en Scalable Coherent Interface (SCI) nezijn afhankelijk van de berichtlengte. Fast Ethernet wordt gekenmerkt door een hoge latentie - 160-180 s, terwijl de SCI-latentie ongeveer 5,6 s is. De maximale overdrachtssnelheid voor dezelfde technologieën is respectievelijk 10 MB/s en 80 MB/s.

De doelen van het maken van clustersystemen

Clustersysteemarchitecten hebben bij hun creatie verschillende doelen nagestreefd. De eerste was Digital Equipment met VAX/VMS-clusters. Het doel van deze machine was om de betrouwbaarheid van het systeem te verbeteren, een hoge beschikbaarheid en fouttolerantie van het systeem te garanderen. Momenteel zijn er veel systemen met vergelijkbare architectuur van andere fabrikanten.

Een ander doel van het creëren van clustersystemen is het creëren van goedkope, krachtige parallelle computersystemen. Een van de eerste projecten die een naam gaven aan een hele klasse van parallelle systemen - het Beowulf-cluster - ontstond in het Goddard Space Flight Center van NASA om het Earth and Space Sciences-project te ondersteunen met de nodige computerbronnen. Het Beowulf-project begon in de zomer van 1994 en werd al snel geassembleerd tot een cluster met 16 processors op basis van Intel 486DX4/100 MHz-processors. Elk knooppunt had 16 MB RAM en 3 Ethernet-netwerkadapters. Dit systeem bleek zeer succesvol in termen van prijs / prestatieverhouding, dus deze architectuur begon te worden ontwikkeld en op grote schaal gebruikt in andere wetenschappelijke organisaties en instituten.

Elke klasse van clusters heeft zijn eigen architectuur en hardwarefuncties. Laten we ze in meer detail bekijken.

Failoverclusters

Constructie principes

Om de betrouwbaarheid en fouttolerantie van computersystemen te garanderen, worden veel verschillende hardware- en softwareoplossingen gebruikt. Het systeem kan bijvoorbeeld alle storingsgevoelige elementen dupliceren - voedingen, processors, RAM en extern geheugen. Dergelijke fouttolerante systemen met redundante componenten worden gebruikt om problemen op te lossen waarbij de betrouwbaarheid van conventionele computersystemen, die momenteel wordt geschat op 99% uptime, onvoldoende is. Bij dergelijke problemen is een kans van 99,999% of hoger vereist. Deze betrouwbaarheid kan worden bereikt door verschillende methoden te gebruiken om de fouttolerantie uit de bovenstaande te vergroten. Afhankelijk van de mate van gebruiksgereedheid van een computersysteem worden vier soorten betrouwbaarheid onderscheiden:

Gereedheidsniveau,%

Maximaal uitvaltijd

Systeem type

3,5 dagen per jaar

Conventioneel

8,5 uur per jaar

Hoge beschikbaarheid

1 uur per jaar

Foutbestendig

5 minuten per jaar

Fouttolerant

Tafel 2.

In tegenstelling tot fouttolerante systemen met redundante componenten, evenals verschillende multiprocessing-opties, verenigen clusters machines die relatief onafhankelijk van elkaar zijn, die elk kunnen worden gestopt voor preventief onderhoud of herconfiguratie, zonder de gezondheid van het cluster als een geheel. Hoge clusterprestaties en minimale downtime van applicaties worden bereikt door:

  • bij een softwarestoring op één van de nodes blijft de applicatie werken of wordt automatisch herstart op de andere nodes van het cluster;
  • uitval van een van de knooppunten (of meerdere) zal niet leiden tot de ineenstorting van het hele clustersysteem;
  • Onderhouds- en reparatiewerkzaamheden, herconfiguratie of wijziging van de softwareversie kunnen in de regel één voor één in de clusterknooppunten worden uitgevoerd, zonder het werk van andere knooppunten te onderbreken.

Een integraal onderdeel van het cluster is speciale software, die in feite het probleem van het herstellen van een knooppunt in geval van een storing oplost, en ook andere taken oplost. Clustersoftware heeft meestal verschillende vooraf gedefinieerde herstelscenario's voor het systeem en kan de beheerder ook de mogelijkheid bieden om dergelijke scenario's aan te passen. Disaster recovery kan zowel voor het hele knooppunt als voor de afzonderlijke componenten ervan worden ondersteund - toepassingen, schijfvolumes, enz. Deze functie wordt automatisch gestart bij een systeemstoring en kan ook door de beheerder worden gestart als hij bijvoorbeeld een van de nodes moet afsluiten voor herconfiguratie.

Clusters kunnen gedeeld geheugen hebben op externe schijven, meestal een RAID-schijfarray. Een RAID disk array is een server I/O subsysteem voor het opslaan van grote hoeveelheden data. RAID-arrays gebruiken een aanzienlijk aantal relatief kleine schijven om grote hoeveelheden gegevens op te slaan en bieden een hogere betrouwbaarheid en redundantie. Zo'n array wordt door de computer gezien als een enkel logisch apparaat.

Disaster recovery kan zowel voor het hele knooppunt als voor de afzonderlijke componenten ervan worden ondersteund - toepassingen, schijfvolumes, enz. Deze functie wordt automatisch gestart bij een systeemstoring en kan ook door de beheerder worden gestart als hij bijvoorbeeld een van de nodes moet afsluiten voor herconfiguratie.

Clusterknooppunten bewaken elkaars gezondheid en wisselen specifieke "cluster"-informatie uit, zoals clusterconfiguratie, en dragen gegevens over tussen gedeelde schijven en coördineren het gebruik ervan. Gezondheidsmonitoring wordt uitgevoerd met behulp van een speciaal signaal dat de clusterknooppunten naar elkaar verzenden om hun normale werking te bevestigen. Wanneer een van de knooppunten stopt met signaleren, signaleert het de clustersoftware dat er een storing is opgetreden en dat de belasting op de resterende knooppunten moet worden herverdeeld. Laten we als voorbeeld een VAX / VMS-failovercluster nemen.

VAX / VMS-cluster

DEC was de eerste die het concept van een clustersysteem in 1983 aankondigde en definieerde het als een groep onderling verbonden computers die een enkele informatieverwerkingseenheid vertegenwoordigen. In wezen is een VAX-cluster een losjes gekoppeld systeem met meerdere machines met gedeeld extern geheugen dat een uniform beheer- en beheermechanisme biedt.

VAX-cluster heeft de volgende eigenschappen:

Middelen delen. VAX-computers in een cluster kunnen de toegang tot gedeelde tape- en diskdrives delen. Alle VAX-computers in het cluster hebben als lokale toegang tot individuele gegevensbestanden.

Hoge beschikbaarheid. Als een van de VAX-computers uitvalt, kunnen de taken van de gebruikers automatisch worden overgedragen naar een andere computer in het cluster. Als er meerdere HSC's in het systeem zijn en een ervan faalt, dan zullen de andere HSC's deze automatisch oppikken.

Hoge doorvoer... Een aantal applicatiesystemen kan profiteren van de mogelijkheid om taken parallel uit te voeren op meerdere computers in het cluster.

Onderhoudsgemak van het systeem... Gedeelde databases kunnen vanaf één locatie worden onderhouden. Applicatieprogramma's kunnen slechts één keer worden geïnstalleerd op gedeelde clusterschijven en worden gedeeld tussen alle computers in het cluster.

Uitbreidbaarheid... De vergroting van de rekenkracht van het cluster wordt bereikt door er extra VAX-computers op aan te sluiten. Extra tape en tapedrives worden beschikbaar gemaakt voor alle computers in het cluster.

De werking van een VAX-cluster wordt bepaald door twee hoofdcomponenten. Het eerste onderdeel is het snelle communicatiemechanisme en het tweede is de systeemsoftware die klanten transparante toegang tot de systeemservice biedt. Fysiek worden verbindingen binnen een cluster geïmplementeerd met behulp van drie verschillende bustechnologieën met verschillende prestatiekenmerken.

De belangrijkste communicatiemethoden in een VAX-cluster worden getoond in Fig. 4.

Rijst. 4 VAX/VMS-cluster

De Computer Interconnect (CI)-bus werkt met 70 Mbps en wordt gebruikt om VAX-computers en HSC's aan te sluiten met behulp van een Star Coupler. Elke CI-link heeft dubbele redundante links, twee voor verzenden en twee voor ontvangen, met behulp van basis CSMA-technologie die knooppuntspecifieke vertragingen gebruikt om botsingen te elimineren. De maximale lengte van de CI-link is 45 meter. De Star Coupler kan maximaal 32 CI-bussen ondersteunen, elk voor het aansluiten van een VAX of HSC. De HSC is een intelligent apparaat dat de werking van disk- en tapedrives regelt.

VAX-computers kunnen ook via een lokaal netwerk tot een cluster worden gecombineerd

Ethernet met behulp van NI - Network Interconnect (de zogenaamde lokale VAX-clusters), maar de prestaties van dergelijke systemen zijn relatief laag vanwege de noodzaak om de Ethernet-bandbreedte te delen tussen clustercomputers en andere netwerkclients.

Clusters kunnen ook worden gebaseerd op de DSSI-bus (Digital Storage System Interconnect). De DSSI-bus kan maximaal vier lage en middelhoge VAX-computers met elkaar verbinden. Elke computer kan meerdere DSSI-adapters ondersteunen. Een aparte DSSI-bus werkt met 4 MB/s (32 Mbit/s) en maakt het mogelijk om tot 8 apparaten aan te sluiten. De volgende apparaattypen worden ondersteund: DSSI-systeemadapter, RF-serie schijfcontroller en TF-serie lintcontroller. DSSI beperkt de afstand tussen knooppunten in een cluster tot 25 meter.

VAX Cluster-systeemsoftware

DEC gebruikt de Distributed Lock Manager (DLM) om ervoor te zorgen dat de processors correct met elkaar communiceren bij toegang tot gedeelde bronnen zoals schijven. Een zeer belangrijke functie van DLM is het handhaven van een coherente staat van schijfcaches voor I/O-bewerkingen van het besturingssysteem en de applicatie. In relationele databasetoepassingen is DLM bijvoorbeeld verantwoordelijk voor het handhaven van een consistente status tussen databasebuffers op verschillende computers in het cluster.

Het probleem van het handhaven van de samenhang van de I/O-cache tussen processors in een cluster is vergelijkbaar met het probleem van het handhaven van de samenhang van de cache in een nauw gekoppeld multiprocessorsysteem op basis van een bepaalde bus. Gegevensblokken kunnen tegelijkertijd in verschillende caches verschijnen en als een processor een van deze kopieën wijzigt, weerspiegelen andere bestaande kopieën niet de huidige staat van het gegevensblok. Het concept van blokovername (blokeigendom) is een manier om dergelijke situaties te beheren. Voordat een blok kan worden gewijzigd, moet het eigendom van het blok worden beveiligd.

Werken met DLM brengt aanzienlijke overheadkosten met zich mee. De overhead in een VAX/VMS-omgeving kan groot zijn en er zijn tot zes berichten op de CI-bus nodig voor een enkele I/O-operatie. De overheadkosten kunnen oplopen tot 20% voor elke processor in het cluster.

Hoogwaardige clusters

Constructie principes

De architectuur van high-performance clusters verscheen als een ontwikkeling van de principes van het bouwen van MPP-systemen op minder productieve en in massa geproduceerde componenten die worden bestuurd door een algemeen besturingssysteem. Clusters bestaan, net als MPP-systemen, uit losjes gekoppelde knooppunten, die homogeen of, in tegenstelling tot MPP, verschillend of heterogeen kunnen zijn. Bij het ontwerpen van een hoogwaardige clusterarchitectuur wordt speciale aandacht besteed aan het waarborgen van een hoge efficiëntie van de communicatiebus die de clusterknooppunten verbindt. Omdat grote, relatief lage prestatie bussen vaak in clusters worden gebruikt, moet een aantal maatregelen worden genomen om hun lage doorvoer op de prestaties van clusters te elimineren en om efficiënte parallellisatie in het cluster te organiseren. Zo is de bandbreedte van een van de snelste technologieën, Fast Ethernet, orden van grootte lager dan die van interconnects in moderne supercomputers MPP-architectuur.

Er worden verschillende methoden gebruikt om problemen met slechte netwerkprestaties op te lossen:

Het cluster is opgedeeld in verschillende segmenten, waarbinnen de nodes verbonden zijn door een high-performance bus zoals Myrinet, en de communicatie tussen de nodes van verschillende segmenten wordt uitgevoerd door low-performance netwerken zoals Ethernet / Fast Ethernet. Dit maakt het mogelijk, samen met het verlagen van de kosten van de communicatieomgeving, om de prestaties van dergelijke clusters aanzienlijk te verhogen bij het oplossen van problemen met intensieve gegevensuitwisseling tussen processen.

Het gebruik van de zogenaamde "trunking", d.w.z. het combineren van verschillende Fast Ethernet-kanalen in één gemeenschappelijk high-speed kanaal dat meerdere switches verbindt. Het voor de hand liggende nadeel van deze benadering is het "verlies" van enkele van de poorten die betrokken zijn bij het onderling verbinden van schakelaars.

Om de prestaties te verbeteren, worden speciale protocollen voor het uitwisselen van informatie over dergelijke netwerken gecreëerd, die een efficiënter gebruik van kanaalbandbreedte mogelijk maken en enkele beperkingen opheffen die worden opgelegd door standaardprotocollen (TCP / IP, IPX). Deze methode wordt vaak gebruikt in systemen van de Beowulf-klasse.

De belangrijkste eigenschap die een high-performance cluster moet hebben, is horizontale schaalbaarheid, aangezien een van de belangrijkste voordelen van clusterarchitectuur de mogelijkheid is om de capaciteit van een bestaand systeem te vergroten door simpelweg nieuwe nodes aan het systeem toe te voegen. Bovendien vindt de toename van het vermogen bijna evenredig plaats met het vermogen van de toegevoegde bronnen en kan het worden uitgevoerd zonder het systeem tijdens zijn werking te stoppen. In systemen met een andere architectuur (met name MPP) is meestal alleen verticale schaalbaarheid mogelijk: het toevoegen van geheugen, het vergroten van het aantal processors in multiprocessorsystemen of het toevoegen van nieuwe adapters of schijven. Hiermee kunt u de systeemprestaties tijdelijk verbeteren. Het systeem heeft echter de maximaal ondersteunde hoeveelheid geheugen, processors of schijven, systeembronnen zullen uitgeput raken en om de prestaties te verbeteren, moet u een nieuw systeem maken of het oude aanzienlijk herwerken. Het clustersysteem is ook verticaal schaalbaar. Door verticale en horizontale schaling biedt het clustermodel dus meer flexibiliteit en het gemak waarmee de systeemprestaties kunnen worden verbeterd.

Beowulf-project

Beowulf is een Scandinavisch epos dat vertelt over de gebeurtenissen van de 7e - eerste derde van de 8e eeuw, waarin de held met dezelfde naam, die zichzelf verheerlijkte in veldslagen, een deelnemer is.

Een van de voorbeelden van de implementatie van een clustersysteem van een dergelijke structuur zijn Beowulf-clusters. Het Beowulf-project bracht ongeveer anderhalf dozijn organisaties (voornamelijk universiteiten) in de Verenigde Staten samen. De leidende ontwikkelaars van het project zijn NASA-specialisten. In dit type clusters zijn de volgende hoofdkenmerken te onderscheiden:

Een Beowulf-cluster bestaat uit verschillende afzonderlijke knooppunten die zijn verbonden met een gemeenschappelijk netwerk; gedeelde bronnen worden niet gebruikt door de clusterknooppunten;

Het wordt als optimaal beschouwd om clusters te bouwen op basis van SMP-systemen met twee processors;

Om de overhead van interactie tussen knooppunten te verminderen, wordt full-duplex 100 MB Fast Ethernet gebruikt (minder vaak wordt SCI gebruikt), worden verschillende netwerksegmenten gemaakt of worden clusterknooppunten verbonden via een switch;

Linux OS en gratis communicatiebibliotheken (PVM en MPI) worden als software gebruikt;

De geschiedenis van het Beowulf-project

Het project begon in de zomer van 1994 in het Goddard Space Flight Center (GSFC) van NASA, meer bepaald in het CESDIS (Center of Excellence in Space Data and Information Sciences) dat op zijn basis werd opgericht.

Het eerste Beowulf-cluster was gebaseerd op Intel-computers met Linux. Het was een systeem bestaande uit 16 nodes (op 486DX4/100MHz processors, 16MB geheugen en 3 netwerkadapters op elke node, 3 "parallelle" 10Mbit Ethernet-kabels). Het is gemaakt als een computerhulpmiddel voor het Earth and Space Sciences Project (ESS).

Verder werden in GSFC en andere afdelingen van NASA andere, krachtigere clusters verzameld. Het HIVE-cluster (Highly-parallel Integrated Virtual Environment) bevat bijvoorbeeld 64 nodes met 2 Pentium Pro/200MHz-processors en elk 4GB geheugen, 5 Fast Ethernet-switches. De totale kosten van dit cluster bedragen ongeveer $ 210.000. Als onderdeel van het Beowulf-project werden een aantal krachtige en gespecialiseerde netwerkstuurprogramma's ontwikkeld (met name een stuurprogramma voor het gelijktijdig gebruiken van meerdere Ethernet-kanalen).

Beowulf-architectuur

Clusterknooppunten.

Dit zijn pc's met één processor of SMP-servers met een klein aantal processors (2-4, mogelijk tot 6). Om de een of andere reden wordt het als optimaal beschouwd om clusters te bouwen op basis van dual-processorsystemen, ondanks het feit dat in dit geval het opzetten van een cluster wat moeilijker zal zijn (voornamelijk omdat er relatief goedkope moederborden voor 2 Pentium II / III-processors beschikbaar zijn) . Het is de moeite waard om 64-128 MB RAM op elk knooppunt te installeren (voor systemen met twee processors 64-256 MB).

Een van de machines moet worden toegewezen als de centrale (hoofd) waar een voldoende grote harde schijf moet worden geïnstalleerd, mogelijk een krachtigere processor en meer geheugen dan de andere (werkende) knooppunten. Het is logisch om een ​​(beveiligde) verbinding te voorzien tussen deze machine en de buitenwereld.

Bij het samenstellen van werkende knooppunten is het heel goed mogelijk om harde schijven te verlaten - deze knooppunten laden het besturingssysteem via het netwerk vanaf de centrale machine, waardoor u niet alleen geld bespaart, maar u ook het besturingssysteem en alle benodigde software slechts één keer kunt configureren ( op de centrale machine). Als deze nodes niet tegelijkertijd als gebruikerswerkstations worden gebruikt, is het niet nodig om er videokaarten en monitoren op te installeren. Het is mogelijk om nodes in racks te installeren (rackmontage), waardoor de ruimte die door nodes wordt ingenomen wordt verminderd, maar het kost iets meer.

Het is mogelijk om clusters te organiseren op basis van bestaande netwerken van werkstations, d.w.z. gebruikerswerkstations kunnen 's nachts en in het weekend als clusterknooppunten worden gebruikt. Dergelijke systemen worden ook wel COW (Cluster of Workstations) genoemd.

Het aantal knooppunten moet worden geselecteerd op basis van de benodigde computerbronnen en beschikbare financiële middelen. Het moet duidelijk zijn dat met een groot aantal knooppunten ook complexere en duurdere netwerkapparatuur moet worden geïnstalleerd.

De belangrijkste LAN-types die betrokken zijn bij het Beowulf-project zijn Gigabit Ethernet, Fast Ethernet en 100-VG AnyLAN. In het eenvoudigste geval wordt één Ethernet-segment gebruikt (10Mbit/sec op twisted pair). De lage kosten van een dergelijk netwerk, als gevolg van botsingen, veranderen echter in hoge overheadkosten voor uitwisselingen tussen processors; en goede prestaties van zo'n cluster mogen alleen worden verwacht bij taken met een zeer eenvoudige parallelle structuur en met zeer zeldzame interacties tussen processen (bijvoorbeeld opsomming van opties).

Om goede prestaties van interprocessoruitwisselingen te verkrijgen, wordt full-duplex Fast Ethernet met 100Mbit/sec gebruikt. In dit geval, om het aantal botsingen te verminderen, stelt u ofwel meerdere "parallelle" Ethernet-segmenten in of verbindt u de clusterknooppunten via een switch.

Een duurdere, maar ook populaire optie is het gebruik van switches zoals Myrinet (1,28Gbit/sec, full duplex).

Minder populair, maar ook daadwerkelijk gebruikt in het bouwen van clusters, zijn netwerktechnologieën cLAN, SCI en Gigabit Ethernet.

Soms worden voor communicatie tussen clusterknooppunten meerdere fysieke communicatiekanalen parallel gebruikt - de zogenaamde "channel bonding", die meestal wordt gebruikt voor Fast Ethernet-technologie. In dit geval is elk knooppunt met meer dan één kanaal verbonden met de Fast Ethernet-switch. Om dit te bereiken, zijn knooppunten uitgerust met meerdere NIC's of Fast Ethernet-kaarten met meerdere poorten. Door channel bonding te gebruiken in nodes waarop Linux draait, kun je de zend-/ontvangstbelasting gelijkmatig verdelen over de corresponderende kanalen.

Systeem software

Besturingssysteem. Meestal wordt het Linux-systeem gebruikt in versies die speciaal zijn geoptimaliseerd voor gedistribueerd parallel computergebruik. De Linux 2.0-kernel werd verfijnd. Tijdens het bouwen van de clusters bleek dat de standaard Linux-stuurprogramma's voor netwerkapparaten erg ineffectief zijn. Daarom werden nieuwe stuurprogramma's ontwikkeld, voornamelijk voor Fast Ethernet- en Gigabit Ethernet-netwerken, en was het mogelijk om meerdere parallelle netwerkverbindingen tussen personal computers logisch te combineren (vergelijkbaar met hardware channel bonding), wat het mogelijk maakt om een ​​netwerk op te bouwen van goedkope lokale netwerken met lage bandbreedte met een hoge totale doorvoer.

Zoals bij elk cluster, voert elk clusterknooppunt zijn eigen kopie van de OS-kernel uit. Dankzij verbeteringen is de uniciteit van proces-ID's gewaarborgd binnen het hele cluster, en niet individuele knooppunten.

Communicatie bibliotheken. De meest gebruikelijke parallelle programmeerinterface in het model voor het doorgeven van berichten is MPI. De aanbevolen gratis implementatie van MPI is het MPICH-pakket van Argonne National Laboratory. Voor clusters op basis van de Myrinet-switch is het HPVM-systeem ontwikkeld, waarin ook de MPI-implementatie is opgenomen.

Voor het efficiënt organiseren van parallellisme binnen één SMP-systeem zijn twee opties mogelijk:

  1. Een afzonderlijk MPI-proces wordt voortgebracht voor elke processor in de SMP-machine. MPI-processen binnen dit systeem wisselen berichten uit via gedeeld geheugen (MPICH moet dienovereenkomstig worden geconfigureerd).
  2. Op elke machine wordt slechts één MPI-proces gestart. Binnen elk MPI-proces wordt parallellisatie uitgevoerd in het "shared memory"-model, bijvoorbeeld met behulp van OpenMP-richtlijnen.

Na het installeren van de MPI-implementatie is het zinvol om de daadwerkelijke prestaties van netwerkdoorschakeling te testen.

Naast MPI zijn er andere bibliotheken en parallelle programmeersystemen die op clusters kunnen worden gebruikt.

Voorbeeld van Beowulf - Avalon Cluster-implementatie

In 1998 bouwden astrofysicus Michael Warren en andere wetenschappers van de theoretische astrofysica-groep de Avalon-supercomputer in Los Alamos National Laboratory, een Beowulf-cluster gebaseerd op DEC Alpha / 533MHz-processors. De Avalon bestond oorspronkelijk uit 68 processors, daarna werd het uitgebreid tot 140. Elke node heeft 256 MB RAM, een 3,2 GB EIDE harde schijf en een Kingston NIC (totale node kost $ 1700). De nodes zijn verbonden via 4 36-poorts Fast Ethernet-switches en een centraal geplaatste 12-poorts Gigabit Ethernet-switch van 3Com.

De totale kosten van Avalon zijn $ 313 duizend, en dankzij de LINPACK-prestaties (47,7 GFLOPS) kon het de 114e plaats innemen in de 12e editie van de Top500-lijst (naast het 152-processorsysteem IBM SP2). De 70-processor Avalon-configuratie vertoonde in veel tests dezelfde prestaties als het 64-processor SGI Origin2000 / 195MHz-systeem, dat meer dan $ 1 miljoen kost.

Avalon wordt momenteel veel gebruikt in astrofysische, moleculaire en andere wetenschappelijke informatica. Op SC 98 presenteerden de makers van Avalon een lezing getiteld "Avalon: An Alpha / Linux Cluster Achieves 10 Gflops for $ 150k" en wonnen in 1998 de Gordon Bell Price / Performance Prize.

Gevolgtrekking

Toonaangevende microprocessorfabrikanten Sun Microsystems, Dell en IBM delen allemaal dezelfde visie op de toekomst van de supercomputerindustrie: individuele, onafhankelijke supercomputers moeten worden vervangen door clusters van krachtige servers. Vandaag al lopen gedistribueerde clustersystemen voor op moderne klassieke supercomputers in prestaties: de krachtigste computer ter wereld van vandaag - IBM ASCI White - heeft een prestatie van 12 TeraFLOP, netwerkprestaties [e-mail beveiligd] geschat op ongeveer 15 TeraFLOP. Tegelijkertijd werd IBM ASCI White verkocht voor 110 miljoen dollar, en in de hele geschiedenis van zijn bestaan [e-mail beveiligd] ongeveer 500 duizend dollar werd uitgegeven.

Literatuur

2.http: //www.beowulf.com

3. http://newton.gsfc.nasa.gov/thehive/

4. LoBoS, http://www.lobos.nih.gov

5. http://parallel.ru/news/kentucky_klat2.html

6. http://parallel.ru/news/anl_chibacity.html

7. http://parallel.ru/cluster/

8. http://www.ptc.spbu.ru

MIMD-computers

MIMD-computer heeft N processors die onafhankelijk worden uitgevoerd N opdrachtstromen en verwerking N datastromen. Elke processor werkt volgens zijn eigen stroom van instructies, dat wil zeggen dat een MIMD-computer volledig verschillende programma's parallel kan uitvoeren.


MIMD-architecturen worden verder geclassificeerd op basis van de fysieke organisatie van het geheugen, dat wil zeggen of de processor zijn eigen lokale geheugen heeft en toegang heeft tot andere geheugenblokken met behulp van het schakelnetwerk, of dat het schakelnetwerk alle processors verbindt met het openbare geheugen. Op basis van de geheugenorganisatie worden de volgende typen parallelle architecturen onderscheiden:

  • Computers met gedistribueerd geheugen (Gedistribueerd geheugen)
    De processor heeft toegang tot het lokale geheugen, kan berichten verzenden en ontvangen die worden verzonden via het netwerk dat de processors verbindt. Berichten worden gebruikt om te communiceren tussen processors of, equivalent, om externe geheugenblokken te lezen en te schrijven. In een geïdealiseerd netwerk zijn de kosten van het verzenden van een bericht tussen twee netwerkknooppunten onafhankelijk van zowel de locatie van beide knooppunten als het netwerkverkeer, maar zijn ze afhankelijk van de lengte van het bericht.

  • Computers met gedeeld geheugen (Echt gedeeld geheugen)
    Alle processors hebben gezamenlijk toegang tot gedeeld geheugen, meestal via een bus of bushiërarchie. In het geïdealiseerde PRAM-model (Parallel Random Access Machine), dat vaak wordt gebruikt in theoretische studies van parallelle algoritmen, kan elke processor tegelijkertijd toegang krijgen tot elke geheugenlocatie. In de praktijk resulteert de schaalbaarheid van deze architectuur meestal in een vorm van geheugenhiërarchie. De frequentie van toegang tot het gedeelde geheugen kan worden verminderd door kopieën van vaak gebruikte gegevens op te slaan in het cachegeheugen dat bij elke processor hoort. Toegang tot deze cache is veel sneller dan rechtstreeks toegang tot het gedeelde geheugen.

  • Computers met virtueel gedeeld (gedeeld) geheugen (Virtueel gedeeld geheugen)
    Er is geen gedeeld geheugen als zodanig. Elke processor heeft zijn eigen lokale geheugen en kan via een "globaal adres" toegang krijgen tot het lokale geheugen van andere processors. Als het "globale adres" niet naar het lokale geheugen verwijst, wordt het geheugen benaderd met behulp van berichten die via het communicatienetwerk worden verzonden.

Voorbeelden van machines met gedeeld geheugen zijn:

  • Sun Microsystems (werkstations met meerdere processors)
  • Silicon Graphics Challenge (werkstations met meerdere processors)
  • Opeenvolgende symmetrie
  • Convex
  • Cray 6400.

De volgende computers zijn geclassificeerd als machines met gedistribueerd geheugen:

  • IBM-SP1 / SP2
  • Parsytec GC
  • CM5 (Denken Machine Corporation)
  • Cray T3D
  • Paragon (Intel Corp.)
  • nCUBE
  • Meiko CS-2
  • AVX (Alex parallelle computers)
  • IMS B008

MIMD-architecturen met gedistribueerd geheugen kunnen ook worden geclassificeerd op basis van de bandbreedte van het schakelnetwerk. Bijvoorbeeld in een architectuur waarin paren van een processor en een geheugenmodule (processorelement) zijn gekoppeld aan een netwerk met topologieën rooster, heeft elke processor hetzelfde aantal netwerkverbindingen, ongeacht het aantal processors in de computer. De totale bandbreedte van zo'n netwerk groeit lineair met het aantal processors. Aan de andere kant, in een architectuur met een netwerk met topologieën hyperkubus, het aantal processor-naar-netwerkverbindingen is een logaritmische functie van het aantal processors, en de netwerkbandbreedte groeit sneller dan lineair met het aantal processors. in topologie kliek elke processor moet zijn verbonden met alle andere processors.


2D netwerk rooster (torus)

2D netwerk torus


Netwerk met topologie kliek

Nationaal Centrum voor Supercomputing-toepassingen (Universiteit van Illinois, Urbana-Champaign)

MPI: de interface voor het doorgeven van berichten

De naam "berichteninterface" spreekt voor zich. Het is een goed gestandaardiseerd mechanisme voor het bouwen van parallelle programma's in een berichtenmodel. Er zijn standaard MPI "bindingen" voor C/C++, Fortran 77/90. Er zijn gratis en commerciële implementaties voor bijna alle supercomputerplatforms, evenals UNIX- en Windows NT-werkstationnetwerken. Momenteel is MPI de meest gebruikte en dynamisch ontwikkelende interface in zijn klasse.

Beowulf - Linux-clusters

Mikhail Kuzminsky

"Open systemen"

Aan het begin van het millennium hebben we alle kans om getuige te zijn van de monopolisering van de computerindustrie, die zowel microprocessors als besturingssystemen kan omvatten. We hebben het natuurlijk over microprocessors van Intel (Merced dreigt processors van de RISC-architectuur te verdringen) en OS van Microsoft.

In beide gevallen wordt het succes grotendeels bepaald door de kracht van de marketingmachine, en niet alleen door de "consumenten"-eigenschappen van de producten. Naar mijn mening heeft de computergemeenschap de omvang van de mogelijke gevolgen nog niet ingezien.

Sommige deskundigen hebben de potentiële monopolisering van de computermarkt vergeleken met de monopoliedominantie van IBM in de jaren zeventig, zowel in mainframes als in besturingssystemen. Ik werk al heel lang met deze techniek en naarmate het Unix-besturingssysteem zich in ons land verspreidt, realiseer ik me steeds meer de vele voordelen van het IBM MVS-besturingssysteem. Niettemin deel ik de algemene opvatting dat een dergelijk monopolie niet heeft bijgedragen tot een versnelling van de vooruitgang.

Westerse universiteiten, die ooit als een van de eersten overgingen op Unix, vertrouwen nog steeds op dit systeem in hun veelbelovende ontwikkelingen, en Linux wordt steeds vaker gekozen als platform. Dit artikel is gewijd aan een van de leerzame academische ontwikkelingen.

Linux als publiek fenomeen

We zijn niet langer verbaasd dat Linux een prominent fenomeen is geworden in het computerleven. Gecombineerd met de rijkste set gratis software GNU, is dit besturingssysteem extreem populair geworden bij niet-commerciële gebruikers in binnen- en buitenland. Zijn populariteit groeit. Linux-versies bestaan ​​niet alleen voor het Intel x86-platform, maar ook voor andere processorarchitecturen, waaronder DEC Alрha, en worden veel gebruikt voor internettoepassingen en voor het uitvoeren van computertaken. Kortom, Linux is een soort "populair besturingssysteem" geworden. Er kan echter niet worden gezegd dat Linux geen zwakke punten heeft; een daarvan is onvoldoende ondersteuning voor SMP-architecturen.

De goedkoopste manier om computerbronnen, inclusief rekenkracht, te vergroten, is door een cluster te bouwen. Massaal parallelle supercomputers met fysiek en logisch verdeeld random access memory kunnen ook als een soort clusters worden beschouwd. Het meest opvallende voorbeeld van een dergelijke architectuur is de beroemde IBM SP2-computer.

De hele vraag is wat computers (knooppunten) in een cluster verbindt. Voor dit doel gebruiken "echte" supercomputers gespecialiseerde en daarom dure hardware die is ontworpen om een ​​hoge doorvoer te bieden. Clusters gebruiken meestal de gebruikelijke netwerkstandaarden - Ethernet, FDDI, ATM of HiPPI.

Clustertechnologieën die het Linux-besturingssysteem gebruiken, begonnen zich enkele jaren geleden te ontwikkelen en kwamen lang voor de komst van Wolfpack voor Windows NT beschikbaar. Zo ontstond het Beowulf-project midden jaren 90.

Held van een episch gedicht

"Beowulf" is een Scandinavisch epos dat vertelt over de gebeurtenissen van de 7e - eerste derde van de 8e eeuw, waarin de held met dezelfde naam, die zichzelf verheerlijkte in veldslagen, een deelnemer is. Het is niet bekend of de auteurs van het project hebben nagedacht over tegen wie Beowulf nu zal vechten (waarschijnlijk met Windows NT?), Maar het heroïsche beeld maakte het mogelijk om een ​​tiental organisaties (voornamelijk universiteiten) in de Verenigde Staten te verenigen in een consortium. Het kan niet gezegd worden dat supercomputercentra domineren onder de projectdeelnemers, maar de Loki- en Megalon-clusters zijn geïnstalleerd in wereldberoemde high-performance computercentra als Los Alamos en het Sandia-laboratorium van het Amerikaanse ministerie van Energie; de leidende ontwikkelaars van het project zijn NASA-specialisten. Over het algemeen krijgen alle clusters die door projectdeelnemers zijn gemaakt, zonder uitzondering grote namen.

Naast Beowulf is er nog een close cluster-technologie bekend - NU. In NOW bevatten pc's meestal informatie over zichzelf en de taken die eraan zijn toegewezen, en het is de verantwoordelijkheid van de systeembeheerder van zo'n cluster om deze informatie te genereren. Beowulf-clusters zijn in dit opzicht eenvoudiger (dat wil zeggen, vanuit het oogpunt van een systeembeheerder): daar zijn individuele knooppunten niet op de hoogte van de clusterconfiguratie. Slechts één speciaal knooppunt bevat configuratie-informatie; en alleen hij heeft een netwerkverbinding met de buitenwereld. Alle andere clusterknooppunten zijn verbonden door een lokaal netwerk en ze zijn alleen verbonden met de buitenwereld door een "dunne brug" vanaf het besturingsknooppunt.

De knooppunten in de Beowulf-technologie zijn pc-moederborden. Doorgaans gebruiken de knooppunten ook lokale harde schijven. Er worden standaard typen lokale netwerken gebruikt om knooppunten te verbinden. We zullen dit probleem hieronder bespreken, eerst zullen we stilstaan ​​​​bij de software.

Het is bij Beowulf gebaseerd op het standaard in de handel verkrijgbare Linux-besturingssysteem, dat op cd-rom kan worden gekocht. In het begin richtten de meeste projectdeelnemers zich op cd's die door Slackware werden uitgegeven, maar nu heeft de RedHat-versie de voorkeur.

In het gebruikelijke Linux-besturingssysteem kunt u de bekende manier van parallellisatie installeren in het berichtenmodel (LAM MPI 6.1, PVM 3.3.11 en andere). U kunt ook gebruikmaken van de p-threads-standaard en de standaard interprocessor-communicatietools die in elk Unix System V zijn opgenomen. Het Beowulf-project bracht ook belangrijke aanvullende ontwikkelingen door.

Allereerst moet de revisie van de Linux 2.0-kernel worden opgemerkt. Tijdens het bouwen van de clusters bleek dat de standaard Linux-stuurprogramma's voor netwerkapparaten erg ineffectief zijn. Daarom werden nieuwe stuurprogramma's ontwikkeld (de auteur van de meeste ontwikkelingen is Donald Becker), voornamelijk voor Fast Ethernet- en Gigabit Ethernet-netwerken, en werd de mogelijkheid geboden om meerdere parallelle netwerkverbindingen tussen pc's logisch te combineren, waardoor het vanaf goedkope lokale netwerken met meer dan bescheiden snelheid, bouw een netwerk met een hoge totale bandbreedte.

Zoals in elk cluster heeft elk knooppunt zijn eigen kopie van de OS-kernel. De verbeteringen zorgden voor de uniciteit van proces-ID's binnen het hele cluster, in plaats van individuele knooppunten, evenals "levering op afstand" van Linux-signalen.

Bovendien moeten de functies van netwerkopstarten (netbooting) worden opgemerkt bij het werken met moederborden Intel PR 440FX, en ze kunnen worden gebruikt om te werken met andere moederborden die zijn uitgerust met AMI BIOS.

Zeer interessante mogelijkheden worden geboden door de mechanismen van virtueel netwerkgeheugen (Network Virtual Memory) of gedeeld gedistribueerd geheugen (DSM) (Distributed Shared Memory), waarmee u voor een proces een zekere "illusie" van gedeeld geheugen van knooppunten kunt creëren.

Netwerk is een delicate aangelegenheid

Omdat parallellisatie van supercomputerapplicaties in het algemeen, en clusterapplicaties in het bijzonder, een hoge doorvoer en lage latentie vereist voor het uitwisselen van berichten tussen knooppunten, worden netwerkkenmerken parameters die de clusterprestaties bepalen. De keuze van microprocessors voor de knooppunten ligt voor de hand - dit zijn standaardprocessors van Intel; maar met de clustertopologie, het type netwerk en netwerkkaarten kun je experimenteren. Het is op dit gebied dat het belangrijkste onderzoek is uitgevoerd.

Bij het analyseren van de verschillende pc-netwerkkaarten die momenteel op de markt zijn, werd speciale aandacht besteed aan kenmerken als efficiënte multicasting-ondersteuning, ondersteuning voor grote pakketgroottes, enz. De belangrijkste soorten lokale netwerken die bij het Beowulf-project betrokken zijn, zijn Gigabit Ethernet, Fast Ethernet en 100 -VG AnyLAN. (Ook de mogelijkheden van ATM-technologie werden actief verkend, maar voor zover de auteur weet, gebeurde dit buiten de scope van dit project.)

Zelf een supercomputer bouwen

Na analyse van de resultaten van de werkzaamheden die zijn uitgevoerd in het kader van het Beowulf-project, kan men tot de volgende conclusie komen: de gevonden oplossingen stellen u in staat zelfstandig een high-performance cluster samen te stellen op basis van standaard pc-componenten en conventionele software te gebruiken. Onder de grootste gevallen kan men niet anders dan een cluster met 50 knooppunten in CESDIS opmerken, dat 40 gegevensverwerkingsknooppunten omvat (gebaseerd op Pentium Pro-kaarten met één en twee processors) en 10 schalingsknooppunten (Pentium Pro met twee processors / 166 MHz-kaart). De verhouding kosten/piekprestaties in zo'n cluster blijkt erg goed te zijn. De vraag is hoe efficiënt het mogelijk is om applicaties te parallelliseren - met andere woorden, wat zal de echte zijn, niet de topprestaties. De projectdeelnemers zijn nu bezig om dit probleem op te lossen.

Opgemerkt moet worden dat de constructie van clusters van gewone pc's tegenwoordig behoorlijk in de mode is in de wetenschappelijke gemeenschap. Sommige academische instellingen in ons land zijn ook van plan om dergelijke clusters op te richten.

Wanneer computers met verschillende capaciteiten of verschillende architecturen worden gecombineerd tot een cluster, spreekt men van heterogene (heterogene) clusters. Clusterknooppunten kunnen tegelijkertijd worden gebruikt als gebruikerswerkstations. In het geval dat dit niet nodig is, kunnen de nodes aanzienlijk worden verlicht en/of in een rack worden geplaatst.

Standaardbesturingssystemen voor werkstations worden meestal vrijelijk gedistribueerd - Linux / FreeBSD, samen met speciale tools voor parallelle programmering en taakverdeling. Programmering, in de regel, in het kader van het model voor het doorgeven van berichten (meestal - MPI). Het wordt in meer detail besproken in de volgende sectie.

De geschiedenis van de ontwikkeling van clusterarchitectuur.

DEC was de eerste die het concept van een clustersysteem in 1983 aankondigde en definieerde het als een groep onderling verbonden computers die een enkele informatieverwerkingseenheid vertegenwoordigen.

Een van de eerste projecten die een naam gaven aan een hele klasse van parallelle systemen - Beowulf-clusters - ontstond in het Goddard Space Flight Center van NASA om het Earth and Space Sciences-project te ondersteunen met de nodige computerbronnen. Het Beowulf-project begon in de zomer van 1994 en al snel werd een cluster met 16 processors op basis van Intel 486DX4 / 100 MHz-processors geassembleerd. Elk knooppunt had 16 MB RAM en 3 Ethernet-netwerkadapters. Om in deze configuratie te werken zijn er speciale drivers ontwikkeld die het verkeer tussen beschikbare netwerkkaarten verdelen.

Later werd de HIVE - zeer parallelle Integrated Virtual Environment-cluster geassembleerd in GSFC, waarvan de structuur wordt getoond in Fig. 2. Dit cluster bestaat uit vier subclusters E, B, G en DL, met 332 processors en twee dedicated hosts. Op alle knooppunten in dit cluster wordt RedHat Linux uitgevoerd.

In 1998 bouwden astrofysicus Michael Warren en andere wetenschappers van de theoretische astrofysica-groep de supercomputer Avalon in Los Alamos National Laboratory, een Linux-cluster gebaseerd op de Alpha 21164A-processors met een kloksnelheid van 533 MHz. Aanvankelijk bestond de Avalon uit 68 processors, daarna werd het uitgebreid tot 140. Elke node bevat 256 MB RAM, een 3 GB harde schijf en een Fast Ethernet netwerkadapter. De totale kosten van het Avalon-project waren 313 duizend dollar, en dankzij de prestaties die het liet zien op de LINPACK-test - 47.7 GFLOPS, kon het de 114e plaats innemen in de 12e editie van de Top500-lijst naast het 152-processorsysteem IBM RS / 6000 SP. In hetzelfde 1998, op de meest prestigieuze conferentie op het gebied van high performance computing Supercomputing'98, presenteerden de makers van Avalon het rapport "Avalon: An Alpha / Linux Cluster Achieves 10 Gflops for $ 150k", dat de eerste prijs ontving in de nominatie "de beste prijs / prestatieverhouding."

In april van dit jaar is in het kader van het AC3-project aan de Cornell University for Biomedical Research een Velocity+-cluster geïnstalleerd, bestaande uit 64 nodes met elk twee Pentium III / 733 MHz-processors en 2 GB RAM en met een totale schijf geheugen van 27 GB. De nodes draaien onder Windows 2000 en zijn verbonden via het Giganet cLAN-netwerk.

Het project Lots of Boxes on Shelfes werd in april 1997 geïmplementeerd bij de Amerikaanse National Institutes of Health en is interessant in het gebruik van Gigabit Ethernet-technologie als communicatiemedium. Aanvankelijk bestond het cluster uit 47 nodes met op elk knooppunt twee Pentium Pro/200 MHz-processors, 128 MB RAM en een schijf van 1,2 GB. In 1998 werd geïmplementeerd

de volgende fase van het project was LoBoS2, waarbij de nodes werden geconverteerd naar desktops met behoud van de clustering. LoBoS2 bestaat nu uit 100 compute nodes met daarin twee Pentium II/450 MHz processors, 256 MB RAM en 9 GB schijfgeheugen. Naast het cluster zijn 4 besturingscomputers aangesloten met een gemeenschappelijke RAID-array met een capaciteit van 1,2 TB.

Een van de nieuwste clusterontwikkelingen is de AMD Presto III-supercomputer, een Beowulf-cluster van 78 Athlon-processors. De computer is geïnstalleerd bij het Tokyo Institute of Technology. Tot op heden heeft AMD 8 supercomputers gebouwd in Beowulf-clusters met Linux.

IBM-clusters

RS / 6000

IBM biedt verschillende soorten op RS/6000 gebaseerde losjes gekoppelde systemen die zijn geclusterd en draaien op High-Availability Clastered Multiprocessor/6000 (HACMP/6000)-software.

Clusterknooppunten werken parallel en delen toegang tot logische en fysieke bronnen met behulp van de mogelijkheden van de vergrendelingsmanager die is opgenomen in HACMP / 6000.

Sinds de aankondiging in 1991 heeft het HACMP / 6000-product een continue ontwikkeling doorgemaakt. Het omvatte een parallelle resourcemanager, een gedistribueerde vergrendelingsmanager en een parallelle logische volumemanager, waarbij de laatste de taakverdeling over het hele cluster bood. Het maximum aantal knoop punten in een cluster is verhoogd naar acht. Momenteel heeft het cluster knooppunten met symmetrische multiprocessing, gebouwd met behulp van de Data Crossbar Switch-technologie, die zorgt voor een lineaire prestatieverbetering met een toename van het aantal processors.

RS/6000-clusters zijn gebaseerd op Ethernet, Token Ring of FDDI LAN's en kunnen op verschillende manieren worden geconfigureerd om de betrouwbaarheid te vergroten:

  • Hot standby of eenvoudige failover. In deze modus voert het actieve knooppunt toepassingstaken uit en het stand-by-knooppunt kan niet-kritieke taken uitvoeren die kunnen worden gestopt als het nodig is om te schakelen wanneer het actieve knooppunt uitvalt.
  • Symmetrische reserve. Vergelijkbaar met een hot standby, maar de rollen van de master en standby staan ​​niet vast.
  • Wederzijdse pick-up of load sharing-modus. In deze modus kan elk knooppunt in het cluster taken oppakken die op elk ander knooppunt in het cluster worden uitgevoerd.

IBM SP2

IBM SP2 voert de lijst aan van de grootste TOP500-supercomputers wat betreft het aantal installaties (141 installaties, en in totaal zijn er 8.275 van dergelijke computers met in totaal meer dan 86 duizend nodes in de wereld. Deze supercomputers zijn gebaseerd op de architectuur- gebaseerde clusterbenadering met behulp van een krachtige centrale switch IBM past deze benadering al vele jaren toe.

Algemene architectuur SP2

Een overzicht van de SP2-architectuur wordt gegeven in Fig. 1. Het belangrijkste kenmerk van de architectuur is het gebruik van een hogesnelheidsschakelaar met lage latentie om knooppunten met elkaar te verbinden. De ervaring heeft geleerd dat dit ogenschijnlijk uiterst eenvoudige schema uiterst flexibel is gebleken. Aanvankelijk waren SP2-knooppunten met één processor, daarna verschenen er SMP-knooppunten.

Eigenlijk zijn alle details verborgen in de structuur van de knooppunten. Bovendien zijn de knooppunten van verschillende typen, en zelfs de processors in aangrenzende knooppunten kunnen verschillend zijn. Dit zorgt ervoor

grotere flexibiliteit bij de keuze van configuraties. Het totale aantal knooppunten in een computersysteem kan 512 bereiken. SP2-knooppunten zijn eigenlijk onafhankelijke computers en hun directe tegenhangers worden door IBM onder hun eigen naam verkocht. Het meest opvallende voorbeeld hiervan is de RS / 6000 44P-270 SMP-server met vier processors en Power3-II-microprocessors, die zelf kan worden geclassificeerd als een middenklassecomputer of zelfs een mini-supercomputer.

De microprocessors die in de SP2-knooppunten zijn geïnstalleerd, evolueerden langs twee architecturale lijnen: Power - Power2 - Power3 - Power3-II en langs de PowerPC-lijn tot het 604e-model met een klokfrequentie van 332 MHz.

Traditioneel voor SP2 zijn Thin Node en Wide Node, die een SMP-architectuur hebben. Ze kunnen zowel PowerPC 604e (van twee tot vier processors) als Power3-II (tot vier) worden geïnstalleerd. De capaciteit van het hoofdgeheugen van de nodes varieert van 256 MB tot 3 GB (bij gebruik van de Power3-II - tot 8 GB). De belangrijkste verschillen tussen dunne en brede knooppunten hebben betrekking op het I/O-subsysteem. Wide nodes zijn ontworpen voor toepassingen die krachtigere I/O-mogelijkheden vereisen, met tien PCI-slots (inclusief drie 64-bits) versus twee in thin nodes. Dienovereenkomstig is het aantal montagevakken voor schijfapparaten in brede knooppunten groter.

De snelheid van de switch wordt gekenmerkt door lage latencies: 1,2 ms (tot 2 ms met meer dan 80 nodes). Dit is een orde van grootte beter dan wat je kunt krijgen in moderne Beowulf Linux-clusters. Piekdoorvoer per poort: 150 MB/s enkele reis (d.w.z. 300 MB/s full-duplex). Switch-adapters in SP2-knooppunten hebben dezelfde bandbreedte. IBM noemt ook uitstekende resultaten op het gebied van latentie en doorvoer.

De krachtigste SP2-knooppunten zijn High Nodes. Een high node is een complex bestaande uit een computing node met maximaal zes aangesloten I/O-uitbreidingsapparaten. Ook deze node heeft een SMP-architectuur en bevat tot 8 Power3-processors met een kloksnelheid van 222 of 375 MHz.

Daarnaast bevat dit type node een I/O-kaart die ook op de systeemkaart is aangesloten. Het I / O-bord bevat twee symmetrische SABRE-logische blokken, waarmee gegevens worden verzonden naar externe apparaten, zoals:

zoals schijven en telecommunicatieapparatuur. Het I/O-bord heeft vier 64-bit PCI-slots en één 32-bit (33 MHz) slot, en geïntegreerde UltraSCSI, 10/100 Mbps Ethernet, drie seriële en één parallelle controllers.

Met de komst van high nodes en Power3-II / 375 MHz microprocessors op de Linpack parallelle benchmarks, behaalden IBM SP2-systemen 723,4 GFLOPS-prestaties. Dit resultaat werd bereikt met 176 nodes (704 processors). Aangezien er maximaal 512 knooppunten kunnen worden geïnstalleerd, toont dit resultaat aan dat de in massa geproduceerde IBM SP2 potentieel dicht bij de 1 TFLOPS-markering ligt.

Sun Microsystems-clusteroplossingen

Sun Microsystems biedt clusteroplossingen op basis van zijn SPARCclaster PDB Server-product, dat als nodes SPARCserver 1000 en SPARCcenter 2000 multiprocessor SMP-servers gebruikt. Een maximum van SPARCserver 1000 kan maximaal acht processors hebben en SPARCcenter 2000 kan maximaal 20 SuperSPARC-processors hebben. Het basispakket omvat de volgende componenten: twee clusternodes op basis van SPARCserver 1000 / 1000E of SPARCcenter 2000 / 2000E, twee disk-arrays SPARCstorage Array en een clusterkit met gedupliceerde hardware voor communicatie, clusterbeheerconsole Claster Management Console, SPARCclaster PDB-software, en Cluster-servicepack.

Om hoge prestaties en beschikbaarheid van communicatie te garanderen, handhaaft het cluster volledige redundantie van alle gegevensbackbones. De clusternodes zijn verbonden via SunFastEthernet-links met een bandbreedte van 100 Mbps. Om schijfsubsystemen met elkaar te verbinden, wordt een glasvezel Fibre Channel-interface met een bandbreedte van 25 Mbit/s gebruikt, waarmee schijven en nodes op een afstand van maximaal 2 km van elkaar kunnen worden verwijderd. Alle communicatie tussen knooppunten, knooppunten en schijfsubsystemen wordt op hardwareniveau gedupliceerd. Clusterhardware, -software en netwerken zorgen ervoor dat er geen ruimte in het systeem is waar een enkele storing of storing het hele systeem onbruikbaar zou maken.

Universitaire projecten

Een interessante ontwikkeling van de University of Kentucky is het KLAT2-cluster (Kentucky Linux Athlon Testbed 2). Het KLAT2-systeem bestaat uit 64 schijfloze nodes met AMD Athlon / 700 MHz-processors en elk 128 MB RAM. Software, compilers en wiskundige bibliotheken (SCALAPACK, BLACS en ATLAS) zijn verfijnd om 3DNow! effectief te gebruiken! AMD-processors om de prestaties te verbeteren. Ook de gebruikte netwerkoplossing, het "Flat Neighbourghood Network" (FNN) genoemd, is van groot belang. Elk knooppunt heeft vier Smartlink Fast Ethernet NIC's en de knooppunten zijn verbonden met negen 32-poorts switches. Bovendien is er voor elke twee knooppunten altijd een directe verbinding via een van de schakelaars, maar het is niet nodig om alle knooppunten via een enkele schakelaar te verbinden. Het optimaliseren van software voor AMD-architectuur en FNN-topologie leverde een recordprijs/prestatieverhouding op van $ 650 per GFLOPS.

Het idee om een ​​cluster op te delen in secties werd interessant belichaamd in het Chiba City-project, geïmplementeerd in het Argonne National Laboratory. Het hoofdgedeelte bevat 256 rekenknooppunten, elk

waarvan er twee Pentium III / 500 MHz-processors zijn, 512 MB RAM en een lokale schijf met een capaciteit van 9 GB. Naast het computergedeelte omvat het systeem een ​​visualisatiegedeelte (32 IBM Intellistation-pc's met Matrox Millenium G400 grafische kaarten, 512 MB RAM en 300 GB schijven), een gegevensopslaggedeelte (8 IBM Netfinity 7000-servers met Xeon / 500 MHz-processors en 300 GB) en besturingspartitie (12 IBM Netfinity 500-computers). Ze zijn allemaal verbonden door het Myrinet-netwerk, dat wordt gebruikt om parallelle toepassingen te ondersteunen, evenals Gigabit Ethernet- en Fast Ethernet-netwerken voor beheer- en servicedoeleinden. Alle secties zijn onderverdeeld in "steden" (stad) met 32 ​​computers. Elk van hen heeft zijn eigen "burgemeester" die lokaal zijn eigen "stad" bedient, de belasting van het servicenetwerk vermindert en snelle toegang biedt tot lokale bronnen.

Clusterprojecten in Rusland

In Rusland is er altijd een grote behoefte geweest aan krachtige computerbronnen en de relatief lage kosten van clusterprojecten hebben een serieuze impuls gegeven aan het wijdverbreide gebruik van dergelijke oplossingen in ons land. Een van de eersten die verscheen was het "Parity"-cluster, geassembleerd in IVViBD en bestaande uit acht Pentium II-processors die zijn verbonden door het Myrinet-netwerk. In 1999 werd een clusteroplossing op basis van het SCI-netwerk getest bij NICEVT, dat in feite de pionier was van het gebruik van SCI-technologie om parallelle systemen te bouwen in Rusland.

Een high-performance cluster op basis van het SCI-communicatienetwerk, geïnstalleerd in het Research Computing Center van de Staatsuniversiteit van Moskou. Het RCC-cluster omvat 12 Excimer-servers met dubbele processor op basis van Intel Pentium III / 500 MHz, met in totaal 24 processors met een totale piekprestatie van 12 miljard bewerkingen per seconde. De totale kosten van het systeem bedragen ongeveer 40 duizend dollar, of ongeveer 3,33 duizend voor 1 GFLOPS.

De rekenknooppunten van het cluster zijn verbonden door unidirectionele SCI-netwerkkanalen in een tweedimensionale 3x4 torus en zijn tegelijkertijd verbonden met de centrale server via een extra Fast Ethernet-netwerk en een 3Com Superstack-switch. Het SCI-netwerk vormt de kern van het cluster, waardoor dit systeem een ​​unieke computerfaciliteit van supercomputerklasse is die is gericht op een breed scala aan taken. De maximale gegevensuitwisselingssnelheid via het SCI-netwerk in gebruikerstoepassingen is meer dan 80 MB / s en de latentietijd is ongeveer 5,6 μs. Bij het bouwen van dit rekencluster is gebruik gemaakt van een geïntegreerde Wulfkit-oplossing ontwikkeld door Dolphin Interconnect Solutions en Scali Computer (Noorwegen).

Het belangrijkste hulpmiddel voor parallel programmeren op een cluster is MPI (Message Passing Interface) ScaMPI 1.9.1. Op de LINPACK-test, bij het oplossen van een systeem van lineaire vergelijkingen met een matrix van 16000x16000, was de daadwerkelijk verkregen prestatie meer dan 5,7 GFLOPS. Bij tests van het NPB-pakket zijn de prestaties van het cluster vergelijkbaar, en overtreffen ze soms zelfs de prestaties van de supercomputers van de Cray T3E-familie met hetzelfde aantal processors.

Het belangrijkste toepassingsgebied van het computercluster van het Research Computing Center van de Staatsuniversiteit van Moskou is het ondersteunen van fundamenteel wetenschappelijk onderzoek en het onderwijsproces.

Naast andere interessante projecten moet worden gewezen op de oplossing die is geïmplementeerd aan de St. Petersburg University op basis van Fast Ethernet-technologie: de geassembleerde clusters kunnen zowel als volwaardige onafhankelijke klaslokalen worden gebruikt als als een enkele computereenheid die een enkel probleem oplost. In het Samara Wetenschappelijk Centrum

volgde het pad van het creëren van een heterogeen computercluster, dat computers omvat op basis van Alpha- en Pentium III-processors. Een installatie op basis van Alpha-processors en een Myrinet-netwerk zal worden geïnstalleerd aan de St. Petersburg Technical University zonder lokale schijven op de computerknooppunten te gebruiken. De Ufa State Aviation Technical University ontwerpt een cluster op basis van twaalf Alpha-stations, Fast Ethernet-netwerk en Linux OS.

Clustertechnologieën zijn een logische voortzetting geworden van de ontwikkeling van ideeën die inherent zijn aan de architectuur van MPP-systemen. Als de processormodule in het MPP-systeem een ​​compleet computersysteem is, dan stelt de volgende stap zichzelf voor: waarom geen gewone, in de handel verkrijgbare computers gebruiken als dergelijke rekenknooppunten. De ontwikkeling van communicatietechnologieën, namelijk de opkomst van snelle netwerkapparatuur en speciale software, zoals het MPI-systeem, dat een mechanisme voor berichtoverdracht implementeert via standaard netwerkprotocollen, maakten clustertechnologieën algemeen beschikbaar. Tegenwoordig is het niet moeilijk om een ​​klein clustersysteem te creëren door de rekenkracht van computers te combineren in een apart laboratorium of klaslokaal.

Een aantrekkelijk kenmerk van clustertechnologieën is dat ze het mogelijk maken om, om de vereiste prestaties te bereiken, computers van verschillende typen te combineren tot uniforme computersystemen, van personal computers tot krachtige supercomputers. Clustertechnologieën zijn wijdverbreid als middel om systemen van supercomputerklasse te creëren uit componenten van massaproductie, wat de kosten van een computersysteem aanzienlijk verlaagt. Met name het COCOA-project was een van de eerste die werd geïmplementeerd, waarbij een systeem werd gecreëerd met een prestatie gelijk aan een 48-processor Cray T3D ter waarde van enkele miljoenen US dollars op basis van 25 dual-processor personal computers met een totaal kosten van ongeveer $ 100.000.

Het is natuurlijk niet nodig om te praten over de volledige gelijkwaardigheid van deze systemen. Zoals opgemerkt in de vorige sectie, zijn de prestaties van gedistribueerde geheugensystemen sterk afhankelijk van de prestaties van de communicatieomgeving. De communicatieomgeving kan vrij volledig worden gekarakteriseerd door twee parameters: latentie- de vertragingstijd bij het verzenden van het bericht, en doorvoer- de snelheid van informatieoverdracht. Dus voor een Cray T3D-computer zijn deze parameters respectievelijk 1 s en 480 Mb/s, en voor een cluster waarin een Fast Ethernet-netwerk als communicatiemedium wordt gebruikt, 100 s en 10 Mb/s. Dit verklaart gedeeltelijk de zeer hoge kosten van supercomputers. Met parameters als het cluster in kwestie, zijn er niet veel taken die effectief kunnen worden opgelost op een voldoende groot aantal processors.

In het kort, TROS is een verbonden set volwaardige computers die als een enkele computerbron worden gebruikt. De voordelen van een clustersysteem ten opzichte van een reeks onafhankelijke computers zijn duidelijk. Ten eerste zijn er veel verzendsystemen voor batchverwerking van taken ontwikkeld, waardoor u een taak voor verwerking naar het cluster als geheel kunt sturen, en niet naar een individuele computer. Deze dispatchingsystemen verdelen taken automatisch over vrije computerknooppunten of bufferen ze als er geen zijn, waardoor computers gelijkmatiger en efficiënter kunnen worden geladen. Ten tweede wordt het mogelijk om de computerbronnen van meerdere computers te delen om één probleem op te lossen.


Clusters worden meestal gemaakt met behulp van eenvoudige pc's met één processor of SMP-servers met twee of vier processors. Tegelijkertijd worden er geen beperkingen opgelegd aan de samenstelling en architectuur van de knooppunten. Elk van de knooppunten kan onder zijn eigen besturingssysteem werken. De meest gebruikte standaard besturingssystemen: Linux, FreeBSD, Solaris, Tru64 Unix, Windows NT. In gevallen waarin de knooppunten van het cluster heterogeen zijn, spreken ze van heterogeen clusters.

Bij het maken van clusters zijn twee benaderingen te onderscheiden. De eerste benadering wordt gebruikt bij het maken van kleine clustersystemen. Het cluster combineert volledig functionele computers die als zelfstandige eenheden blijven werken, bijvoorbeeld klaslokaalcomputers of laboratoriumwerkstations. De tweede benadering wordt gebruikt in gevallen waarin doelbewust een krachtige computerbron wordt gecreëerd. Vervolgens worden de systeemeenheden van computers compact in speciale rekken geplaatst en worden een of meer volledig functionele computers, hostcomputers genoemd, toegewezen om het systeem te beheren en taken uit te voeren. In dit geval is het niet nodig om computers van computerknooppunten te voorzien van grafische kaarten, monitoren, schijfstations en andere randapparatuur, wat de kosten van het systeem aanzienlijk verlaagt.

Er zijn veel technologieën ontwikkeld om computers in een cluster te verbinden. De meest gebruikte technologie op dit moment is Fast Ethernet. Dit komt door het gebruiksgemak en de lage kosten van communicatieapparatuur. Dit moet echter worden betaald met de bewust onvoldoende wisselkoers. Deze apparatuur zorgt namelijk voor een maximale wisselkoers tussen nodes van 10 Mb/s, terwijl de wisselkoers met RAM 250 Mb/s en hoger is. De ontwikkelaars van het subroutinepakket ScaLAPACK, bedoeld voor het oplossen van lineaire algebraproblemen op multiprocessorsystemen, waarin een groot deel van de communicatiebewerkingen plaatsvindt, formuleren de volgende eis voor een multiprocessorsysteem: 10 piekprestaties van een rekenknooppunt, gemeten in Mflops "http ://rsusu1.rnd.runnet.ru/tutor/method/m1/liter1.html -. Dus als computers van de Pentium III-klasse van 500 MHz (piekprestaties van 500 Mflops) worden gebruikt als rekenknooppunten, biedt Fast Ethernet-apparatuur slechts 1/5 van de vereiste snelheid. Deze situatie kan gedeeltelijk worden gecorrigeerd door de overgang naar Gigabit Ethernet-technologieën.

Een aantal firma's biedt gespecialiseerde clusteroplossingen aan op basis van snellere netwerken, zoals SCI van Scali Computer (~ 100 Mb/sec) en Mirynet (~ 120 Mb/sec). Fabrikanten van high-performance workstations (SUN, HP, Silicon Graphics) ondersteunden ook actief clustertechnologieën.