La création automatisée d’un laboratoire vous a permis de vous mettre rapidement en route, mais vous allez découvrir que l’envers du décor offre une grande flexibilité permettant d’optimiser l’environnement pour différents cas d’utilisation. Dans cette section, vous apprendrez comment tirer profit de cette flexibilité et comment l’appliquer pour mettre à jour votre cluster de façon dynamique.

Rubriques abordées
  • Installation de logiciels et d’applications
  • Choisir les types d’instance EC2 adaptés à votre charge de travail HPC
  • Compréhension et contrôle d’Auto Scaling

Les applications logicielles peuvent être installées en se connectant au nœud principal via SSH. CfnCluster propose un éventail de packages logiciels prenant en charge les applications HPC, y compris openMPI, les langues et les compilateurs. Vous pouvez installer vos applications de plusieurs manières, en fonction des caractéristiques de l’application et de vos préférences en tant qu’administrateur. Une méthode courante consiste à les installer sous /efs/apps ou /dossiers partagés, qui sont montés en tant que partages NFS sur tous les nœuds.

Une fois que vos applications sont installées (et sous licence), vous pouvez utiliser l’éditeur de service EnginFrame pour les mettre à disposition de la communauté d’utilisateurs, comme vous l’avez fait dans le premier chapitre de ce parcours d’apprentissage.


AWS propose un large éventail de types de famille d’instance EC2, de générations et de dimensionnement pour répondre à des types de charge de travail très différents, avec des tarifs à la demande qui varient de quelques centimes à plusieurs dollars USD par heure.

Pour choisir un type d’instance, commencez par identifier les besoins spécifiques de l’application. Les exigences des applications varient en fonction : du nombre de cœurs de calcul, de la vitesse de processeur, des besoins de mémoire, des besoins de stockage, des spécifications pour la mise en réseau et du coût.

Les familles sont classées selon le type de processeur, la quantité de mémoire, le volume de stockage et la connectivité réseau disponible. La famille C ou la famille « calcul » est le plus souvent recommandée pour les charges de travail HPC. En règle générale, les types d’instances de cette famille ont approximativement le même ratio de mémoire par rapport au vCPU. Un vCPU est un processeur « hyper-threaded ». En général, deux cœurs hyper-threaded agissent comme un seul cœur physique. Au sein de chaque famille, plusieurs générations peuvent coexister. Par exemple, la famille C inclut les types d’instances c3 et c4. Le chiffre en suffixe indique la génération du type d’instance.

L’instance c4.8xlarge (haswell) est très populaire pour les applications HPC parallèles. Elle dispose d’environ 60 Gio de mémoire et 18 cœurs. Chaque famille est disponible en plusieurs tailles. Par exemple, l’instance de calcul c4.4xlarge fait la moitié de la taille de l’instance c4.8xlarge. Son tarif horaire s’élève également à environ la moitié.

Une instance peut être arrêtée à tout moment et redémarrée avec un type d’instance différent. Cette caractéristique permet de choisir le type d’instance optimal pour les charges de travail HPC.

Les autres types d’instance les plus courants pour les charges de travail HPC sont détaillés dans le tableau ci-dessous :

Type d'instance

vCPU

Mémoire

(Gio)

 Stockage

(Go)

Performances de mise en réseau

Processeur physique

Fréquence d’horloge (GHz)

EBS

Opt

c4.8.xlarge

36

60

EBS uniquement

10 Gigabit

Intel Xeon E5-2666v3

2,9

Oui

c3.8.xlarge

32

60

2 x 320 SSD

10 Gigabit

Intel Xeon E5-2680v2

2.8

Non

m4.10xlarge

40

160

EBS uniquement

10 Gigabit

Intel Xeon E5-2676v3

2,4

Oui

m4.16xlarge

64

256

EBS uniquement

20 gigabits

Intel Xeon E5-2686v4

2.3

Oui

p2.16xlarge

64

732

EBS uniquement

20 gigabits

Intel Xeon E5-2686v4

2.3

Oui

x1.32xlarge

128

1 952

2 x 1 920 SSD

20 gigabits

Intel Xeon E7-8880v3

2.3

Oui

r3.8xlarge

32

244

2 x 320 SSD

10 Gigabit

Intel Xeon E5-2670v2

2.5

Non

