Dask Scatter транслировать список - PullRequest
0 голосов
/ 11 июня 2018

Каков подходящий способ рассеять широковещательную рассылку список с использованием распределенного Dask?

случай 1 - перенос списка:

[future_list] = client.scatter([my_list], broadcast=True)

случай 2 - не переноссписок:

future_list = client.scatter(my_list, broadcast=True)

В документации Dask я видел оба примера: 1.упаковка (см. нижний пример) и 2.не упаковка .В моем опыте случай 1 - лучший подход, в случае 2 построение графа Даска (большого в моем случае использования) занимает намного больше времени.

Что может объяснить разницу во времени построения графа?Это ожидаемое поведение?

Заранее спасибо.

Томас

1 Ответ

0 голосов
/ 11 июня 2018

Если вы вызываете scatter с list, то Dask будет считать, что каждый элемент этого списка должен быть разбросан независимо.

a, b, c = client.scatter([1, 2, 3], ...)

Если вы не хотите этого, если вы на самом деле просто хотите, чтобы вашсписок, который нужно переместить как один фрагмент данных, затем следует обернуть его в другой список

[future] = client.scatter([[1, 2, 3]], ...)
...