Hochleistungscomputing

Eine Einführung in Windows Compute Cluster Server

John Kelbley and Doug Lindsey

 

Kurz zusammengefasst:

  • Verwenden von Clustern zum Lösen komplexer Probleme
  • Allgemeine Anforderungen an Datenverarbeitungscluster
  • Einrichten eines Windows-basierten Computeclusters
  • Remoteausführung von Befehlen

Hochleistungscomputing (High Performance Computing, HPC) bezieht sich auf einen Bereich der angewandten Datenverarbeitung, bei der größtenteils die Lösung rechenintensiver Probleme im Mittelpunkt steht. Vor mehreren Jahren wurde HPC (damals allgemein als „Supercomputing“ bezeichnet) von

spezialisierten, großen und teuren Systemen beherrscht, die hauptsächlich in Forschungszentren eingesetzt wurden. Doch mit der zunehmenden Rechenleistung kleiner Systeme hat sich das Kosten-/Leistungsverhältnis geändert, und Rechenvorgänge in der Datenverarbeitung wurden auf PC-Systeme verlagert.

Viele rechenintensive Probleme können durch parallele Berechnung gelöst werden, d. h. eine bestimmte Berechnung oder ein Prozess ist unabhängig von der Ausgabe anderer Berechnungen oder Prozesse. In solchen Fällen können bei großen Problemen mehrere kleinere Systeme (Knoten) genutzt werden, die in Datenverarbeitungsclustern gruppiert sind. Dies sind nur einige Beispiele für die Arten von Anwendungen, die Rechencluster nutzen:

  • Finanzmodelle – ein Algorithmus oder eine Formel wird viele tausend Mal mit jeweils unterschiedlichen Eingaben ausgeführt.
  • Ingenieurwesen – das Simulieren von Auswirkungen in einzelnen Komponenten durch Anwenden von Strukturen auf Modelle.
  • Computeranimation – das Anwenden von Strukturen und Beleuchtungseffekten bei jedem Frame eines Films.

Datenverarbeitungscluster bieten eine preisgünstige Möglichkeit zum Lösen komplexer Probleme innerhalb kurzer Zeit. Mit Windows® Compute Cluster Server 2003 stellt Microsoft wichtige Computeclusterfunktionalität und Unterstützung bereit.

Es ist wichtig, sich vor Augen zu führen, dass sich ein Datenverarbeitungscluster von einem Verfügbarkeitscluster (Failovercluster) unterscheidet. Möglicherweise sind Sie bereits mit den Verfügbarkeitsclustern für Exchange, SQL Server® oder andere Anwendungen in Windows Server® 2003 vertraut. Diese nutzen in der Regel freigegebenen Speicher, um die Anwendungsbetriebszeit zu maximieren. Das Konzept von Datenverarbeitungsclustern besteht nicht darin, bei einem Ausfall die Rechenarbeiten eines anderen Systems fortzusetzen, sondern in der koordinierten Arbeit aller Knoten.

Allgemeine Anforderungen an einen Datenverarbeitungscluster

HPC-Ressourcen

Modernen HPC-Systemen sind einige Hauptelemente gemeinsam, die die Verarbeitung von Rechenvorgängen vereinfachen. Zunächst einmal benötigen Sie mehr als ein System. Außerdem benötigen Sie einen Planer zum Koordinieren von Aufgaben über die Knoten hinweg. Der Planer wird auf dem verantwortlichen Knoten (dem Headknoten) ausgeführt und identifiziert verfügbare Ressourcen, weist Aufgaben zu, verteilt Aufgaben und verfolgt den Gesamtstatus der Aufträge. Er ist der Ressourcenkoordinator innerhalb des Clusters von Systemen sowie der Punkt, an den Benutzer und Administratoren Aufträge zum Verarbeiten senden.

Cluster benötigen eine Möglichkeit zur Kommunikation der Knoten untereinander. Abhängig von der jeweiligen Aufgabe sind für Knoten Verbindungen von hoher Geschwindigkeit und geringer Wartezeit erforderlich, um Nachrichten untereinander zur Verarbeitungskoordination weiterzuleiten. Zumindest muss jeder Computeknoten und der Headknoten mit einem gemeinsamen Netzwerk verbunden sein.

