Tâche

Les tâches sont les blocs primaires des algorithmes décentralisés dans Manta. Une Task définie les calculs spécifiques qui sont exécutés sur chaquenoeud dans un Swarm. En utilisant manta_light, les tâches peuvent intéragir avec les données locales, accèder aux paramètres globaux et contribuer aux résultats en les partageant dans le contexte d’un Swarm.

Pour plus d’informations, veuillez vous réferer à Task.

Tâche Tâche

Intéractions avec les données locales et les données partagées

Le code:manta_light fournit trois interfaces principales qui sont essentielles pour le développement: World, Globals, et Results.

World

World est fourni dans le contexte d’exécution dans les tâches. Il permet aux tâches d’intéragir avec des variables globales partagées (Globals) et de stocker des sorties des tâches (Results). World sert comme couche de communication entre les tâches, rendant possible la synchronisation et le partage des données à travers différents noeuds. Pour plus de détails, veuillez vous référer à la documentation World.

Globals

Globals sont des variables globales partagées à travers toutes les tâches et les itérations dans un Swarm. Ces variables peuvent inclure des paramètres tels que les hyperparamètres pour l’entraînement ou d’autres paramètres de configuration qui ont besoin d’être accessible par tous les noeuds.

Il y a plusieurs suivre à connaître

../_images/light-globals-ok.png ../_images/dark-globals-ok.png

Comme les variables sont partagées par différentes tâches dans les noeuds, elles peuvent avoir plusieurs lecteurs au même moment comme le montre la précédente figure.

../_images/light-globals-error.png Tâche

Cependant, s’il y a un écrivain ou plusieurs écrivains au même moment comme illustrée sur la figure précédente, ou un écrivain et plusieurs lecteurs au même moment, vous n’avez pas la garantie sur l’ordonnancement de l’écriture et la lecture des variables. Par conséquent, les globals sont utiles quand : - plusieurs lecteurs veulent accéder à la même donnée parmi les variables globales - il y a seulement un node qui écrit sur une variable spécifique pendant que les autres noeuds n’accèdent pas à cette valeur.

Pour plus de détails, veuillez vous réferer à la classe Globals.

Results

Results permet aux tâches de stocker les sorties qui peuvent être accéder à des future iterations. Par exemple, les métriques des modèles, les parameters d’entraînement, ou des résultats intermédiaires peuvent être sauvegardés et utilisés par des tâches ultérieures.

Il y a plusieurs suivre à connaître

../_images/light-result-both-write.png ../_images/dark-result-both-write.png

En utilisant ces résultats, vous pouvez avoir plusieurs écrivains au même moment mais vous ajoutez l’information dans la base de données autant de fois qu’il y a d’écrivains.

../_images/light-result-read-write.png ../_images/dark-result-read-write.png

La lecture pendant l’écriture sont possibles. Cependant, comme l’écriture et l’écriture ne sont pas synchronisées, une lecture peut conduire à des informations manquantes.Par exemple, imaginons que trois noeuds écrivent leurs métriques. Et qu’un quatrième noeud est en train de commencer à écrire ses métriques. Mais, au même moment, un cinquième noeud sélectionne les métriques, il pourrait recevoir trois métriques venant des trois premiers noeuds, si le quatrième noeud n’a pas eu le temps de stocker ses métriques.

Pour plus de détails, veuillez vous réferer à la Results.

Local

Local fournit aux tâches l’accès aux données locales des noeuds. Ces données peuvent inclure les datasets d’entrainement, des fichiers de configuration, ou d’autres ressources qui sont stockées localement dans chacun des noeuds. Local abstrait les mécanismes de stockage des données, en permettant aux tâches de se concentrer aux traitement des données.

Pour cette version, accéder aux données locales doit être spécifié en premier quand manta_node est exécuté :

manta_node --data_folder <folder_where_data_are_stored>

Par exemple :

# In the node

└── data
    └── sensors
        ├── front_images.npz
        └── back_images.npz
manta_node --data_folder data/sensors

Veuillez vous réferer à la Local pour plus d’information détaillées sur l’intéraction avec les données locales.