Connexion au cluster Manta et déploiement du Swarm

Connexion à un cluster Manta

L’objet Cluster est utilisé pour contrôler les Swarms, gérer les nœuds et accéder aux résultats et aux journaux au sein de la plateforme Manta. Vous trouverez ci-dessous un explication de la façon de se connecter à un cluster Manta, à la fois de manière non sécurisée et modes sécurisés, en utilisant la méthode connect.

Documentation de l’API des objets de cluster

Pour plus d’informations sur l’objet Cluster, reportez-vous à l’API de la documentation Cluster.

Connexion à un cluster

Pour vous connecter à un cluster Manta, vous utilisez le Cluster.connect() méthode qui crée un client gRPC pour la communication avec le cluster directeur.

Connexion non sécurisée

Une connexion non sécurisée peut être établie en utilisant l’hôte par défaut et ports sans spécifier de jeton de sécurité. Ce mode convient pour développement ou test dans un environnement contrôlé.

Exemple : connexion non sécurisée

from manta import Cluster
import asyncio

# Connect to the cluster using default host and ports
cluster = asyncio.run(Cluster.connect(host="localhost", port=50051))

# Check if the cluster is available
response = asyncio.run(cluster.is_available())
print(response.message)  # Output should indicate availability

Connexion sécurisée

Une connexion sécurisée nécessite un secured_token, qui est utilisé pour authentification lors de la connexion au Manager de cluster. Ce mode est recommandé pour les environnements de production où la sécurité est une préoccupation.

Exemple : connexion sécurisée

from manta import Cluster
import asyncio

# Connect securely using a secured token
secured_token = "YOUR_SECURED_TOKEN"
cluster = asyncio.run(
    Cluster.connect(
        host="localhost",
        port=50051,
        ca_port=50050,
        secured_token=secured_token
    )
)

# Check if the cluster is available
response = asyncio.run(cluster.is_available())
print(response.message)  # Output should indicate availability

Avertissement

Une fois que vous avez été connecté avec succès à votre cluster, secured_token ne doit pas être renseigné. Au lieu de cela, un jeton local certifié les fichiers seront utilisés pour accéder en toute sécurité à votre cluster.

Déploiement des Swarms à l’aide de l’objet cluster

Une fois que vous êtes connecté avec succès au cluster, vous pouvez déployer des Swarms pour exécution sur les nœuds. Le processus de déploiement implique envoyer le Swarm au Manager, l’enregistrer et le démarrer.

Vous trouverez ci-dessous un guide étape par étape pour déployer un Swarm à l’aide de l’objet Cluster.

  1. Initialiser le cluster : connectez-vous au Manta Manager en initialisant l’objet Cluster avec l’hôte et le port appropriés.

  2. Vérifier la disponibilité du cluster : Assurez-vous que le cluster est disponible en utilisant la méthode is_available().

  3. Envoyez le Swarm : utilisez la méthode send_swarm() pour enregistrer votre Swarm avec le manager.

  4. Démarrez le Swarm : utilisez la méthode start_swarm() pour lancer Swarm exécution d’un Swarm.

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

import asyncio
from manta import Cluster
from swarm import FLSwarm

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

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

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

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

    # Allow some time for the Swarm to be registered
    await asyncio.sleep(1)

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

# Run the deployment process
asyncio.run(deploy_swarm())

Explication des principales méthodes

  • Initialisation du cluster : se connecte au Manta Manager au spécifié host et port.

  • Déploiement d’un Swarm : La méthode send_swarm() enregistre le Swarm avec le Manager. Le swarm_id renvoyé peut être utilisé pour suivre le statut du Swarm.

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

Accéder aux résultats de Swarm

Une fois le Swarm déployé et exécuté, vous pouvez récupérer les résultats et les journaux en utilisant l’objet Cluster. Cela permet de surveiller et gérer efficacement des Swarms.

Exemple : accès aux journaux et aux résultats de Swarm

# Example code to access logs or results after swarm execution
logs = await cluster.collect_logs(swarm_id)
print(logs)  # Output swarm logs

Note

Voir collect_logs pour plus d’informationsinformation.

Pour des appels API détaillés et des options supplémentaires, reportez-vous à la l’API de la documentation de Cluster.

Avec ce guide, vous devriez pouvoir vous connecter à un cluster Manta, déployer des Swarms et surveiller efficacement leur exécution.