Eine große Anzahl verbundener Systeme, die zum Lösen komplexer Probleme zusammenarbeiten, brauchen zudem eine gewisse Wartung und Versorgung. Zum Sicherstellen einer konsistenten und stabilen Umgebung sind Prozesse und Tools erforderlich, die auf das Bereitstellen, Überwachen, Verwalten und Warten von Dutzenden oder sogar Hunderten bis Tausenden von Systemen ausgerichtet sind.

Schließlich (und das ist am wichtigsten) müssen Anwendungen verfügbar sein, die die Parallelverarbeitungsfunktionen eines Datenverarbeitungsclusters ausnutzen können. Ohne Anwendungen, die Aufträge für die Verarbeitung auf mehreren Computern aufteilen können, oder Entwicklungstools, die „parallele Debugger“-Unterstützung umfassen, würde ein Cluster lediglich Ihren Computerraum aufheizen.

Windows Server-basiertes Clustering

2006 wurde Windows Server 2003 Compute Cluster Edition (CCE) und Windows Compute Cluster Server 2003 (WCCS) von Microsoft eingeführt, um die Anforderungen für eine große Auswahl an HPC-Anwendungen zu erfüllen. CCE und WCCS basieren auf demselben Windows Server 2003, mit dem Sie bereits vertraut sind. CCE ist eine Version von Windows Server 2003, die zur Verwendung mit HPC-Anwendungen lizenziert ist. WCCS ist identisch mit CCE, verfügt jedoch zusätzlich über das Microsoft® Compute Cluster Pack (CCP). Somit können Sie einen Windows Server-basierten Cluster mit denselben Tools bereitstellen, verwalten, überwachen und warten, die Sie bereits zum Verwalten vorhandener Windows Server 2003-Systeme verwenden.

Ein wichtiger Punkt ist, dass es CCE und WCCS nur in einer x64-Version gibt. Eine 32-Bit (x86)-Version dieser Produkte ist nicht erhältlich. Die Hardwareanforderungen für CCE mit WCCS sind identisch mit jenen für Windows Server 2003 Standard x64 Edition. Zusätzlich zur Unterstützung von Hochleistungshardware (64-Bit-Architektur) umfassen die Produkte Remote Direct Memory Access (RDMA)-Unterstützung für Hochleistungsverbindungen (Gigabit Ethernet, InfiniBand, Myrinet und andere).

Compute Cluster Pack

Wie bereits erwähnt, stellen Datenverarbeitungscluster einige grundlegende Anforderungen, die durch die Installation des Compute Cluster Pack erfüllt werden können. CCP ist ein eigenständiges Installationspaket, das Folgendes umfasst:

  • Integrierter Auftragsplaner
  • Messaging Passing Interface (MPI)-Unterstützung für MPICH2 nach Industriestandard
  • Clusterressourcenverwaltung und Benutzertools

Das CCP ist das wichtigste Unterscheidungsmerkmal zwischen CCE und WCCS. Vielleicht fragen Sie sich, warum diese für Datenverarbeitungscluster erforderlichen Komponenten nur in WCCS und nicht in CCE vorhanden sind. Die Antwort lautet, dass einige HPC-Lösungen verschiedene Auftragsplaner oder spezialisierte MPIs nutzen (oder keine MPI-Unterstützung erfordern) und für die Ausführung ganz einfach eine gute Plattform benötigen, also Windows Server 2003. Da CCP ein eigenständiges Paket ist, kann es auf anderen x64-Versionen von Windows Server 2003 installiert werden (CCE, Standard, Standard R2, Enterprise und Enterprise R2).

Praktische Grundlagen

WCCS nutzt wichtige Windows-Grundlagen einschließlich Active Directory® und Remoteinstallationsdienste (Remote Installation Services, RIS), um die Verwaltung und den Betrieb von Windows-basierten Clustern zu vereinfachen. Compute Cluster Server verwendet Active Directory zur transparenten Verwaltung der Sicherheit. Mit Active Directory kann ein Benutzer einen Auftrag mithilfe eines einzelnen Satzes an Anmeldeinformationen an den Headknoten senden, der auf Hunderten von Serverknoten ausgeführt werden kann. Wenn Aufträge auf einem oder mehreren Computeknoten ausgeführt werden, werden sie im Kontext der Benutzeranmeldeinformationen ausgeführt, die beim Senden des Auftrags bereitgestellt wurden, und anschließend sicher zwischengespeichert. WCCS stützt sich auf Active Directory, um diese einzelne Anmeldefunktionalität bereitzustellen. Ein weiterer Vorteil von Active Directory in der Umgebung besteht darin, dass die Server- und Konfigurationsrichtlinie zentral über die Gruppenrichtlinie verwaltet werden kann.

