Computercluster: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Appi~nlwiki (overleg | bijdragen)
Geen bewerkingssamenvatting
Danielm~nlwiki (overleg | bijdragen)
Uitgebreid
Regel 4:
 
===Technische aspecten===
Bij een cluster is het vrij gebruikelijk dat niet alle deelnemende computers tegelijkertijd opgestart worden. ErEen reden hiervoor is bijvoorbeeld en piek in het elektriciteitsgebruik als de condensatoren van de voeding van de server vol lopen; als alle servers tegelijk gestart worden kunnen de stoppen springen. Bij sommige clusterarchitecturen bestaat hierbij een kans dat twee groepen onafhankelijk van elkaar besluiten de cluster te vormen, er kunnen dan twee "halve" clusters ontstaan in plaats van één hele. Bij VMS is dit opgelost door een "quorumparameter": een cluster kan alleen gevormd worden als de deelnemende computers samen de helft plus één van de stemmen inbrengen.
 
==Alternatieven==
Een veel goedkopere, maar niet geheel gelijkwaardige variant is [[distributed computing]], waarbij de rekenkracht over (min of meer toevallig) beschikbare computers in een netwerk wordt verdeeld, en waarbij soms zelfs uitsluitend de [[idle time]] van pc's die een [[client]]programma draaien gebruikt wordt. Een bekend voorbeeld hiervan is het project [[SETI|SETI@home]].
 
== Netwerk ==
 
Parallelle applicaties communiceren zeer veel. Tijdens het verzenden van een bericht zijn zowel de zendende machine als de ontvangende machine aan het wachten en dit is zonde van de rekentijd. Een gewoon [[ethernet]] is in veel gevallen dan ook volstrekt onvoldoende. In veel clusters wordt daarom een parallel netwerk (''interconnect'') gebruikt. Systemen hiervoor zijn [[Quadrics]], [[Myrinet]] en [[Infiniband]]]. Deze systemen leveren zowel hogere bandbreedte als zeer lage [[latentie|latentietijden]].
 
== Programmering ==
 
Kenmerk van een computercluster is dat een programma verdeeld over meerdere fysieke computers draait, men spreek hier veelal van gedistribueerd geheugen. Een programma moet dan ook aangepast worden om op een cluster te kunnen draaien. Er bestaan verscheidene programmeerlagen en -raamwerken voor parallelle programmering, zoals PVM, [[Message Passing Interface|MPI]], en [[Charm++]]. Deze systemen zorgen dat berichten van de ene machine naar de andere getransporteerd worden, via een bepaald netwerk. Parallelle software vereist één van deze systemen. In zeldzame gevallen kan parallelle software ook zelf voor de communicatie zorgen.
 
MPI wordt in de praktijk het meest gebruikt. MPI is een industriestandaard beheerd door het [[MPI consortium]]. De clusterfabrikant levert één of meerdere MPI-implementaties mee bij het cluster, waartegen de software gecompileerd wordt. Gebruik van software waar geen broncode van bijgeleverd wordt is dan ook problematisch op clusters, maar komt toch voor. Hiertoe wordt dan een bepaalde soft-/hardwarecombinatie gecertificeerd door de leverancier van de applicatiesoftware.
 
[[categorie:Computertechniek]]