Ressources de calcul

Développement interactif

Le CC-IN2P3 met à disposition de tout utilisateur disposant d’un compte calcul une plateforme JupyterLab pour coder, exécuter et documenter son travail de manière interactive. Pour les détails et les contraintes d’utilisation, veuillez vous référer à la section ci-dessous :

Note

La plateforme Jupyter Notebooks ne permettra pas à l’utilisateur de soumettre ses jobs sur la plateforme de calcul. Veuillez vous référer aux paragraphes suivants si tel est votre objectif.

La plateforme de calcul

La plateforme de calcul accessible par l’ordonnanceur de jobs est composée de serveurs de calcul Linux CentOS-7 (64-bit). Elle est composée de trois grandes cas d’utilisation (veuillez trouver quelques exemples d’utilisation dans la page Types de jobs) :

  • la plateforme HTC (High-Throughput Computing)
  • la plateforme HPC (High-Performance Computing)
  • la plateforme GPGPU

La plateforme HTC est adaptée à l’exécution de la majorité des applications traditionnelles HEP mono ou multi-cœur : elle représente la majeure partie de la puissance de calcul mise à disposition au CC-IN2P3.

La plateforme HPC, de capacité plus réduite, est destinée à accueillir les calculs parallèles. Elle est composée d’un ensemble de serveurs connectés en Infiniband, ce qui permet une communication efficace inter-serveurs via l’utilisation de bibliothèques MPI.

Enfin, la plateforme GPGPU est composée d’un groupe de serveurs équipées de cartes graphiques permettant d’accueillir des applications de calcul vectoriel.

Pour connaître les caractéristiques techniques des serveurs de calcul, veuillez consulter la page Configuration des serveurs de calcul.

L’ordonnanceur de jobs

De façon générale, un job est une tâche (ou un ensemble de tâches) que l’utilisateur souhaite exécuter sur les serveurs de la plateforme de calcul. Cette tâche peut être un fichier exécutable, un ensemble de commandes, un script, etc. Un job peut être développé et testé sur les serveurs interactifs avant d’être soumis massivement sur la plateforme de calcul.

Univa Grid Engine (UGE) est un ordonnanceur de jobs. L’ordonnanceur représente l’unique point d’entrée commun à tous les utilisateurs pour soumettre des jobs sur la plateforme de calcul. Son rôle est de recevoir les jobs soumis par les utilisateurs, de les ordonnancer et de les soumettre pour exécution sur un serveur de calcul approprié et disponible.

Le but principal est d’utiliser les ressources de calcul (mémoire, espace disque, CPU) de la manière la plus efficace possible. La mutualisation de toutes les ressources pour tous les utilisateurs permet une utilisation optimale de l’ensemble de la plateforme de calcul.

Un job est toujours soumis sur une queue d’exécution. Chaque queue d’exécution dispose de valeurs par défaut pour l’espace disque, le temps cpu et la mémoire. Il existe plusieurs queues pour les jobs ayant besoin de beaucoup de ressources (cpu, mémoire, plusieurs processeurs), et elles sont à accès restreint. Pour que le job puisse s’exécuter sur une queue de ce type, il faut que l’utilisateur soit dans la liste des utilisateurs autorisés (voir la FAQ des queues à accès restreint.).

Une fois soumis, le job est automatiquement vérifié pour voir s’il est autorisé à s’exécuter dans une queue particulière :

  • si l’utilisateur demande une queue :
    • si l’utilisateur est autorisé, l’ordonnanceur vérifie si les exigences matérielles du job demandées correspondent avec les ressources que fournit la queue ;
      • si elles correspondent, et s’il y a des ressources disponibles, le job est exécuté ;
      • si elles ne correspondent pas, le job reste en attente.
    • si l’utilisateur n’y est pas autorisé, le job reste en attente.
  • si l’utilisateur ne demande pas de queue :
    • l’ordonnanceur prend la première queue qui répond aux exigences ;
    • s’il n’a pas de queues appropriées, le job reste en suspens.

Toutes les queues permettent l’exécution simultanée de nombreux jobs. Le système essaie toujours de lancer de nouveaux job dans une queue la moins chargée et la plus appropriée.