Informatique hautes performances

Introduction à Windows Compute Cluster Server

John Kelbley and Doug Lindsey

 

Vue d'ensemble:

  • Utilisation de clusters pour résoudre des problèmes complexes
  • Exigences générales pour les clusters de calcul
  • Configuration d'un cluster de calcul Windows
  • Exécution de commandes à distance

Le terme Informatique hautes performances (HPC – High Performance Computing) se réfère à une branche de l'informatique appliquée portant essentiellement sur la résolution de problèmes nécessitant une grande quantité de calculs. Il y a des années, l'informatique hautes performances (alors plus souvent appelée « superinformatique ») était dominée par

de gros systèmes spécialisés très coûteux que l'on trouvait principalement dans des centres de recherche. Toutefois, à mesure que la puissance de calcul des systèmes plus petits augmentait, le rapport coût/performances s'est modifié et les gros volumes de calcul ont été transférés sur des systèmes de type PC.

De nombreux problèmes demandant beaucoup de calculs peuvent être résolus en effectuant les calculs en parallèle, à condition toutefois qu'un calcul ou un processus particulier ne soit pas dépendants des résultats d'un autre pour s'effectuer. Dans des cas comme celui-ci, les problèmes complexes peuvent tirer parti de plusieurs systèmes plus petits (nœuds) regroupés en clusters de calcul. Voici quelques exemples de types d'applications pouvant bénéficier des clusters de calcul :

  • Modèles financiers : les algorithmes et les formules sont exécutés des milliers de fois, chaque fois avec des informations différentes en entrée.
  • Ingénierie : simulation d'effets dans des pièces distinctes, application de textures à des modèles.
  • Animation informatique : application de textures et d'effets d'éclairage à chaque image d'un film.

Les clusters de calcul sont une façon économique de résoudre des problèmes complexes dans un délai réduit. Comme vous le verrez ici, Microsoft offre des fonctionnalités et une prise en charge clés pour les clusters de calcul via Windows® Compute Cluster Server 2003.

Il est important de comprendre qu'un cluster de calcul est différent d'un cluster de disponibilité (de basculement). Vous connaissez peut-être déjà les clusters de disponibilité pour Exchange, SQL Server® ou d'autres applications de Windows Server® 2003. Ils se servent en général du stockage partagé pour optimiser la disponibilité d'une application. L'objectif des clusters de calcul n'est pas de reprendre le travail d'un autre système en cas de coupure de courant mais de permettre à tous les nœuds de travailler de façon coordonnée.

Exigences générales pour un cluster de calcul

Ressources sur l'informatique hautes performances

Les systèmes HPC modernes partagent certains éléments clés qui facilitent le traitement des charges de travail. Pour commencer, vous devez disposer de plus d'un système. Vous avez aussi besoin d'un planificateur pour coordonner les affectations de tâches entre les nœuds. Le planificateur s'exécute sur le nœud responsable (le nœud de tête) et identifie les ressources disponibles, attribuant et distribuant les tâches et contrôlant leur état global. Il s'agit du coordinateur de ressources au sein du cluster de systèmes et du point où les utilisateurs et les administrateurs soumettent les travaux à traiter.

Les clusters ont besoin d'un moyen de communiquer d'un nœud à l'autre. Selon le type de travail, les nœuds peuvent avoir besoin d'interconnexions ultra-rapides, avec un temps de latence faible pour échanger des messages en vue de coordonner le traitement. Au minimum, chaque nœud de calcul et le nœud de tête doivent être connectés sur un réseau commun.

Les systèmes interconnectés en grand nombre, travaillant ensemble à résoudre des problèmes complexes, ont également besoin de beaucoup d'attention. Les processus et outils adaptés à la mise en service, le contrôle, la gestion et la maintenance de douzaines, voire de centaines ou de milliers de systèmes doivent garantir un environnement stable et cohérent.

Enfin, le plus important, les applications qui peuvent exploiter les fonctionnalités de traitement en parallèle d'un cluster de calcul doivent être disponibles. Sans des applications capables de diviser les tâches pour qu'elles soient traitées sur différents ordinateurs, ou des outils de développement qui incluent la prise en charge d'un « débogueur parallèle », un cluster ne servirait sans doute qu'à chauffer votre salle d'ordinateurs.

Clusters Windows Server