Wenn in Ihrer IT-Organisation bereits Active Directory bereitgestellt wird, können Sie viel Zeit und Verwaltungsaufwand sparen, indem Sie Ihren Cluster in der vorhandenen Domäne erstellen. Dies ist das empfohlene Szenario.

Wenn Sie einen Computecluster in einer Umgebung bereitstellen müssen, in der Active Directory nicht vorhanden ist, wird empfohlen, einen oder mehrere dedizierte Domänencontroller zum Hosten von Active Directory für den Cluster bereitzustellen. Es ist nicht ungewöhnlich, den Headknoten als Active Directory-Domänencontroller fungieren zu lassen, da alle Knoten unabhängig von der Netzwerktopologie bereits über Netzwerkkonnektivität zum System verfügen. Bei größeren Clustern ist es aufgrund der höheren Auslastung des Headknotens allerdings nicht empfehlenswert, den Headknoten als Domänencontroller einzusetzen. Übliche Praktiken für die Bereitstellung und Verwaltung von Active Directory sollten befolgt werden (Installation redundanter Domänencontroller, angemessene Datensicherungen, gute Sicherheitsmethoden und so weiter).

Remoteinstallationsdienst

WCCS stellt einen integrierten Front-End-Server für die Microsoft Remoteinstallationsdienst-Abbildbereitstellungsplattform bereit. RIS dient zum Bereitstellen von Betriebssystemabbildern vom Headknoten an alle Computeknoten. Daher kann RIS zur schnellen Installation neuer Clusterknoten verwendet werden. Das muss nicht auf diese Weise erfolgen – RIS ist rein aus Gründen der Benutzerfreundlichkeit in WCCS integriert. Andere übliche Windows Server-Bereitstellungstechnologien können ebenfalls verwendet werden, z. B. Windows Server 2003 Automatische Bereitstellungsdienste (Automated Deployment Services, ADS) oder eine manuelle Installation von Windows Server 2003.

Wenn Sie RIS verwenden möchten, sollten Sie vor der Installation von CCP auf dem Headknoten sicherstellen, dass mindestens zwei logische Datenträger definiert wurden. Für RIS ist ein vom Betriebssystem separater Datenträger zum Speichern von Serverabbildern erforderlich. Ihre RIS-Partition sollte über genug freien Speicherplatz zum Ablegen einer oder mehrerer vollständiger Kopien eines Windows Server-Abbilds verfügen.

Für neuere Serverhardware, besonders Netzwerk- und Speicherausrüstung, sind möglicherweise Plug ' Play-Treiber erforderlich, die in den standardmäßigen Windows Server 2003-Abbildern nicht enthalten sind. In diesem Fall müssen die Treiber manuell zum Abbild hinzugefügt werden. Das entsprechende Verfahren ist online unter support.microsoft.com/kb/254078 dokumentiert.

Installieren des Clusters

Der erste Schritt besteht im Konfigurieren des Gehirns Ihres Clusters, d. h. des Headknotens. Installieren Sie zunächst eine der bereits erwähnten x64-Versionen von Windows Server 2003. Während der Betriebssysteminstallation entscheiden Sie, ob der Server mit einer vorhandenen Domäne verknüpft werden soll (dies wird empfohlen) oder ob Active Directory auf dem Server installiert werden soll (dies ist für große Cluster nicht empfehlenswert).

Nach Installieren des Betriebssystems sollten Sie überprüfen, ob alle empfohlenen Problembehebungen von Microsoft Update ebenfalls heruntergeladen und installiert wurden. Wenn Sie RIS zur Computeknotenabbilderstellung verwenden möchten, müssen Sie anschließend das administrative Tool zur Computerverwaltung | Datenträgerverwaltung verwenden, um sicherzustellen, dass mindestens zwei logische Datenträger definiert wurden. Aus Platzgründen wird die RIS-basierte Installation in diesem Artikel nicht erläutert.

