Как запустить группу узлов вместе с Dask - PullRequest
1 голос
/ 13 марта 2019

У меня есть график обработки изображений, и я хочу обработать много изображений в пакетном режиме. Мой график выглядит следующим образом: My graph made from delayed functions

Когда я запускаю график, боке показывает путь выполнения следующим образом: How I observe it to run in bokeh

Это приводит к тому, что на моих машинах заканчивается память и происходит сбой, так как вывод изображения загрузки составляет мегабайты изображений. Я бы хотел, чтобы график работал так, потому что результат сохранения очень мал и должен быть в порядке: How I want it to run in bokeh

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

Оптимизация настройки кажется, что это было бы полезно, когда я мог бы соединить средние узлы. Это лучший способ?

1 Ответ

1 голос
/ 13 марта 2019

Dask предпочитает выполнять задачи, где память может быть освобождена, что должно быть по глубине в вашем примере. Тем не менее, это также дает вам параллелизм; так что самый простой способ может быть просто иметь одного работника.

Действительно, линейные цепочки на графике послужат хорошим примером для плавкого предохранителя. Вы можете вызвать optimize самостоятельно (dask.optimization.inline_functions, dask.optimization.fuse, не нужно настраивать) или написать функцию, которая явно вызывает каждую подзадачу по очереди в рамках одной задачи (save(process(load(..)))).

...