Utilisation de machines virtuelles Spot dans Azure CycleCloud

Azure CycleCloud prend en charge le déploiement de machines virtuelles Spot dans nodearrays pour réduire considérablement le coût opérationnel des clusters.

Attention

Les machines virtuelles Spot ne sont pas appropriées pour toutes les charges de travail et les types de cluster. Ils n’offrent aucun contrat SLA pour la disponibilité ou la capacité. Ils sont « préemptibles » ou « basse priorité » et peuvent être supprimés par l’infrastructure Azure pour gérer la capacité et à mesure que les prix Spot changent.

Configuration d’un Nodearray pour Spot

Pour activer Spot pour un nodearray, il vous suffit de définir Interruptible la valeur true sur la [[nodearray]] section.

CycleCloud permet aux clusters de spécifier un MaxPrice pour les instances Spot. Étant donné que le prix Spot peut s’ajuster régulièrement et peut varier considérablement entre les régions et les références SKU, les MaxPrice utilisateurs peuvent contrôler le prix maximal (en $/heure) qu’ils sont prêts à payer pour une machine virtuelle. Par défaut, CycleCloud définit MaxPrice=-1 lorsqu’il n’est pas spécifié autrement, ce qui signifie « ne pas supprimer en fonction du prix Spot ». Avec ce paramètre, les instances ne seront supprimées qu’en raison des modifications apportées aux demandes de capacité ou à d’autres décisions au niveau de la plateforme.

Consultez la tarification Spot pour plus d’informations sur la tarification variable des instances Spot.

Pour la plupart des applications HPC, MaxPrice=-1 il s’agit d’un bon choix par défaut. Toutefois, si un nodearray prend en charge la mise à l’échelle automatique à sélection multiple sur une plage de références SKU de machine virtuelle, MaxPrice il peut également être personnalisé pour créer une préférence pour les références SKU à prix inférieur dans la liste à sélection multiple.

[cluster demo]

  [[nodearray execute]]
  Interruptible = true
  MaxPrice = 0.2

Pour plus d’informations, consultez Spot Machines Virtuelles dans le guide du modèle de cluster.

Éviction de machine virtuelle Spot

CycleCloud surveille les évictions spot via la fonctionnalité Événements planifiés . Lorsqu’un événement de préemption spot est détecté, CycleCloud est averti par la machine virtuelle et l’instance est déplacée dans un état d'« attente d’éviction ».

Forum Aux Questions (FAQ)

L’utilisation de Spot avec CycleCloud présente des considérations spécifiques aux charges de travail HPC et à la mise à l’échelle automatique CycleCloud.

Quand dois-je envisager d’utiliser Spot ?

  • Vos emplois individuels sont-ils relativement courts?
    • Une bonne règle est que les travaux qui s’exécutent en moins d’une heure peuvent être adaptés aux instances Spot, car une progression relativement faible sera perdue si l’instance est supprimée.
  • Votre planificateur retente-t-il automatiquement les tâches de nouvelle file d’attente sur les hôtes qui échouent ?
  • Vos travaux sont-ils sécurisés pour réexécuter si l’hôte est supprimé pendant l’exécution ?
    • En général, les instances spot sont optimales pour les charges de travail sans état.
  • La réduction du coût de l’exécution est-elle plus importante que le temps d’achèvement ?
    • Spot est souvent parfait pour les charges de travail qui peuvent être planifiées dans des files d’attente de faible priorité ou back-fill localement.
    • Il s’agit de l’un des cas où Spot peut être approprié même pour les travaux MPI courts.

Quand dois-je éviter d’utiliser Spot ?

  • Si vos emplois sont étroitement couplés à des emplois HPC (par exemple, des emplois MPI), ils ne sont probablement pas de bons candidats pour Spot.
  • Si votre travail est critique et/ou a une échéance pour l’achèvement, les instances de priorité régulière peuvent être mieux adaptées, car les évictions et les nouvelles tentatives peuvent prolonger le délai d’achèvement.
    • Toutefois, il peut s’agir d’une excellente opportunité de configurer votre cluster afin d’utiliser une combinaison d’instances de priorité régulière et Spot pour garantir que l’échéance est respectée tout en essayant de réduire le runtime et le coût en ajoutant des instances Spot.
  • Si vos travaux ne sont pas sûrs de réexécuter, Spot doit être évité.
    • Par exemple, si votre travail modifie une base de données pendant l’exécution, la ré-exécution automatique du travail peut entraîner des erreurs ou des résultats non valides.
  • Si vos runtimes de travaux sont très longs, Spot peut ne pas être adapté.
    • Pour les processus longs, les chances d’éviction spot et le coût de temps des nouvelles tentatives augmentent.
    • Toutefois, il s’agit d’un cas qui peut nécessiter une mesure au cas par cas.

Éviction / Préemption

Pour plus d’informations sur l’éviction spot dans Azure, consultez la stratégie d’éviction Spot .

Q. CycleCloud peut-il suivre les évictions/préemptions d’instance Spot ?

R. Oui. Un événement d’éviction Spot génère une notification de journal des événements dans la page de l’interface utilisateur clusters.

Q. Comment les utilisateurs sont-ils avertis de l’éviction ?

