Charges de travail des flottes

IBM Cloud® Code Engine est une plateforme sans serveur entièrement gérée qui exécute vos charges de travail conteneurisées, y compris les charges de travail de la flotte. Apprenez à gérer des flottes sur Code Engine.

Qu'est-ce qu'une flotte?

Une flotte, également appelée flotte sans serveur, est un composant informatique Code Engine qui exécute une ou plusieurs instances de code utilisateur en parallèle pour compléter une grande file d'attente de tâches à forte intensité de calcul. Les flottes peuvent se connecter à des nuages privés virtuels pour échanger en toute sécurité les données des utilisateurs lorsqu'ils se connectent à d'autres services. Contrairement aux travaux par lots, les flottes permettent une mise en file d'attente dynamique des tâches et l'isolation d'un seul locataire, et sont compatibles avec les sites vCPU et les GPU.

Comment fonctionnent les flottes?

Les flottes se composent de trois éléments principaux : les tâches, les instances et les nœuds de travail. Une tâche unique est réalisée par une seule instance de code utilisateur, qui s'exécute sur un nœud de travail. Chaque nœud de travailleur peut exécuter plusieurs tâches simultanément, ce qui permet d'effectuer de nombreuses tâches en parallèle. Lorsqu'une tâche est terminée, une nouvelle instance s'installe sur le nœud de travailleur pour effectuer la prochaine tâche disponible dans la file d'attente. Ce processus se répète sur chaque nœud de travailleur jusqu'à ce que toutes les tâches soient terminées, moment où les nœuds de travailleur sont automatiquement déprovisionnés.

En quoi les flottes sont-elles différentes des emplois?

Contrairement aux travaux par lots, qui sont principalement destinés à des tâches de petite ou moyenne envergure, les flottes sont conçues pour réaliser des tâches de grande envergure nécessitant de nombreux calculs. Le tableau ci-dessous présente les différences spécifiques entre les emplois et les flottes.

Comparaison des flottes et des emplois sur Code Engine
Caractéristique Flottes Travaux
Isolement Service exclusif Multi-locataire
Taille de la tâche Tâches importantes Tâches de petite à moyenne envergure
Implémentation File d'attente dynamique Tableau statique
Configuration de la machine Contrôle total du profil de la machine Pas de contrôle sur le profil de la machine
Connexion VPC Connexion native à un VPC existant Nécessite un chemin privé

Quelles sont les principales caractéristiques de la collaboration avec les flottes Code Engine?

Consultez les rubriques suivantes pour en savoir plus sur la collaboration avec les flottes à l'adresse Code Engine.

Mise à l'échelle automatique

Avec une flotte, vous pouvez tirer parti du parallélisme à grande échelle pour réaliser des tâches de calcul intensives. Code Engine adapte automatiquement les nœuds de travail de votre flotte pour répondre aux besoins en ressources de la manière la plus efficace possible. Vous pouvez laisser Code Engine déterminer les profils des travailleurs qui sont déployés, ou vous pouvez choisir un profil spécifique, tel qu'un type de GPU. Dans les deux cas, Code Engine adapte automatiquement le nombre de travailleurs pour obtenir le niveau d'efficacité le plus élevé.

Le nombre de travailleurs déployés est basé sur le nombre de tâches à accomplir, les ressources requises pour une instance de votre code et le nombre maximum d'instances simultanées que vous souhaitez exécuter à la fois. En ajustant ces paramètres, vous pouvez faire évoluer votre flotte pour qu'elle accomplisse aussi peu qu'une tâche ou plusieurs millions de tâches.

Par exemple, imaginez que vous ayez quatre tâches à accomplir. Chaque instance de code nécessaire à la réalisation d'une tâche requiert 1 vCPU and 2 GB memory, soit un besoin total de 4 vCPU and 8GB memory. Si vous fixez le nombre maximum d'instances simultanées à 2, Code Engine peut déployer un nœud de travailleur avec 2 vCPU and 4 GB memory pour exécuter 2 instances en même temps. Si vous fixez le nombre maximal d'instances simultanées à 4, Code Engine peut déployer deux nœuds de travail identiques pour exécuter les quatre instances en même temps sur les deux nœuds de travail. Dans le second scénario, la flotte se termine plus rapidement mais nécessite le déploiement d'un plus grand nombre de travailleurs. Gardez à l'esprit qu'il existe un nombre infini de combinaisons pour le déploiement automatique des nœuds de travail et que des nœuds de travail de différents profils peuvent être déployés.

La mise à l'échelle automatique n'est pas disponible pour les GPU. Pour déployer des GPU pour une flotte, vous devez spécifier le type de travailleur GPU à déployer.

Spécification des tâches et des instances

Lors du déploiement d'une flotte, les utilisateurs peuvent spécifier le nombre de tâches à accomplir, le nombre d'instances à exécuter en même temps, l'ordre dans lequel les tâches sont accomplies. Les flottes peuvent travailler sur de nombreuses tâches en parallèle en démarrant plusieurs instances simultanément. Toutes les instances sont créées avec la même quantité de vCPU et de mémoire que dans les spécifications de la flotte. En outre, les utilisateurs peuvent créer un fichier de spécification des tâches afin de fournir des commandes et des arguments spécifiques pour chaque tâche ou de créer des index de tâches personnalisés.

