WikiDer > Computercluster

Computercluster
Ein Computercluster der NASA

EIN Computercluster besteht aus einer Zahl Computers die über eine Hochgeschwindigkeitsverbindung miteinander verbunden sind (oft myrinet- oder InfinibandVerbindungen) und führen Sie eine Berechnung als ein Computer durch. Die bekannteste Variante davon ist als "Beowulf-Cluster", die unter der BetriebssystemLinux. Der Name selbst stammt wiederum vom allerersten Linux-Cluster, der benannt wurde Beowulf habe.

Der Einsatz von Computern in Clustern wurde unter anderem entwickelt von Digital Equipment Corporation, die schon in den 1980er Jahren MehrwertsteuerComputer in Clustern verbunden. Im Betriebssystem VMS Clustering-Optionen sind ab Version 5 (ca. 1987) standardmäßig eingebaut. Für den "Cluster-Interconnect" konnte eine spezielle Verbindung verwendet werden, die oft auch doppelt, aber auch normal war Ethernet, ein WANVerbindung oder sogar die SCSIBus genutzt werden könnte. Dabei stand weniger die Leistungssteigerung im Vordergrund, sondern die Erhöhung der Verfügbarkeit. Auch separate Speichersysteme ("Storage Controller") können in den Cluster eingebunden werden, so dass die Speicherung im Cluster nicht von einem einzelnen Rechner abhängig ist.

Technische Aspekte

Bei einem Cluster ist es durchaus üblich, dass nicht alle beteiligten Rechner gleichzeitig gestartet werden. Ein Grund dafür ist beispielsweise ein Anstieg des Stromverbrauchs, wenn sich die Kondensatoren des Server-Netzteils füllen; werden alle Server gleichzeitig gestartet, können die Stopps springen. Bei einigen Clusterarchitekturen besteht die Möglichkeit, dass sich zwei Gruppen unabhängig voneinander für die Bildung des Clusters entscheiden, wobei dann statt eines ganzen zwei "halbe" Cluster entstehen können. Im VMS wird dies durch einen „Quorum-Parameter“ gelöst: Ein Cluster kann nur gebildet werden, wenn die beteiligten Rechner zusammen die Hälfte plus eine der Stimmen beitragen.

Alternativen

Eine deutlich günstigere, aber nicht ganz gleichwertige Variante ist verteiltes Rechnen, bei dem die Rechenleistung (mehr oder weniger zufällig) auf verfügbare Rechner in einem Netzwerk, manchmal sogar ausschließlich, verteilt wird Wartezeit der PCs mit einem Client-Programm Drehen verwendet wird. Ein bekanntes Beispiel dafür ist das Projekt SETI@home.

Netzwerk

Parallele Anwendungen kommunizieren viel. Während des Versendens einer Nachricht warten sowohl das sendende als auch das empfangende Gerät, und dies ist eine Verschwendung von Rechenzeit. ein normaler Ethernet ist daher in vielen Fällen völlig unzureichend. In vielen Clustern ist ein paralleles Netzwerk (verbinden) benutzt. Systeme dafür sind Quadriken, myrinet und Infiniband. Diese Systeme bieten sowohl eine höhere Bandbreite als auch sehr niedrige Latenzzeiten.

Programmierung

Charakteristisch für einen Computercluster ist, dass ein Programm über mehrere physische Computer verteilt läuft, dies wird oft als verteilter Speicher bezeichnet. Ein Programm muss daher für die Ausführung auf einem Cluster angepasst werden. Für die parallele Programmierung existieren mehrere Programmierschichten und Frameworks wie PVM, MPI, und Charme . Diese Systeme stellen sicher, dass Nachrichten über ein bestimmtes Netzwerk von einem Computer zum anderen transportiert werden. Parallele Software erfordert eines dieser Systeme. In seltenen Fällen kann auch eine parallele Software die Kommunikation selbst übernehmen.

MPI wird in der Praxis am häufigsten verwendet. MPI ist ein Industriestandard, der von der MPI-Konsortium. Der Clusterhersteller liefert eine oder mehrere MPI-Implementierungen mit dem Cluster, gegen den die Software kompiliert wird. Der Einsatz von Software, für die kein Quellcode mitgeliefert wird, ist daher auf Clustern problematisch, kommt aber vor. Dazu wird eine bestimmte Software/Hardware-Kombination vom Anbieter der Anwendungssoftware zertifiziert.

Siehe auch