R. Une fois qu’un nœud CycleCloud est supprimé, les utilisateurs verront un message de journal dans le journal des événements de l’interface utilisateur CycleCloud pour le cluster. Les utilisateurs peuvent également s’inscrire pour recevoir un événement de CycleCloud via Azure EventGrid une fois qu’une instance spot est supprimée.

  • Les utilisateurs peuvent rechercher une notification d’éviction sur l’ordinateur 30 secondes avant l’éviction. Pour plus d’informations sur l’inscription à l’événement, consultez Les événements planifiés .
  • En général, l’éviction doit être considérée comme similaire à l’extraction du plug-on sur un ordinateur local, et elle doit être gérée de la même manière.
  • IMPORTANT Les gestionnaires d’événements ne doivent pas accuser réception de l’événement d’éviction Spot, car le gestionnaire d’événements Cyclecloud peut ne pas recevoir l’événement s’il est reconnu.

Q. À quelle fréquence l’éviction se produit-elle ?

R. Le taux d’éviction est très variable et dépend en grande partie des changements de demande dans l’ensemble de la région.

Q. Pourquoi les instances sont-elles supprimées ?

R. Les machines virtuelles Spot ne garantissent pas la disponibilité et peuvent être supprimées à tout moment. Pour plus d’informations, consultez la documentation de la machine virtuelle Spot . Si un nodearray a défini une MaxPrice instance, les instances sont supprimées si le prix Spot augmente au-dessus du MaxPrice. Cela tend à être rare puisque le prix Spot se déplace très lentement. Voici quelques scénarios susceptibles de déclencher une éviction :

  1. Les réductions de la capacité Spot à mesure que la demande de machines virtuelles de priorité régulière augmente.
  2. Événements de niveau plateforme tels que la maintenance matérielle planifiée.

Comment mon flux de travail est-il affecté par l’éviction ?

Q. Que se passe-t-il pour mes travaux lorsqu’une instance Spot est supprimée ?

R. Sauf si les travaux sont codés pour gérer la notification d’éviction de 30 secondes et la gérer de manière appropriée, le nœud est simplement arrêté et le travail a échoué (et j’espère qu’il a été re-essayé).

Q. Les nœuds sont-ils supprimés du cluster ?

R. Oui, les nœuds sont nettoyés dans l’interface utilisateur CycleCloud. Dans les planificateurs pris en charge, les nœuds sont également nettoyés dans le planificateur.

Q. Les travaux doivent-ils être réexécuter ?

R. En général, il s’agit du travail du planificateur pour réessayer / réexécuter les travaux qui sont supprimés. Toutefois, de nombreuses classes de travail ne sont pas tolérantes aux nouvelles tentatives (par exemple, si elles écrivent des données partielles dans un stockage persistant au fur et à mesure qu’elles s’exécutent). Ces travaux peuvent ne pas être bons candidats pour l’exécution sur des instances Spot.

Q. Puis-je utiliser une combinaison de machines virtuelles Spot et à la demande/de priorité régulière ?

R. Oui. Vous pouvez utiliser des nœuds Spot (Interruptible) et non Spot distincts pour créer un mélange de spot et de priorité régulière. L’utilisation d’un mélange de types d’instances nécessite généralement de prendre certaines décisions de configuration en fonction des exigences et du planificateur choisi par l’utilisateur. Voici quelques configurations courantes :

  • Séparez Spot et Regular-Priority machines virtuelles dans des files d’attente distinctes dans le planificateur.
    • Cette configuration permet au submitter de cibler facilement les travaux au niveau du type de machine virtuelle approprié
  • Créez un pool de ressources volumineux unique avec Spot et Regular-Priority instances.
    • Cette configuration peut être utile pour les charges de travail hautement évolutives qui utilisent un petit pourcentage d’instances de priorité régulière pour garantir la progression et un pourcentage important de Spot pour réduire les coûts et l’exécution.

Q. Puis-je modifier la stratégie d’éviction spot pour les nodearrays CycleCloud ?

R. Oui. Vous pouvez définir l’attribut directement sur le nodearray pour modifier la EvictionPolicy stratégie Delete ou Deallocate (par défaut : Delete). Toutefois, cela n’est actuellement utile que pour les mise à l’échelle automatique personnalisées qui gèrent les désallocations de manière appropriée. Les mise à l’échelle automatique Azure CycleCloud actuelles s’attendent à ce que les instances Spot soient supprimées lors de l’éviction.

Prise en charge du planificateur pour l’éviction Spot dans CycleCloud

Consultez le guide spécifique au planificateur pour obtenir des informations détaillées sur l’implémentation CycleCloud de votre planificateur.

Q. Comment le mise à l’échelle automatique pour mon Planificateur gère-t-il l’éviction Spot ?

R. Tous les mise à l’échelle automatique pour les planificateurs intégrés/pris en charge (HTCondor, GridEngine, PBS Professional, Slurm, LSF) tentent de gérer correctement les évictions Spot. En général, l’instance supprimée est supprimée du Planificateur et si la demande de capacité est supérieure à la nouvelle capacité disponible après éviction, l’autoscaler remplace l’instance.

Les mise à l’échelle automatique personnalisées doivent être générées pour s’attendre à ce que les évictions Spot ou les défaillances générales de l’ordinateur soient gérées avec grâce.

Q. Que dois-je m’attendre à ce que les travaux qui s’exécutent sur l’instance supprimée ?

R. Il s’agit en grande partie de l’utilisateur à configurer lors de l’envoi du travail. Certains planificateurs, tels que GridEngine, permettent également à l’action par défaut d’être configurée par file d’attente. Par défaut, tous les déploiements de planificateurs CycleCloud intégrés, à l’exception de HTCondor, sont configurés pour marquer les travaux comme ayant échoué lorsque le nœud sur lequel ils s’exécutent est supprimé ou arrêté de façon inattendue. Ce comportement est par conception, car seul l’utilisateur peut savoir si ses travaux peuvent être retentés en toute sécurité.