En 2006, Microsoft a commercialisé Windows Server 2003 Compute Cluster Edition (CCE) et Windows Compute Cluster Server 2003 (WCCS) pour répondre aux besoins d'un grand nombre d'applications HPC. CCE et WCCS sont basés sur le Windows Server 2003 que vous connaissez déjà. CCE est une version de Windows Server 2003 prévue pour une utilisation avec les applications HPC. WCCS est identique à CCE, avec l'ajout du pack Microsoft® Compute Cluster Pack (CCP). Cela signifie que vous pouvez déployer, gérer, contrôler et maintenir un cluster Windows Server à l'aide des mêmes outils que ceux que vous utilisez déjà pour gérer les systèmes Windows Server 2003 existants.

Il est cependant à noter que CCE et WCCS sont uniquement disponibles en version x64 ; il n'existe pas de version 32 bits (x86) de ces produits. La configuration matérielle requise pour CCE avec WCCS est identique à celle de Windows Server 2003 Edition Standard x64. Outre la prise en charge de matériel hautes performances (architecture 64 bits), les produits incluent la prise en charge de l'accès direct à la mémoire à distance (Remote Direct Memory Access – RDMA) pour les interconnexions hautes performances (Gigabit Ethernet, InfiniBand, Myrinet, etc.).

Compute Cluster Pack

Comme mentionné précédemment, les clusters de calcul ont certaines exigences fondamentales qui peuvent être satisfaites par l'installation du pack Compute Cluster Pack (CCP). Le CCP est un package d'installation autonome qui inclut :

  • Un planificateur de tâches intégré
  • La prise en charge d'une interface de passation de message (MPI) pour la norme MPICH2
  • Des outils de gestion des ressources de cluster ou destinés aux utilisateurs

Le CCP est le différentiateur clé entre CCE et WCCS. Vous vous demandez peut-être pourquoi, si les clusters de calcul ont besoin de ces composants, ils sont uniquement inclus dans WCCS et pas dans CCE. La réponse est que certaines solutions HPC exploitent des planificateurs de tâches différents ou des MPI spécialisés (ou ne nécessitent pas la prise en charge de MPI) et ont simplement besoin d'une plate-forme robuste sur laquelle s'exécuter, par exemple, Windows Server 2003. Comme le CCP est un package autonome, vous pouvez l'installer sur d’autres versions x64 de Windows Server 2003 (CCE, Standard, Standard R2, Enterprise et Enterprise R2).

Description du fonctionnement

WCCS exploite les principes de base les plus importants de Windows pour simplifier la gestion et le fonctionnement des clusters Windows, y compris Active Directory® et Remote Installation Services (RIS). Compute Cluster Server utilise Active Directory pour gérer la sécurité de façon transparente. Avec Active Directory, un utilisateur peut soumettre au nœud de tête, à l'aide d'un jeu d'informations d'identification unique, une tâche qui peut s'exécuter sur des centaines de nœuds de serveur. Lorsque les tâches sont exécutées sur un ou plusieurs nœuds, elles s'exécutent dans le contexte des informations d'authentification utilisateur fournies lors de la soumission de la tâche et sont mises en cache de façon sécurisée par la suite. WCCS s'appuie sur Active Directory pour fournir cette fonctionnalité de « point de connexion unique ». L'un des avantages supplémentaires de la présence d'Active Directory dans l'environnement réside dans le fait que le serveur et la stratégie de configuration peuvent être administrés de façon centralisée à l'aide de la stratégie de groupe.

Si votre service informatique a déjà déployé Active Directory, vous pouvez économiser du temps et des efforts en générant votre cluster dans le domaine existant. C'est le scénario recommandé.

Si vous devez déployer un cluster de calcul dans un environnement où Active Directory n'existe pas, une pratique recommandée consiste à déployer un ou plusieurs contrôleurs de domaine dédiés pour héberger Active Directory pour le cluster. Il n'est pas rare de faire du nœud de tête le contrôleur de domaine Active Directory puisque tous les nœuds disposent déjà de la connectivité réseau au système, quelle que soit la topologie du réseau. Cependant, faire du nœud de tête le contrôleur de domaine n'est pas recommandé pour les clusters de grande enverguez en raison de l'augmentation de la charge sur le nœud de tête. Les pratiques courantes de déploiement et de gestion d'Active Directory doivent être suivies (installation de contrôleurs de domaine redondants, sauvegardes suffisantes, bonnes pratiques de sécurité, etc.).

Service d'installation à distance