Nach der erfolgreichen Anmeldung bei Ihrem Server und dessen Aktualisierung führen Sie das CCP-Setupprogramm aus. CCP-Setup installiert die folgenden erforderlichen Dateien und Updates oder führt Sie durch den Download- und Installationsprozess:

Das CCP-Setupprogramm ist hervorragend zum Bewerten der Installationsbereitschaft Ihres Systems geeignet. Sie erfahren, welche Komponenten erforderlich sind und als Teil des Vorgangs installiert werden müssen. Der Installationsvorgang wird vom Setupprogramm vorgenommen, wie in Abbildung 1 dargestellt.

Abbildung 1 Für die CCP-Installation erforderliche Komponenten

Abbildung 1** Für die CCP-Installation erforderliche Komponenten **(Klicken Sie zum Vergrößern auf das Bild)

Die Aufgabenliste

Nach Abschluss des CCP-Setups wird die Administratorkonsole gestartet, wobei die Aufgabenliste im Mittelpunkt steht. Wie Abbildung 2 zeigt, enthält die Aufgabenliste mehrere Bereiche, in denen jeweils ein anderer Bereich angesprochen wird und wichtige Aufgaben zum Fertigstellen der Clusterkonfiguration aufgeführt sind.

Abbildung 2 Aufgabenlisten zeigen, was zum Konfigurieren des Clusters erforderlich ist.

Abbildung 2** Aufgabenlisten zeigen, was zum Konfigurieren des Clusters erforderlich ist. **(Klicken Sie zum Vergrößern auf das Bild)

Mithilfe der Aufgabenliste können Sie die von Ihnen geplante Clusterarchitektur einschließlich Auswahl und Konfiguration der Netzwerktopologie, des Knoteninstallationsvorgangs und des Benutzerverwaltungsmodells leicht implementieren. Aufgaben für jeden dieser Bereiche sind rechts aufgeführt, und für jede Aufgabe wird ein Assistent gestartet. Wenn Sie alle Aufgaben nacheinander abschließen, erhalten Sie einen vollständig konfigurierten Headknoten, mit dem RIS-Abbilder auf einem bekannten Satz von Computeknoten bereitgestellt werden können, und der von einer definierten Benutzergruppe verwaltet werden kann und für diese zugänglich ist.

Netzwerktopologie WCCS unterstützt die fünf am häufigsten in HPC verwendeten Netzwerktopologien. Alle Computeknoten und der Headknoten müssen zumindest ein Netzwerk gemeinsam nutzen. Die Topologien umfassen Unterstützung für mehrere Typen von Verbindungen zwischen den Knoten und haben bestimmte Vor- und Nachteile.

Die Netzwerktopologie hängt von der Leistung, Sicherheit und den Bereitstellungsanforderungen für Ihren Cluster ab. Beispielsweise könnte für Ihre Anwendung eine Hochgeschwindigkeitsverbindung zum Weiterleiten von Nachrichten erforderlich sein, auf die von Ihrem Unternehmensnetzwerk nicht zugegriffen werden soll. Vielleicht möchten Sie die integrierten, RIS-basierten, automatisierten Bereitstellungsfunktionen nutzen. Möglicherweise kann die von Ihnen ausgewählte Hardware nur eine einzelne NIC aufnehmen, oder vielleicht möchten Sie, dass auf dem Headknoten ICS (gemeinsame Nutzung der Internetverbindung) zum Verwalten der Namensauflösung und Adressierung für die Computeknoten ausgeführt werden soll. Der von der Aufgabenliste aufgerufene Assistent zur Definition der Topologie des Clusternetzwerks zeigt die fünf Topologien an, die in der Regel von normalen HPC-Implementierungen unterstützt werden, und hilft bei der Konfiguration der Netzwerkverbindungen einschließlich Windows-Firewallkonfigurationen auf dem Headknoten und den Computeknoten. Abbildung 3 zeigt eine der unterstützten Netzwerktopologien.

Abbildung 3 Eine der unterstützten WCCS-Netzwerktopologien

Abbildung 3** Eine der unterstützten WCCS-Netzwerktopologien **(Klicken Sie zum Vergrößern auf das Bild)

Remoteinstallationsdienst Wie bereits erwähnt, ermöglicht RIS die automatisierte Bereitstellung von Clusterknoten.

