2017-06-14 1 views
2

J'ai remarqué qu'une tâche d'un graphe dask peut être exécutée plusieurs fois par différents opérateurs.dask traite deux fois les tâches

Aussi je vois ce journal dans la console de planificateur (Je ne sais pas si elle peut être liée à la résilience):

« AVERTISSEMENT - Connexion perdue ... tout en envoyant résultat: Stream est fermé "

Existe-t-il un moyen d'empêcher dask d'exécuter la même tâche deux fois sur des travailleurs différents?

Notez que j'utilise: dask 0.15.0 distribué 1.15.1

Thx

Bertrand

Répondre

2

La réponse est "non". Dask se réserve le droit d'appeler votre fonction plusieurs fois.

Dask se réserve le droit d'appeler votre fonction plusieurs fois. Cela peut se produire si un travailleur tombe en panne ou si Dask effectue un certain équilibrage de charge et déplace certaines tâches autour du cluster alors qu'il est en même temps en cours de démarrage.

Cependant, vous pouvez réduire considérablement la probabilité d'une tâche en cours d'exécution à plusieurs reprises en éteignant le travail vol:

def turn_off_stealing(dask_scheduler): 
    dask_scheduler.extensions['stealing']._pc.stop() 

client.run(turn_off_stealing) 
+0

C'est une réponse assez claire :). Merci pour votre aide – Bertrand