WCCS fournit un frontal intégré pour la plate-forme de déploiement d'image Microsoft Remote Installation Service (RIS). RIS est utilisé pour déployer les images de système d'exploitation du nœud de tête sur chacun des nœuds de calcul, ce qui signifie que vous pouvez utiliser RIS pour installer les nouveaux nœuds de clusters rapidement. Vous n'êtes pas obligé de le faire de cette façon. RIS est uniquement intégré dans WCCS pour plus de facilité. D'autres technologies de déploiement courantes de Windows Server peuvent aussi être utilisées, comme Windows Server 2003 Automated Deployment Services (ADS) ou une installation manuelle de Windows Server 2003.

Si vous voulez utiliser RIS, avant d'installer le CCP sur votre nœud de tête, assurez-vous d'avoir au moins deux disques logiques définis. RIS nécessite un disque distinct du système d'exploitation pour le stockage des images du serveur. Votre partition RIS doit contenir suffisamment d'espace disque pour recevoir une ou plusieurs copies complètes d'une image de Windows Server.

Les matériels de serveur les plus récents, notamment les appareils de mise en réseau et de stockage peuvent nécessiter des pilotes plug-and-play qui ne sont pas contenus dans les images par défaut de Windows Server 2003. Dans ce cas, vous devrez les ajouter manuellement à l'image. La procédure correspondante est décrite en ligne à l'adresse support.microsoft.com/kb/254078.

Installation de votre cluster

La première étape consiste à configurer le cerveau de votre cluster : le nœud de tête. Commencez par installer l'une des versions x64 de Windows Server 2003 évoquée plus tôt. Pendant l'installation du système d'exploitation, vous choisissez si vous souhaitez ou non rattacher le serveur à un domaine existant (recommandé) ou installer Active Directory sur le serveur (non recommandé pour les clusters de grande envergure).

Après avoir installé le système d'exploitation, vérifiez que vous avez également téléchargé et installé tous les correctifs recommandés depuis Microsoft Update. Si vous avez l'intention d'utiliser RIS pour l'imagerie des nœuds de calcul, vous devez ensuite utiliser l'outil administrateur de gestion d'ordinateur/gestion de disque pour vous assurer que deux disques logiques au moins sont définis. Pour des contraintes d'espace, nous ne couvrirons pas l'installation basée sur RIS dans cet article.

Une fois que vous avez ouvert une session et mis à jour votre serveur avec succès, vous devez exécuter le programme d'installation du CCP. Le programme d'installation du CCP effectuera l'installation ou vous guidera tout au long des étapes de téléchargement et d'installation des fichiers et mises à jour prérequis suivants :

Le programme d'installation du CCP est particulièrement efficace pour évaluer si votre système est prêt pour l'installation. Il vous fera savoir quels composants sont nécessaires et installés dans le cadre du processus et les installera, comme illustré à la figure 1.

Figure 1 Composants nécessaires à l'installation du CCP

Figure 1** Composants nécessaires à l'installation du CCP **(Cliquer sur l'image pour l'agrandir)

Liste des tâches

Une fois l'installation du CCP est complète, celui-ci lance la console d'administration, en se centrant sur la liste de tâches. Comme le montre la figure 2, la liste de tâches contient plusieurs volets, chacun consacré à un domaine différent et énumérant les tâches clés pour terminer la configuration du cluster.

Figure 2 La liste de tâches affiche ce que vous devez faire pour configurer votre cluster

Figure 2** La liste de tâches affiche ce que vous devez faire pour configurer votre cluster **(Cliquer sur l'image pour l'agrandir)

La liste de tâches vous permet d'implémenter facilement l'architecture de cluster que vous avez élaborée, notamment de sélectionner et de configurer la topologie de réseau, le processus d'installation des nœuds et le modèle de gestion des utilisateurs. Les tâches correspondant à chacun des volets sont listées sur le côté droit et chaque tâche lance un Assistant. Effectuez chaque tâche dans l'ordre pour obtenir un nœud de tête entièrement configuré, prêt à déployer les images de RIS à un ensemble connu de nœuds de calcul et qui peut être administré et utilisé par un groupe défini d'utilisateurs.

Topologie de mise en réseau WCCS prend en charge les cinq topologies de réseau les plus courantes utilisées en HPC. Au minimum, tous les nœuds de calcul et le nœud de tête doivent partager le même réseau. Les topologies incluent la prise en charge de plusieurs types d'interconnexions entre les nœuds et ont des avantages et des coûts qui leur sont propres.