Knotenverwaltung Sie haben die Möglichkeit, die Computernamen der Server anzugeben, die Computeknoten in diesem Cluster sein sollen. Bei Ausführung des CCP auf einem Knoten wird der Headknoten des Clusters angegeben, mit dem der Knoten verknüpft wird.

Benutzerverwaltung Hier können Sie angeben, welche Active Directory-Benutzerkonten oder -gruppen als Systemadministratoren und welche als Benutzer des Clusters festgelegt werden.

Knoteninstallation

Die Bereitstellung von Computeknoten kann automatisch über das RIS-Verwaltungsdienstprogramm oder mithilfe anderer unterstützter Bereitstellungsmethoden abgeschlossen werden. Wie beim Headknoten muss das CCP auf jedem Computeknoten installiert werden. Wie in Abbildung 4 dargestellt, sind die CCP-Setupkonfigurationsoptionen für einen Computeknoten viel einfacher und bestehen aus Folgendem:

Abbildung 4 Compute Cluster Pack-Setup

Abbildung 4** Compute Cluster Pack-Setup **(Klicken Sie zum Vergrößern auf das Bild)

  • Angabe, dass der Server ein Computeknoten (und kein Headknoten) sein soll.
  • Angabe des Headknotennamens des Clusters, mit dem der Server verknüpft werden soll.
  • Angabe, ob die administrativen und Benutzertools auf dem Computeknoten installiert werden sollen oder nicht.

Verwaltungskonsole

Wenn die Knoten mit Ihrem Headknoten kommunizieren, können die meisten Verwaltungsaufgaben für alle Systeme über die Administratorkonsole durchgeführt werden, wie in Abbildung 5 dargestellt. Die Konsole stellte eine zentrale Ansicht des gesamten Clusters einschließlich einer Liste aller zugeordneten Knoten, Zugriff auf wichtige administrative Tätigkeiten und andere Einzelheiten bereit. Der Bereich ganz links bietet Navigation auf hoher Ebene durch die Konsole, einschließlich Zugriff auf die Clusterverwaltung, die, wenn hervorgehoben, einen Zusammenfassungsbildschirm bereitstellt, der den Clusterstatus und die Auftragsstatistiken anzeigt. Zugriff auf alle Remotedesktop- und Systemmonitorsitzungen kann ebenfalls von hier aus erfolgen, doch die meiste Zeit über erfolgt die Verwaltung des Clusters mithilfe der „Knotenverwaltung“.

Abbildung 5 Die Administratorkonsole bietet eine Ansicht des gesamten Clusters

Abbildung 5** Die Administratorkonsole bietet eine Ansicht des gesamten Clusters **(Klicken Sie zum Vergrößern auf das Bild)

Sie sollten die Administratorkonsole selbst genauer untersuchen, da sie Zugriff auf wichtige Tools und Funktionen bietet, die zur zentralen Verwaltung von Windows und Clusterknoten erforderlich sind. Durch einmaliges Klicken auf einen Clusterknoten im oberen mittleren Bereich werden mehrere andere Fenster aufgefüllt, und Sie können mit dem Untersuchen knotenspezifischer Funktionen beginnen.

Über die Funktionen in den mit der rechten Maustaste aufgerufenen Menüs können Sie Computeknoten zentral von der Knotenverwaltung aus verwalten. Mithilfe der Knotenverwaltung können Sie Knoten anhalten und fortsetzen, Knoten für den Cluster genehmigen oder aus ihm entfernen, Remotedesktops, den Systemmonitor oder die Ereignisanzeige starten oder das CD-ROM-Laufwerk öffnen (was recht hilfreich sein kann, um einen einzelnen Computer in einem großen Cluster physisch zu identifizieren).

Praktisches ClusRun-Programm

Das praktischste Feature auf dieser Liste ist „Befehl ausführen“, also die Möglichkeit, einen beliebigen Befehl von einem Remotestandort aus genauso auszuführen, als säßen Sie am Zielcomputer. WCCS enthält eine Befehlszeilenversion des Features „Befehl ausführen“ mit der Bezeichnung Clusrun.exe, und ClusRun dient zum Beschreiben sowohl der Version mit der grafischen Benutzeroberfläche als auch der Befehlszeilenversion.

Die Vorteile des ClusRun-Dienstprogramms können nicht genug hervorgehoben werden, speziell in einem großen Cluster. Es spart enorm viel Zeit beim Ausführen sich wiederholender Befehlszeilenaufgaben, und oft müssen keine komplexeren administrativen Skripts geschrieben werden.

