Python и dask: как вызывать методы вместо функций на рабочих? - PullRequest
0 голосов
/ 01 марта 2019

У меня есть dask Client с его рабочими.

И я хочу, чтобы мои вычисления были выполнены в два этапа:

1) Запустите код предварительного расчета (ест малонастраивает объекты, медленно вычисляет и генерирует довольно большие промежуточные структуры) один раз на каждого работника, сохраняет промежуточные данные на каждого работника.

2) Запускает функцию вычисления (намного быстрее, чем предварительный расчет, выполняется много раз закаждый работник, и использует промежуточные данные, сохраненные на каждого работника).

Как я могу это сделать?

1 Ответ

0 голосов
/ 01 марта 2019

Вам не нужно делать ничего особенного, чтобы это произошло.Dask прилагает все усилия, чтобы запланировать выполнение задач на рабочих, где данные, необходимые для этих задач, уже находятся.Существуют также эвристические методы, сравнивающие размер данных и скорость передачи, а также любое отставание в работе, чтобы решить, когда стоит скопировать данные другому работнику.

Если вы не сталкиваетесь с конкретными проблемами с распределением работы, вполне вероятно, что вы просто делаете обычные вещи: написание функций, которые зависят от входных данных с использованием delayed, коллекций или интерфейса фьючерсов, все будет разумно спланированодля вас.

https://distributed.readthedocs.io/en/latest/locality.html

...