с тестом, который отражает то, что я пытаюсь сделать. Я использовал некоторые материалы, которые @MRocklin дал мне о dask.

нтересно работать с постоянными распределенными потоками данных с функциями, аналогичными функциям проекта Pegasus:https://pegasus.isi.edu/ например. Как вы думаете, есть ли способ сделать это с помощью dask?

Я пытался реализовать что-то, что работает с кластером SLURM и DASK. Ниже я опишу свое решение в отличных строках, чтобы лучше указать мой вариант использования.

Идея состоит в том, чтобы выполнять задачи среднего размера (которые выполняются от нескольких минут до часов), которые обозначены графиком, который может иметь постоянство и может быть легко расширен. Я реализовал что-то, основываясь на планировщике Dask и его графике API. Чтобы иметь постоянство, я написал два вида декораторов:

один «памятный» декоратор, который позволяет сериализованным образом настраивать сложные аргументы, а также результаты функций (немного похоже на dask с кешем или сундуком, или как spark с его объектами RDD) иодин «отложенный» декоратор, который позволяет выполнять функции в кластере (SLURM). На практике API функций модифицируется для того, чтобы они принимали идентификаторы заданий в качестве аргументов и возвращали идентификатор задания созданного задания в кластере. Также функции сериализуются в текстовом файле "launch.py", который запускается с помощью API командной строки кластера.

Ассоциация taskname-jobid сохраняется в файле json, который позволяет управлять постоянством, используя статус задачи, возвращаемой кластером. Такой способ работы позволяет иметь вид постоянства графа. Это дает возможность легко отлаживать задачи, которые не удалось. Факт использования механизма сериализации дает возможность легко получить доступ ко всем промежуточным результатам, даже без всего рабочего процесса и / или функций, которые их генерировали. Кроме того, таким образом легко взаимодействовать с унаследованными приложениями, которые не используют такого рода механизм потока данных.

Это решение, безусловно, несколько наивно по сравнению с другими, более современными способами выполнения распределенных рабочих процессов с использованием dask и распределенных систем, но, как мне кажется, у него есть некоторые преимущества из-за его способности к сохранению (задач и данных).

Я заинтересован в том, чтобы узнать, кажется ли решение подходящим или нет, и если кажется, что оно описывает интересный, а не адресный вариант использования dask.

Если кто-то может порекомендовать мне другие способы сделать, мне тоже интересно!

Ответы на вопрос(0)

Ваш ответ на вопрос