Je progresse bien avec Dask.delayed. En tant que groupe, nous avons décidé de consacrer plus de temps à travailler avec les graphiques en utilisant Dask.Distribution de graphes à travers les nœuds de cluster
J'ai une question à propos de distribution. Je vois le comportement suivant sur notre cluster. Je démarre par exemple 8 travailleurs sur chacun des 8 nœuds avec chacun 4 threads, disons/alors client.compute 8 graphiques pour créer les données simulées pour le traitement ultérieur. Je veux que les 8 ensembles de données soient générés un par nœud. Cependant, ce qui semble se produire est, non déraisonnable, les huit fonctions sont exécutées sur les deux premiers nœuds. Les calculs suivants sont exécutés sur les premier et deuxième noeuds. Par conséquent, je vois un manque de mise à l'échelle. Au fil du temps, les autres nœuds disparaissent de la page des travailleurs de diagnostic. Est-ce prévu? Donc, je veux d'abord distribuer les fonctions de création de données par nœud. Donc, quand je veux calculer les graphiques, maintenant je fais:
if nodes is not None:
print("Computing graph_list on the following nodes: %s" % nodes)
return client.compute(graph_list, sync=True, workers=nodes, **kwargs)
else:
return client.compute(graph_list, sync=True, **kwargs)
Cela semble configuré correctement: la barre de progression de diagnostic montre que mes données fonctions de création sont en mémoire mais ils ne démarrent pas. Si les noeuds sont omis, le calcul se déroule comme prévu. Ce problème se produit à la fois sur le cluster et sur mon bureau.
Plus d'informations: en regardant le journal du planificateur, je vois des échecs de communication.
more dask-ssh_2017-09-04_09\:52\:09/dask_scheduler_sand-6-70\:8786.log
distributed.scheduler - INFO - -----------------------------------------------
distributed.scheduler - INFO - Scheduler at: tcp://10.143.6.70:8786
distributed.scheduler - INFO - bokeh at: 0.0.0.0:8787
distributed.scheduler - INFO - http at: 0.0.0.0:9786
distributed.scheduler - INFO - Local Directory: /tmp/scheduler-ny4ev7qh
distributed.scheduler - INFO - -----------------------------------------------
distributed.scheduler - INFO - Register tcp://10.143.6.73:36810
distributed.scheduler - INFO - Starting worker compute stream, tcp://10.143.6.73:36810
distributed.scheduler - INFO - Register tcp://10.143.6.71:46656
distributed.scheduler - INFO - Starting worker compute stream, tcp://10.143.6.71:46656
distributed.scheduler - INFO - Register tcp://10.143.7.66:42162
distributed.scheduler - INFO - Starting worker compute stream, tcp://10.143.7.66:42162
distributed.scheduler - INFO - Register tcp://10.143.7.65:35114
distributed.scheduler - INFO - Starting worker compute stream, tcp://10.143.7.65:35114
distributed.scheduler - INFO - Register tcp://10.143.6.70:43208
distributed.scheduler - INFO - Starting worker compute stream, tcp://10.143.6.70:43208
distributed.scheduler - INFO - Register tcp://10.143.7.67:45228
distributed.scheduler - INFO - Starting worker compute stream, tcp://10.143.7.67:45228
distributed.scheduler - INFO - Register tcp://10.143.6.72:36100
distributed.scheduler - INFO - Starting worker compute stream, tcp://10.143.6.72:36100
distributed.scheduler - INFO - Register tcp://10.143.7.68:41915
distributed.scheduler - INFO - Starting worker compute stream, tcp://10.143.7.68:41915
distributed.scheduler - INFO - Receive client connection: 5d1dab2a-914e-11e7-8bd1-180373ff6d8b
distributed.scheduler - INFO - Worker 'tcp://10.143.6.71:46656' failed from closed comm: Stream is clos
ed
distributed.scheduler - INFO - Remove worker tcp://10.143.6.71:46656
distributed.scheduler - INFO - Removed worker tcp://10.143.6.71:46656
distributed.scheduler - INFO - Worker 'tcp://10.143.6.73:36810' failed from closed comm: Stream is clos
ed
distributed.scheduler - INFO - Remove worker tcp://10.143.6.73:36810
distributed.scheduler - INFO - Removed worker tcp://10.143.6.73:36810
distributed.scheduler - INFO - Worker 'tcp://10.143.6.72:36100' failed from closed comm: Stream is clos
ed
distributed.scheduler - INFO - Remove worker tcp://10.143.6.72:36100
distributed.scheduler - INFO - Removed worker tcp://10.143.6.72:36100
distributed.scheduler - INFO - Worker 'tcp://10.143.7.67:45228' failed from closed comm: Stream is clos
ed
distributed.scheduler - INFO - Remove worker tcp://10.143.7.67:45228
distributed.scheduler - INFO - Removed worker tcp://10.143.7.67:45228
(arlenv) [[email protected] performance]$
Cela soulève-t-il des causes possibles?
Merci, Tim
Pour que la distribution fonctionne, j'ai dû traduire des noms aux adresses IP. –
Mon problème sous-inscrit la mémoire de sorte que même lorsque toutes les données sont déplacées vers un nœud (à partir de 16), il est toujours à 25% plein. Donc je commence avec 8 nœuds/16 threads et quelques pourcents de mémoire et cela se réduit à un seul travail. Je dois réfléchir davantage à la façon de procéder. –
Je pense que cela n'a rien à voir avec la taille de la mémoire. En regardant le journal du planificateur. –