Votre topologie de réseau dépendra des performances, de la sécurité et des exigences de déploiement de votre cluster. Par exemple, votre application peut nécessiter une interconnexion ultra-rapide pour la transmission de messages, que vous ne voulez pas exposer à votre réseau d'entreprise. Peut-être souhaitez-vous profiter des fonctionnalités de déploiement RIS intégrées et automatisées. Peut-être le matériel que vous avez choisi ne peut-il contenir qu'une seule carte réseau ou peut-être voulez-vous que le nœud de tête exécute le partage de connexion Internet (ICS) pour gérer la résolution des noms et l'adressage des nœuds de calcul. L'Assistant de configuration de topologie réseau du cluster invoqué à partir de la liste des tâches vous présentera les cinq topologies généralement prises en charge par les implémentations HPC courantes et vous aidera à configurer vos connexions réseau, y compris les configurations de pare-feu Windows sur le nœud de tête et les nœuds de calcul. La figure 3 illustre une des topologies de réseau prises en charge.

Figure 3 Une des topologies de réseau WCCS prises en charge

Figure 3** Une des topologies de réseau WCCS prises en charge **(Cliquer sur l'image pour l'agrandir)

Service d'installation à distance Comme indiqué précédemment, RIS permet le déploiement automatisé des nœuds de clusters.

Gestion des nœuds Vous avez la possibilité de spécifier les noms des serveurs qui seront des nœuds de calcul dans ce cluster. Lorsque le CCP est exécuté sur un nœud, le nœud de tête du cluster auquel le nœud se rattachera est spécifié.

Gestion des utilisateurs Ici, vous pouvez spécifier quels comptes d'utilisateurs ou groupes Active Directory seront désignés comme administrateurs système et lesquels seront désignés comme utilisateurs du cluster.

Installation de nœud

Le déploiement de nœuds de calcul peut être effectué automatiquement via l'utilitaire d'administration de RIS ou à l'aide d'autres méthodes de déploiement prises en charge. Comme avec le nœud de tête, le CCP doit être installé sur chaque nœud de calcul. Comme le montre la figure 4, les options de configuration de l'installation du CCP sont beaucoup plus simples pour un nœud de calcul et consistent en ce qui suit :

Figure 4 Installation du pack Compute Cluster Pack

Figure 4** Installation du pack Compute Cluster Pack **(Cliquer sur l'image pour l'agrandir)

  • Spécifier que le serveur doit être un nœud de calcul (et pas un nœud de tête).
  • Spécifier le nom du nœud de tête du cluster auquel le serveur doit se rattacher.
  • Spécifier s'il faut ou non installer les outils d'administrateur et d'utilisateur sur le nœud de calcul.

Console d'administration

Une fois que vos nœuds sont en communication avec votre nœud de tête, la plupart des tâches de gestion et d'administration de tous les systèmes peuvent être accomplies à l'aide de la console d'administration, illustrée à la figure 5. La console offre une vue centralisée du cluster entier, notamment une liste de tous les nœuds associés, un accès aux actions d'administration clés et d'autres détails encore. Le volet le plus à gauche fournit des fonctionnalités avancées de navigation dans la console, notamment l'accès à l'« Administrateur de cluster », qui, lorsqu'il est mis en surbrillance, fournit un écran de synthèse donnant l'état du cluster et des statistiques sur les tâches. L'accès aux ordinateurs distants et aux sessions de surveillance du système peut aussi être obtenu ici, mais la plupart du temps, l'administration du cluster se fera via la « Gestion de nœud ».

Figure 5 La console d'administrateur fournit une vue d'ensemble du cluster.

Figure 5** La console d'administrateur fournit une vue d'ensemble du cluster. **(Cliquer sur l'image pour l'agrandir)

Vous devriez explorer la console d'administration vous-même, car elle fournit l'accès aux outils et fonctions clés nécessaires pour administrer Windows et les nœuds du cluster. Un clic sur un nœud de cluster dans le volet central supérieur créera plusieurs autres fenêtres et vous pourrez commencer à explorer les fonctions propres aux nœuds.

