Windows Compute Cluster 2003

Mit dem Windows Compute Cluster Server 2003, der sich aktuell in der Betaversion 2 befindet, stellt Microsoft nun eine Lösung für das High Performance Computing vor. Darunter versteht man den Einsatz von Windows-Servern in Szenarien, in denen eine besonders hohe Rechenleistung erforderlich ist.

Windows unterstützt derzeit zwei Ansätze für das Clustering. Die MSCS (Microsoft Cluster Services) sind in erster Linie eine Failover-Lösung, die sicherstellt, dass Anwendungen beim Ausfall eines Knotens auf anderen Rechnern im Clustern weiter ausgeführt werden. Das NLB (Network Load Balancing) ist dagegen ein Ansatz, mit dem die Last auf mehrere Server verteilt werden kann. In diesem Fall erfolgt die Lastverteilung aber auf der Ebene von IP-Anforderungen, die mehr oder minder gleichmäßig auf die Knoten im Cluster verteilt werden. Das ist beispielsweise bei Webserver-Farmen ein geeigneter Ansatz.

Der Windows Compute Cluster Server 2003 ist dagegen darauf ausgelegt, komplexe Berechnungen gemeinsam durch mehrere Server ausführen zu lassen. Hier geht es um das HPC (High Performance Computing), wie es beispielsweise in Entwicklungsbereichen, aber auch in der Astronomie und in vielen anderen Feldern benötigt wird. Die Zielsetzung ist dabei, mehrere Rechner zu verknüpfen und die kombinierte Rechenleistung für die Anwendung zur Verfügung zu stellen.

Die Kommunikation zwischen den einzelnen Knoten erfolgt über Nachrichten. Diese werden über ein privates Netzwerk ausgetauscht. Dafür wird die Schnittstelle MS-MPI (Microsoft Message Parsing Interface) genutzt, die zu MPICH2 kompatibel ist. MPICH2 ist ein Standard, der auch bei anderen HPC-Implementierungen zum Einsatz kommt.

Die einzelnen Knoten müssen mit 64-Bit-Prozessoren arbeiten. 32-Bit-Prozessoren werden nicht unterstützt. Auf diesen Knoten kann direkt der Windows Server 2003 in der Computer Cluster Edition installiert werden. Alternativ dazu kann die Software aber auch auf den anderen 64-Bit- Versionen von Windows (außer der Itanium-Variante) eingerichtet werden. Je nach Version können die Server bis zu vier respektive acht Prozessoren haben. Letzteres ist bei der Enterprise Edition des Windows Server 2003 der Fall. In der Regel wird man aber eher mehr Systeme mit einer geringeren Anzahl von Prozessoren koppeln, um die Kosten für solche Cluster zu minimieren.

In der Regel wird die Windows Server 2003 Compute Cluster Edition als Variante verwendet, da sie für den Einsatz in solchen Clustern optimiert ist und keinen unnötigen Overhead für den Betrieb als „normaler“ Infrastruktur-Server hat.

In einem Cluster übernimmt der so genannte Head Node die Kommunikation mit der Außenwelt, und mehrere Compute Nodeskümmern sich ausschließlich um die Berechnungen (Bild 1).

Bild 1: Die Struktur einer Umgebung mit dem Windows Server 2003 Compute Cluster Edition (Quelle: Microsoft).
Bild 1: Die Struktur einer Umgebung mit dem Windows Server 2003 Compute Cluster Edition (Quelle: Microsoft).

Der Head Node muss Teil einer Active Directory-Domäne sein. Microsoft hat eine enge Integration des Windows Compute Cluster mit anderen Komponenten vorgenommen. Daher kann beispielsweise ein Deployment zusätzlicher Knoten über die RIS (Remote Installation Services) erfolgen. Der MOM lässt sich für das Management der Infrastruktur einsetzen. Das ist zwar nicht zwingend erforderlich, in größeren Clustern empfiehlt es sich aber, um den Aufwand für das Hinzufügen neuer Knoten und das Management der vielen Knoten im Cluster zu minimieren.

Die Netzwerktopologie im Cluster ist etwas anspruchsvoller als in anderen Umgebungen. Theoretisch kann zwar mit nur einem Adapter gearbeitet werden, über den die gesamte Kommunikation läuft. In der optimalen Konfiguration sollte der Head Node aber über drei Netzwerkadapter verfügen, während die Compute Nodes jeweils zwei Adapter nutzen. Der Head Node benötigt den zusätzlichen Adapter für die Kommunikation mit den anderen Servern über das öffentliche Netzwerk. Die beiden Adapter bei den übrigen Knoten und beim Head Node werden einerseits für das Cluster-Management und andererseits für das MPI eingesetzt. Das MPI wiederum sollte zumindest über ein Gigabit-Ethernet arbeiten. Eine Alternative dazu ist die Verwendung von InfiniBand oder anderen leistungsfähigen Netzwerken.

Da bei produktiven Anwendungen in solchen Clustern eine sehr große Zahl von Nachrichten zwischen den Knoten ausgetauscht wird und jeder Engpass im Netzwerk zu einer suboptimalen Leistung des gesamten Clusters führen würde, ist ein entsprechend schnelles und verfügbares Netzwerk für den Austausch der Nachrichten zwischen den verschiedenen Rechnerknoten unverzichtbar.

Innerhalb des Clusters werden Jobs definiert, die über einen Scheduler ausgeführt werden. Die Anwendungen können in unterschiedlichen Sprachen wie C, C++, C#, Java oder Fortran entwickelt werden. Die Herausforderung liegt in der optimalen Entwicklung eigener Software oder der Nutzung vorhandener Anwendungen.

Ein HPC-Cluster wie der Windows Computer Cluster 2003 ist daher ohne die entsprechende Software wenig wert. Microsoft hat es – wenig überraschend – geschafft, eine Vielzahl von Partnerschaften in diesem Bereich zu schließen. Eine Übersicht findet sich unter

http://www.microsoft.com/windowsserver2003/ccs/partners/default.mspx

Neben vielen Herstellern von Software beispielsweise aus dem Entwicklungsbereich und dem mathematischen Umfeld gibt es auch einige spezialisierte Anbieter von Entwicklungswerkzeugen, die Lösungen für den Compute Cluster liefern. Außerdem gibt es auch spezialisierte Hardware für solche Cluster.

Aussagen darüber, wie viele Knoten in einem Cluster gekoppelt werden können, gibt es nicht. Allerdings spricht Microsoft in einem Whitepaper von einem Beispiel von 100 Systemen. Grundsätzlich ist der Ansatz darauf ausgelegt, auch sehr viele Systeme miteinander zu verbinden, wobei die Kommunikation zwischen den Knoten eine der Herausforderungen ist. Auf der anderen Seite werden die meisten produktiven Anwendungen mit nur wenigen Knoten auskommen, weil sich durch deren Kopplung bereits eine beachtliche Rechenleistung erzielen lässt.

In einer der folgenden Ausgaben von Expert’s inside Windows NT/2000 soll der Windows Computer Cluster Server 2003 näher betrachtet und die konkrete Nutzung dieses Systems besprochen werden.