Au fur et à mesure que les niveaux de performance et de commodité des ordinateurs et des réseaux augmentent, il devient de plus en plus facile de construire des systèmes informatiques parallèles à partir de composants facilement disponibles, plutôt que de construire des processeurs sur de très coûteux Superordinateurs. En fait, le rapport prix/performances d'une machine de type Beowulf est de trois à dix fois meilleur que celui des superordinateurs traditionnels. L'architecture Beowulf s'échelonne bien, elle est facile à construire et vous ne payez que pour le matériel, puisque la pluspart des logiciels sont gratuits.
Ce HOWTO s'adresse aux personnes qui ont déjà eu au moins des contacts avec le système d'exploitation Linux. La connaissance de la technologie Beowulf ou d'un système d'exploitation plus complexe et de concepts réseaux n'est pas essentielle, mais des aperçus de la programmation parallèle sont bienvenus (après tout, vous devez avoir de bonnes raisons de lire ce document). Ce HOWTO ne répondra pas à toutes les questions que vous pourriez vous poser au sujet de Beowulf, mais, espérons-le, vous donnera des idées et vous guidera dans la bonne direction. Le but de ce HOWTO est de fournir des informations de base, des liens et des références vers des documents plus approfondis.
Famed was this Beowulf: far flew the boast of him, son of Scyld, in the Scandian lands. So becomes it a youth to quit him well with his father's friends, by fee and gift, that to aid him, aged, in after days, come warriors willing, should war draw nigh, liegemen loyal: by lauded deeds shall an earl have honor in every clan. Beowulf est le poème épique le plus ancien en Anglais qui ait été conservé. C'est l'histoire d'un héros d'une grande force et d'un grand courage qui a défait un monstre appelé Grendel. Voir l' Historique pour en savoir plus sur le héros Beowulf.
Il y a peut-être de nombreuses définitions de Beowulf, autant que de personnes qui construisent ou utilisent des Superordinateurs Beowulf. Certains disent qu'ils peuvent appeler leur système Beowulf seulement s'il est construit de la même façon que la machine d'origine de la NASA. D'autres vont à l'extrême inverse et appellent ainsi n'importe quel système de stations qui exécutent du code parallèle. Ma définition d'un Beowulf se situe entre ces deux avis, et est fondée sur de nombreuses contributions dans la liste de diffusion Beowulf.
Beowulf est une architecture multi-ordinateurs qui peut être utilisée pour la programmation parallèle. Ce système comporte habituellement un noeud serveur, et un ou plusieurs noeuds clients connectés entre eux à travers Ethernet ou tout autre réseau. C'est un système construit en utilisant des composants matériels existants, comme tout PC capable de faire tourner Linux, des adaptateurs Ethernet standards, et des switches. Il ne contient aucun composant matériel propre et est aisément reproductible. Beowulf utilise aussi des éléments comme le système d'exploitation Linux, Parallel VirtualMachine (PVM) et Message Passing Interface (MPI). Le noeud serveur contrôle l'ensemble du cluster et sert de serveur de fichiers pour les noeuds clients. Il est aussi la console du cluster et la passerelle (gateway) vers le monde extérieur. De grandes machines Beowulf peuvent avoir plus d'un noeud serveur, et éventuellement aussi d'autres noeuds dédiés à des tâches particulières, par exemple comme consoles ou stations de surveillance. Dans de nombreux cas, les noeuds clients d'un système Beowulf sont idiots (dumb): plus ils sont idiots, mieux ils sont. Les noeuds sont configurés et contrôlés par le noeud serveur, et ne font que ce qu'on leur demande de faire. Dans une configuration client sans disque (diskless), les noeuds clients ne connaissent même pas leur adresse IP ou leur nom jusqu'à ce que le serveur leur dise qui ils sont. Une des principales différences entre Beowulf et un Cluster de Stations de travail (COW) est le fait que Beowulf se comporte plus comme une simple machine plutôt que comme plusieurs stations de travail. Dans de nombreux cas, les noeuds clients n'ont pas de claviers ni de moniteurs, et on n'y accède que par une connection distante ou par un terminal série. Les noeux Beowulf peuvent être envisagés comme un CPU + des ensembles de mémoires qui peuvent être branchés dans le cluster, exactement comme un CPU ou un module mémoire peut être branché dans une carte mère.
Beowulf n'est pas un ensemble de matériels spécialisés, une nouvelle
topologie réseau ou le dernier hack du kernel. Beowulf est une technologie de
clustering d'ordinateurs Linux pour former un superordinateur parallèle,
virtuel. Même s'il y a de nombreux paquetages comme des patches du noyau, PVM,
les librairies MPI, et des outils de configuration qui rendent l'architecture
Beowulf plus rapide, plus facile à configurer, et plus facilement utilisable, on
peut construire une machine de classe Beowulf en utilisant une distribution
Standard de Linux sans ajouter d'autres logiciels. Si vous avez deux Linux en
réseau qui partagent au moins le même système de fichier racine
via
NFS, et qui se font confiance pour exécuter des sessions distantes (rsh), alors
on peut dire que vous avez un simple Beowulf de deux noeuds.
Les systèmes Beowulf ont été construits à partir de nombreux constituants. Pour des considérations de performances, des composants moins communs (i.e. produits par un seul fabricant) ont été utilisés. Afin de recenser les différents types de systèmes et de rendre les discussions au sujet des machines un peu plus faciles, nous proposons la méthode simple de classification suivante:
CLASSE I BEOWULF:
Cette classe concerne des machines faites d'éléments globalement disponibles. Nous devrons utiliser les tests de certification "Computer Shopper" pour définir les composants d'assemblage. ("Computer Shopper" est un mensuel sur les PC et leurs composants.) [NdT: US seulement ; pour un équivalent, on peut évoquer par exemple "PC Direct".] Le test est le suivant:
Un Beowulf CLASSE I est une machine qui peut être assemblée à partir de pièces trouvées dans au moins quatre journaux de publicité de grande diffusion.
Les avantages des systèmes de CLASS I sont:
Les désavantages d'un système de CLASSE I sont:
CLASSE II BEOWULF
Un Beowulf CLASSE II Beowulf est simplement une machine qui ne passe pas le test de certification "Computer Shopper". Ce n'est pas une mauvaise chose. D'autre part, il s'agit plutôt d'une classification de la machine.
Les avantages d'un système de CLASSE II sont:
Les désavantages des systèmes de CLASSE II sont:
Une CLASSE n'est pas nécessairement meilleure qu'une autre. Cela dépend surtout de vos besoins et de votre budget. Cette classification des systèmes sert seulement à rendre les discussions sur les systèmes Beowulf un peu plus succintes. La "Conception du Système" peut aider à déterminer quelle sorte de système est le plus approprié à vos besoins.