Pour voir une liste de tous les types d’instance disponibles, consultez les types d’instance Amazon EC2. Une fois que vous identifiez le type d’instance adapté à votre charge de travail, vérifiez la différence entre son prix à la demande et son prix spot actuel. Si votre type de charge de travail peut facilement tolérer la réclamation potentielle des instances, le recours à des instances spot peut généralement être un moyen très efficace de réduire le budget HPC.

Si vous souhaitez modifier les caractéristiques de votre cluster, un moyen facile de le faire est d’utiliser de manière dynamique la fonctionnalité « Mettre à jour la pile » proposée dans la console CloudFormation. Sachez toutefois que certaines des modifications pourraient temporairement perturber le fonctionnement du cluster. Sauf si vous en acceptez les conséquences, assurez-vous de reconfigurer vos paramètres de pile uniquement lorsqu’il n’y a aucune charge de travail sur le cluster.

Essayez cette fonctionnalité sur la pile DefaultCluster en suivant les instructions ci-dessous :

  • Instructions : modification du type d’instance sur votre cluster actuel

    1. Ouvrez la console CloudFormation en cliquant ici.
    2. Cliquez avec le bouton droit sur EnginFrame-DefaultCluster-##vosValeurs##. Sélectionnez Mettre à jour la pile.
    3. Sélectionnez Utiliser modèle en cours et cliquez sur Suivant.
      • Remarque : quand vous sélectionnez « Utiliser modèle en cours », l’assistant CloudFormation vous offre la possibilité de modifier un plus grand nombre de paramètres par rapport à la pile principale, ce qui vous permet de profiter d’une plus grande flexibilité de CfnCluster.
    4. Apportez les modifications suivantes à la configuration :
      • compute_instance_type : sélectionnez le type d’instance de votre choix pour mettre à jour vos nœuds de calcul.
      • cluster_type : sélectionnez spot. Ensuite, définissez un spot_price (prix_spot) en lui donnant une valeur que vous êtes prêt à payer en fonction du prix en vigueur sur le marché.
    5. Sélectionnez Suivant.
    6. Passez aux étapes suivantes de l’assistant jusqu’à ce que vous obteniez un aperçu des modifications, que vous devrez confirmer en sélectionnant « Mettre à jour » pour mettre à jour votre pile. Selon l’ampleur des modifications apportées, la mise à jour pourra prendre plusieurs minutes pour se propager.

Auto Scaling est une fonction d’Amazon EC2 qui vous permet de maintenir la disponibilité de votre application et d’augmenter ou de diminuer automatiquement votre capacité EC2 selon les conditions que vous définissez. Vous pouvez utiliser Auto Scaling pour vous assurer que vous exécutez le nombre souhaité d’instances Amazon EC2. 

La taille du cluster dans cet exercice est surveillée et modifiée en permanence par la fonction Auto Scaling EC2. Si vous connaissez la taille de cluster optimale pour votre charge de travail (par exemple, avec un travail MPI à plusieurs nœuds), il peut être plus rapide et plus efficace d’allouer le bon nombre de nœuds au lieu de laisser le cluster s’agrandir de façon incrémentielle.

Vous pouvez configurer votre taille de cluster Auto Scaling en suivant les instructions ci-dessous :

  • Instructions : modification des paramètres Auto Scaling sur votre cluster

    1. Ouvrez la console du groupe Auto Scaling Amazon EC2 en cliquant ici.
    2. Vous verrez que Default Cluster a créé un groupe Auto Scaling pour la flotte de calculs. La console vous fournit des informations sur le nombre d’instances dans le groupe, les limites minimum et maximum, et le nombre d’instances désiré. 
    3. Le nombre d’instances est automatiquement influencé par les politiques de dimensionnement actives sur le cluster, mais vous pouvez également modifier sa valeur manuellement. Pour modifier la taille souhaitée ou d’autres paramètres Auto Scaling, cliquez avec le bouton droit sur le groupe Auto Scaling et sélectionnez Modifier.
    4. Le volet inférieur se met à jour et indique les détails Auto Scaling. Vous pouvez modifier le nombre d’équilibreurs de charge, d’instances souhaitées, le nombre minimum et maximum d’instances (nœuds), et plus encore. Une fois terminé, sélectionnez Enregistrer.
      • Remarque : si le nombre d’instances indiqué est différent du nombre d’instances actuelles, CloudFormation créera ou supprimera des instances afin d’atteindre le nombre souhaité.

    (cliquez pour zoomer)