Un High Performance Computing (ou HPC) permet d’effectuer des calculs hautes performances sur un “super ordinateur” ou “cluster” avec une forte puissance de calcul (CPU, RAM, GPU).
Les HPC nécessitent du matériels adaptés : serveurs bi/quadri lames (2/4 nœuds dans un même châssis) -> rapport volume/puissance(densité)
Ils jouent un rôle très important dans les sciences (applications “intensives”) : mécanique quantique, prévisions météo, recherches sur le climat, exploitation de gaz et de pétrole, modélisation moléculaire, simulations physiques
Les clusters
Un Cluster est une grappe d’ordinateurs connectés entre eux travaillant ensemble (pour ne former qu’une seule entité) :
- Ses composants sont (généralement) connectés entre eux par un réseau rapide
- Plus efficace en termes de rapport performance/prix qu’un seul serveur de performance équivalente
- Homogénéité est de mise pour faciliter la gestion
- Hardware (même marque et modèle pour les nœuds)
- Software (même version d’OS sur toutes les machines)
- Chaque nœud dispose d’un système d’exploitation
- Généralement CentOS, Red Hat ou Debian
- Le code exécuté est prévu pour un fonctionnement massivement parallèle
- Gestionnaire de jobs
- Gestion des ressources (nœuds, CPUs, mémoire, GPUs…)
- Exécution des jobs sur les nœuds de calcul de manière optimisée et planifiée
- Exemples :
- Torque/Maui
- Slurm
- PBSPro
- SGE
- LSF/OpenLava
Cluster Maître
Dans un cluster, il existe un nœud spécial appelé maître ou frontal, responsable de l’installation, la surveillance et la gestion des autres nœuds de calcul.
C’est l’élément central du cluster et dispose de répertoires exportés vers les autres nœuds de calcul (comportant des éléments centralisés qui n’ont pas besoin d’être installés/configurés sur les autres nœud)
Les rôles du maître sont :
- Connexion des utilisateurs et administrateurs
- Permettre d’éfectuer les tâches d’administration
- Lancement des calculs
- Intallation/configuration :
- librairies/compilateurs
- gestionnaire de jobs
- système de déploiement des nœuds
- logiciels additionnels
- surveillance/supervision (Nagios, Ganglia, …)
Serveurs utilisés par le maître :
- NTP : synchronisation sur un serveur global (ensuite les nœuds se synchronisent sur le master)
- Apache : pour les autres services (Nagios, Ganglia, TFTP)
- DHCP : pour l’installation d’un nœud et lui attribuer une IP et lui envoyer les fichiers d’installation
- NFS : pour exporter les répertoires centraux du cluster
- DNS : pour la résolution de noms (optionnel si on utilise
/etc/hosts
)
Attention aux mises à jour
- Vivement déconseillées pour ne pas “casser” le cluster
Sur certains clusters, il peut y avoir plusieurs maîtres (redondance, répartition des charges), ou un serveur frontal en plus du maître