Les fonctions prises en charge par les menus affichés par clic droit de la souris vous permettent d'administrer facilement les nœuds de calcul de façon centralisée via la Gestion de nœud. Vous pouvez utiliser la Gestion de nœud pour arrêter et relancer des nœuds ; valider ou supprimer des nœuds du cluster ; lancer des ordinateurs, le moniteur système ou l'observateur d'événements à distance ; ou provoquer l'éjection du plateau de CD (ce qui peut être très utile lorsque vous essayez d'identifier physiquement une machine particulière dans un grand cluster).

ClusRun, c'est cool !

La fonctionnalité la plus pratique de cette liste est « Run Command » (Exécuter la commande), c'est-à-dire, la possibilité d'exécuter n'importe quelle commande à distance, comme si vous étiez assis devant l'invite de commande de l'ordinateur cible. WCCS inclut une version ligne de commande de la fonctionnalité Run Command nommée Clusrun.exe et « ClusRun » est utilisé pour décrire à la fois les versions ligne de commande et interface graphique.

Les avantages de l'utilitaire ClusRun sont incomparables, en particulier si le cluster est important. Il permet un gain de temps énorme dans l'exécution des tâches de ligne de commande répétitives et il peut souvent supprimer la nécessité d'écrire des scripts administratifs plus complexes.

Pour utiliser cette fonctionnalité, mettez en surbrillance la liste des machines pour lesquelles vous voulez exécuter une commande, puis cliquez avec le bouton droit et sélectionnez Run command. La boîte de dialogue de la figure 6 s'affiche. Maintenant, saisissez simplement la commande que vous voulez, cliquez sur Run et attendez que le résultat s'affiche dans la fenêtre Result. Vous serez invité à saisir vos informations d'identification la première fois que vous utiliserez ClusRun, mais vous pouvez choisir de mettre informations d'identification en cache pour les utilisations ultérieures.

Figure 6 Vous pouvez exécuter une commande sur plusieurs nœuds

Figure 6** Vous pouvez exécuter une commande sur plusieurs nœuds **(Cliquer sur l'image pour l'agrandir)

L'une des façons courante de réparer des clusters ou d'installer des programmes qui incluent des routines d'installation automatisées consiste à les placer sur un partage de fichier puis d'utiliser ClusRun pour obliger tous les nœuds de calcul à invoquer la commande. Le redémarrage de tous les nœuds de calcul du cluster peut être lancé via une commande unique :

CLUSRUN SHUTDOWN –R –F –T 0 

Tool Pack

En mai 2007, l'équipe HPC a publié le pack Compute Cluster Pack Tool Pack (vous pouvez l'obtenir en ligne à l'adresse windowshpc.net/resources/Pages/default.aspx). Le pack d'outils inclut la prise en charge de Windows PowerShellTM, un outil MPIPingPong permettant de diagnostiquer le bon état de la connectivité et un moniteur de cluster graphique très simple mais utile.

Comme l'illustre la figure 7, Simple Cluster Monitor peut vous afficher sur un écran chacun des nœuds du cluster, le nombre de noyaux par nœud, l'utilisation de chaque processeur (en vert vif), l'utilisation de la mémoire (en jaune), le pourcentage de temps d'utilisation du disque (en rouge) et l'utilisation de la bande passante du réseau (en orange). Il s'agit d'un formidable outil consultable en coup d'œil que les administrateurs peuvent lancer pour voir comment le cluster se comporte.

Figure 7 Surveillance de plusieurs nœuds avec Simple Cluster Monitor

Figure 7** Surveillance de plusieurs nœuds avec Simple Cluster Monitor **(Cliquer sur l'image pour l'agrandir)

Le moniteur de cluster inclut également une fonctionnalité d'utilisation à distance. Vous devez exécuter la première instance du moniteur de cluster sur le nœud de tête. Cependant, si vous exécutez une instance du moniteur de cluster dans une session de console sur le nœud de tête, vous avez ensuite la possibilité de lancer des instances du moniteur de cluster à partir d'un poste de travail, de les pointer vers le nœud de tête et d'obtenir le même affichage.

Qu'attendez-vous ?

Vous en savez maintenant suffisamment sur HPC et Windows Server 2003 Compute Cluster Server. Vous savez installer le CCP, vous avez vu la super console tout-en-un et vous avez maintenant de nouvelles commandes et des outils graphiques très pratiques avec lesquels éblouir vos collègues et vos utilisateurs. Vous trouverez des sources d'informations supplémentaires sur l'informatique hautes performances dans l'encadré « Ressources Informatique hautes performances ».

John Kelbley est responsable technique de produit chez Microsoft au sein de l'équipe Global Solutions Technology basée dans le nord-est des États-Unis. Vous pouvez le contacter à l'adresse Johnkel@microsoft.com

Doug Lindsey est responsable de programme au sein de l'équipe HPC de Microsoft. Il est également administrateur de clusters de calcul de production (notamment le numéro 116 sur la liste de novembre 2007 du site www.top500.org). Vous pouvez contacter Doug à l'adresse Dougli@microsoft.com.

© 2008 Microsoft Corporation et CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.