Skip to Content

Le cluster de calcul

Version imprimable

Présentation du cluster de calcul de la plateforme bioinformatique.

Définition

On parle de grappe de serveurs, de ferme de calcul (Computer Cluster) ou de cluster de calcul, pour désigner des techniques consistant à regrouper plusieurs ordinateurs indépendants appelés nœuds (Node), afin de permettre une gestion globale et de dépasser les limitations d'un ordinateur.
Un cluster de calcul est donc une machine parallèle dédié au calcul intensif (HPC ou High Performance Computing).

Le cluster de la plateforme

Le cluster de la plateforme est constitué de 496 équivalents processeurs de génération différentes, équipés de multiprocesseurs Intel ou AMD. L'ensemble des noeuds de calcul est relié par un réseau privé de type gigabit Ethernet 1Gb et 10Gb. La couche logicielle permettant d'exploiter au mieux cette puissance de calcul est un gestionnaire de file d'attente nommé Sun Grid Engine. Le cluster dispose également de la couche de calcul distribué MPI (Message Parsing Interface). Le cluster de la plateforme est de type Beowulf. En complément du serveur maître, le cluster est accessible depuis les serveurs migale, topaze (pour le web), wagmial (pour la plateforme AGMIAL) et banko (pour les banques de données).

Comment utiliser le cluster

Il faut tout d'abord disposer d'un compte. Après l'obtention de votre compte, il suffit de se connecter sur le serveur migale, point d'entrée du cluster. Les traitements doivent être lancés depuis votre espace /projet/* à l'aide de scripts. Le principe de base est d'encapsuler son traitement (un blast par exemple) dans un script shell, et de soumettre ce script au gestionnaire SGE. Vous trouverez plus de précisions dans la FAQ.

Constitution du cluster

Le cluster est composé de noeuds de calcul répartis en plusieurs groupes.

Chaque noeud est associé à une file d'attente. L'utilisateur soumet ses jobs au gestionnaire de tâches qui se charge ensuite, en fonction de certaines règles, d'envoyer les jobs sur une file disponible. L'utilisateur peut aussi choisir une file particulière pour par exemple accèder à des noeuds de calculs disposant d'une quantité de mémoire importante. C'est cette solution que l'on privilégiera. Chaque file dispose en effet de ressources et de priorités différentes avec pour objectif de pouvoir répondre à la majeure partie des besoins, tout en optimisant l'utilisation du cluster.

    • La file short.q est réservée pour les jobs courts dont la durée estimée d'exécution ne dépassera pas 12H00 de temps de calcul, c'est la file par defaut.
    • La file long.q est à utiliser pour des jobs dont la durée d'exécution ne va pas dépasser 5 jours.
    • La file infinit.q est à utiliser pour des jobs dont la durée d'exécution est supérieure à 5 jours.
    • La file web.q est réservée l'utilisation du cluster via les applis web (user apache uniquement).
    • La file iprscan.q est utilisée par la suite InterProScan.

    Pour les calculs nécesitant des ressources mémoires supérieures à 8 Go, il suffit d'indiquer au système que l'on souhaite disposer de la ressource big_mem. Ceci se fait via la commande qsub -l big_mem -q short.q blast.sh.

    Groupe Noeuds de calcul Processeur Mémoire
    @2sixcore-2.4 (120 coeurs) n50-n59 Intel Six Core 2.4 Ghz 48 Go
    @dualcore-2.33 (40 coeurs) n60-n69 Intel Dual Core 2.33 Ghz 8 Go
    @quadcore-2.33 (80 coeurs) n70-n79 Intel Quad Core 2.33 Ghz 16 Go
    @4xquadcore-2.8 (128 coeurs) n80-n87 AMD Quad Core 2,8 Ghz 96 Go
    @2xquadcore-2.27 (128 coeurs) n88-n103 Intel Quad Core 2.27 Ghz 32 Go

Maintien en condition opérationnelle

La mise en place et la maintenance d'un système de type cluster demande une automatisation forte. Qui peut imaginer installer 30 serveurs manuellement ? Comment rajouter des librairies sur l'ensemble des nœuds ? Diverses solution existent en OpenSource. Nous utilisons à la fois des solutions existantes comme le logiciel Open Source CLONEZILLA, et des scripts d'automatisation de tâches. L'ensemble des nœuds peut ainsi être réinstallé en moins d'une journée.

Par ailleurs, un système de suivi de charge permet à la fois de connaitre en temps réel la charge du cluster et de ses composants, mais aussi de disposer d'un historique de son utilisation. L'ensemble de ces informations est accessible via une interface WEB.

Pour plus de détails sur l'architecture du cluster, vous pouvez consulter les pages consacrées à l'infrastructure de la plateforme.