2017-03-16 1 views
1

J'ai un réseau de calcul avec 40 travailleurs, mais je n'ai besoin d'effectuer des calculs que sur certains hôtes. Est-il possible de limiter ou de reconstruire un réseau pour utiliser uniquement des travailleurs spécifiés?Est-il possible d'exécuter des tâches dask/distributed sur la liste des travailleurs?

+0

Pouvez-vous être plus précis? Il est difficile de dire ce que vous cherchez au-delà d'une réponse oui/non. S'il vous plaît voir [Pourquoi est "Est-il possible de ..." une question mal formulée?] (Https://softwareengineering.meta.stackexchange.com/questions/7273/why-is-is-it-possible-to-a -politique-question/7274). – EJoshuaS

Répondre

0

Oui, vous pouvez spécifier des travailleurs particuliers avec le mot-clé workers= pour client.submit, client.map, client.compute ou client.persist.

futures = client.map(func, args, workers=['worker-1', 'worker-2']) 

Voir http://distributed.readthedocs.io/en/latest/locality.html#user-control pour plus d'options

Vous pouvez également enregistrer des ressources comme GPUs avec les travailleurs et limiter les calculs à ceux-ci. Voir http://distributed.readthedocs.io/en/latest/resources.html pour plus d'informations.

+0

cela aide à limiter la liste des travailleurs, mais j'ai une situation étrange. J'ai 4 travailleurs en test, 10 tâches pour le calcul, mais seulement deux travailleurs aléatoires sont sélectionnés pour le calcul. Sur un autre calcul, deux autres travailleurs aléatoires sont sélectionnés. –

+0

J'ai trouvé la cause première de la sélection partielle des travailleurs. J'ai dispersé des données aux travailleurs: –

+0

J'ai trouvé la cause première de la sélection partielle des travailleurs. J'ai dispersé des données aux travailleurs: 'client.scatter ({'config': {}, 'données': {}}, workers = ['a', 'b', 'c', 'd ']) ' Et comme résultat j'ai eu des données dispersées partiellement et seulement sur deux travailleurs: ' {' tcp: // a ': [' config '],' tcp: // b ': [' data ' ]} ' Lorsque j'ai utilisé la diffusion j'avais besoin de données sur tous les travailleurs et tous ont été utilisés dans le calcul: ' client.scatter ({'config': {}, 'data': {}}, workers = ['a', 'b', 'c', 'd'], diffusion = Vrai) ' –