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.
- 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 :
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 :