Stockage des tâches dans le COS

Vous pouvez utiliser un seau COS pour fournir les tâches de votre flotte en spécifiant un magasin de données persistant et un sous-chemin de seau lorsque vous créez la flotte. Chaque objet du seau COS représente une seule tâche.

Isolement

Contrairement aux travaux par lots, les flottes permettent d'isoler un seul locataire. Les travailleurs de votre flotte ne sont pas partagés avec d'autres utilisateurs.

Nombre de nouvelles tentatives

Chaque instance de la flotte se déroule jusqu'à son terme. Toutefois, en cas d'erreur, Code Engine redémarre l'instance. Vous pouvez limiter le nombre maximal de tentatives afin d'éviter de redémarrer les instances qui ont échoué.

Statut

Une flotte est à l'état Running lorsqu'au moins un nœud de travailleur est approvisionné. Lorsque la flotte ne fonctionne plus, elle se trouve dans l'état Succeeded si toutes les tâches se sont terminées avec succès, ou Failed si une ou plusieurs tâches ont échoué. Vous pouvez également annuler une flotte.

Pour plus d'informations, voir Comprendre l'état de votre flotte.

Profil du travailleur

Vous pouvez choisir le profil du Fleet Worker. Si vous ne spécifiez pas de profil, Code Engine choisira un profil pour vous.

Code Engine prennent en charge les familles de profils suivantes :

Équilibré
Profil d'instance
bx2-2x8
bx2-4x16
bx2-8x32
bx2-16x64
bx2-32x128
bx2-48x192
bx2-64x256
bx2-96x384
bx2-128x512
bx2a-2x8
bx2a-4x16
bx2a-8x32
bx2a-16x64
bx2a-32x128
bx2a-48x192
bx2a-64x256
bx2a-96x384
bx2a-128x512
bx2a-228x912
bx2d-2x8
bx2d-8x32
bx2d-16x64
bx3d-2x10
bx3d-4x20
bx3d-8x40
bx3d-16x80
bx3d-24x120
bx3d-32x160
bx3d-48x240
bx3d-64x320
Calcul
Profil d'instance
cx2-2x4
cx2-4x8
cx2-8x16
cx2-16x32
cx2-32x64
cx2-48x96
cx2-64x128
cx2-96x192
cx2-128x256
cx3d-2x5
cx3d-4x10
cx3d-8x20
cx3d-16x40
cx3d-24x60
cx3d-32x80
cx3d-48x120
cx3d-64x160
Mémoire
Profil d'instance
mx2-2x16
mx2-4x32
mx2-8x64
mx2-16x128
mx2-32x256
mx2-48x384
mx2-64x512
mx2-96x768
mx2-128x1024
mx2d-16x128
mx2d-64x512
mx2d-96x768
mx3d-2x20
mx3d-4x40
mx3d-8x16
mx3d-16x160
mx3d-24x240
mx3d-32x320
mx3d-48x480
mx3d-64x640
Processeur graphique (GPU)
Profil d'instance
gx3-16x80x1l4
gx3-32x160x2l4
gx3-64x320x4l4
gx3-24x120x1l40s
gx3-48x240x2l40s
gx2-8x64x1v100
gx2-16x128x1v100
gx2-16x128x2v100
gx2-32x256x2v100
gx3d-24x120x1a100p
gx3d-48x240x2a100p
gx3d-160x1792x8h100
gx3d-160x1792x8h200
gx4d-232x3840x8b300
Flexible
Profil d'instance
nxf-2x1
nxf-2x2
bxf-2x8
bxf-4x16
bxf-8x32
bxf-16x64
bxf-24x96
bxf-32x128
bxf-48x192
bxf-64x256
cxf-2x4
cxf-4x8
cxf-8x16
cxf-16x32
cxf-24x48
cxf-32x64
cxf-48x96
cxf-64x128
mxf-2x16
mxf-4x32
mxf-8x64
mxf-16x128
mxf-24x192
mxf-32x256
mxf-48x384
mxf-64x512

Certains profils peuvent ne pas être disponibles dans toutes les zones du réseau VPC. Vous pouvez utiliser la commande CLI suivante pour répertorier les profils de travailleurs pris en charge par Code Engine serverless fleets dans une région.

ibmcloud ce fleet worker profiles
  • Si vous souhaitez connaître la disponibilité et la capacité zonale de certains profils, tels que H100 et L40s, ouvrez un dossier d'assistance et sélectionnez "Virtual Private Cloud (VPC)" comme sujet.
  • Si vous avez besoin d'un certain profil VPC qui n'est pas pris en charge par les flottes aujourd'hui, ouvrez un dossier d'assistance et sélectionnez " Code Engine " comme sujet.

Comment puis-je commencer à travailler avec des flottes?

Pour créer et exécuter une flotte simple Code Engine avec l'image d'exemple icr.io/codeengine/helloworld, voir Exécuter votre première flotte Code Engine.