Графики Dask содержат пару ключ / значение для каждой задачи.
Не зная точного контекста вашего вопроса, вы могли бы создать функцию построения графика показателей для каждого входного файла. Затем его выполнение может быть передано на аутсорсинг его собственной функции, которую вы можете дополнительно распараллелить с помощью фреймворка dask.delayed
. Вот пример кода:
import dask
def produce_dask_graph_for_filename(filename):
graph = dict()
# this task reads the data from the file
graph['data'] = (lambda x: x, filename)
# this task processes the data
graph['result'] = (lambda x: x[-1], 'data')
return graph
def compute_result(filename):
# create the filename specific graph
graph = produce_dask_graph_for_filename(filename)
# perform the computation
result = dask.get(graph, 'result')
return result
filename_list = ['file_%s' %i for i in range(5)]
futures = [dask.delayed(compute_result)(filename) for filename in filename_list]
results = dask.compute(futures)[0]
Вывод дает:
['0', '1', '2', '3', '4']
Затем вы можете визуализировать отдельные графики, используя следующую строку (убедитесь, что установлены Graphviz и Python-Graphviz)
dask.visualize(produce_dask_graph_for_filename(filename))