Déployer des Swarms

Une fois que vous avez réussi à vous connecter au cluster, vous pouvez déployer des swarms pour qu’ils soient exécutés sur vos noeuds. Le processus de déploiement implique d’envoyer le swarm au Manager, l’enregistrer et le démarrer.

Ce dessosu est un guide étape par étape pour déployer un swarm en utilisant Cluster

  1. Initialiser le Cluster: Connectez vous au Manager Manta en initialisant Cluster avec une hôte et un port approprié.

  2. Vérification de la disponibilité du cluster: Assurez vous que le cluster soit disponible en utilisant la méthode is_available()

  3. Send the Swarm: Register your swarm with the manager using the send_swarm() method.

  4. Démarrer le Swarm: Utiliser la méthode start_swarm() pour initialiser l’exécution du Swarm.

Exemple: Déploiement et exécution d’un Swarm

from manta import Cluster
from swarm import FLSwarm

# Initialize the Cluster object with the Manager's host and port
cluster = Cluster.connect(host="localhost", port=50051, ca_port=50050)

# Ensure the cluster is available
response = cluster.is_available()
print(response.message)  # Should print "Available"

# Define a Swarm object, e.g., a Federated Learning Swarm
swarm = FLSwarm()

# Send the Swarm to the Manager
swarm_response = cluster.send_swarm(swarm)
swarm_id = swarm_response.swarm_id
print(f"Swarm registered with ID: {swarm_id}")

# Start the Swarm
start_response = cluster.start_swarm(swarm_id)
print(start_response.message)  # Should confirm that the swarm has started

Explication des méthodes clés

  • Initialisation du cluster: Connectez vous à Manta Manager en spécifiant host and port.

  • Déploiement d’un Swarm: La méthode send_swarm() enregistre le swarm dans un manager. Le swarm_id retourné peut être utilisé pour suivre le status du swarm.

  • Exécution du Swarm: La méthode start_swarm() déclenche l’exécution du swarm sur les noeuds connectés. La réponse indique si le Swarm a démarré avec succès.

Note

Vous pouvez aussi utiliser deploy_swarm au lieu de send_swarm et start_swarm pour faire les deux requêtes en une seule requête.