Zum Verwenden dieses Features heben Sie eine Liste der Computer hervor, für die ein Befehl ausgeführt werden soll, klicken dann mit der rechten Maustaste und wählen „Befehl ausführen“ aus. Das Dialogfeld in Abbildung 6 wird angezeigt. Jetzt geben Sie einfach den gewünschten Befehl ein, klicken auf „Ausführen“ und warten darauf, dass die Ausgabe im Ergebnisfenster angezeigt wird. Bei erstmaliger Verwendung von ClusRun werden Sie zum Eingeben von Anmeldeinformationen aufgefordert, aber Sie können diese Informationen zur späteren Wiederverwendung zwischenspeichern lassen.

Abbildung 6 Sie können einen Befehl auf mehreren Knoten ausführen

Abbildung 6** Sie können einen Befehl auf mehreren Knoten ausführen **(Klicken Sie zum Vergrößern auf das Bild)

Eine gängige Methode zum Patchen von Clustern oder Installieren von Programmen, die automatische Setuproutinen enthalten, besteht darin, sie in eine Dateifreigabe zu stellen und dann ClusRun zu verwenden, um durchzusetzen, dass alle Computeknoten den Befehl aufrufen. Der Neustart aller Computeknoten im ganzen Cluster kann über einen einzelnen Befehl erfolgen:

CLUSRUN SHUTDOWN –R –F –T 0 

Tool Pack

Im Mai 2007 hat das HPC-Team das Compute Cluster Pack-Tool Pack veröffentlicht (es ist online unter windowshpc.net/resources/Pages/default.aspx verfügbar). Das Tool Pack umfasst Unterstützung für Windows PowerShellTM, ein MPIPingPong-Tool zur Analyse des Konnektivitätsstatus und einen sehr einfachen, aber nützlichen grafischen Clustermonitor.

Wie in Abbildung 7 dargestellt, kann der einfache Clustermonitor auf einem Bildschirm alle Knoten im Cluster, die Anzahl der Kerne jedes Knotens, die Auslastung aller CPUs (in Hellgrün), die Speicherauslastung (gelb), Prozent der Datenträgerzeit (rot) und die Netzwerkbandbreitenauslastung (orange) anzeigen. Es ist ein hervorragendes Tool für Administratoren, mit dem der Status des Clusters auf einen Blick erkenntlich ist.

Abbildung 7 Überwachung mehrerer Knoten mithilfe des einfachen Clustermonitors

Abbildung 7** Überwachung mehrerer Knoten mithilfe des einfachen Clustermonitors **(Klicken Sie zum Vergrößern auf das Bild)

Der Clustermonitor kann auch von einem Remotestandort aus ausgeführt werden. Die erste Instanz des Clustermonitors muss auf dem Headknoten ausgeführt werden. Wenn Sie jedoch eine Instanz des Clustermonitors in einer Konsolensitzung des Headknotens ausführen, haben Sie die Möglichkeit, Instanzen des Clustermonitors von einer Arbeitsstation aus zu starten, sie auf den Headknoten zu verweisen und dieselbe Anzeige zu erhalten.

Worauf warten Sie noch?

Sie sind jetzt mit HPC und Windows Server 2003 Compute Cluster Server vertraut. Sie wissen, wie das CCP installiert wird, Sie haben die praktische, umfassende Konsole kennengelernt, und Sie verfügen über praktische neue Befehle und grafische Tools, mit denen Sie Kollegen und Benutzer gleichermaßen beeindrucken können. Quellen für weitere Informationen zu Hochleistungscomputing finden Sie in der Randleiste „HPC-Ressourcen“.

John Kelbleyist technischer Produktmanager für Microsoft im Global Solutions Technology-Team im Nordosten der USA. Sie erreichen ihn unter Johnkel@microsoft.com

Doug Lindsey ist Programmmanager im Microsoft HPC-Team. Außerdem ist er Administrator von Produktionscomputeclustern (sowie Nr. 116 in der Liste vom November 2007 unter www.top500.org). Sie erreichen ihn unter Dougli@microsoft.com.

© 2008 Microsoft Corporation und CMP Media, LLC. Alle Rechte vorbehalten. Die nicht genehmigte teilweise oder vollständige Vervielfältigung ist nicht zulässig.