Я пытаюсь найти правильный синтаксис для использования цикла for с задержкой dask. Я нашел несколько учебных пособий и других вопросов, но ни один из них не подходит для моего состояния, которое является чрезвычайно базовым.
Во-первых, это правильный способ параллельного запуска цикла for?
%%time
list_names=['a','b','c','d']
keep_return=[]
@delayed
def loop_dummy(target):
for i in range (1000000000):
pass
print('passed value is:'+target)
return(1)
for i in list_names:
c=loop_dummy(i)
keep_return.append(c)
total = delayed(sum)(keep_return)
total.compute()
Это произведено
passed value is:a
passed value is:b
passed value is:c
passed value is:d
Wall time: 1min 53s
Если я запускаю это последовательно,
%%time
list_names=['a','b','c','d']
keep_return=[]
def loop_dummy(target):
for i in range (1000000000):
pass
print('passed value is:'+target)
return(1)
for i in list_names:
c=loop_dummy(i)
keep_return.append(c)
это на самом деле быстрее.
passed value is:a
passed value is:b
passed value is:c
passed value is:d
Wall time: 1min 49s
Я видел примеры, где говорилось, что у Даска есть небольшое количество накладных расходов, но это, кажется, занимает достаточно много времени, чтобы оправдать, нет?
Мой фактический цикл for включает более сложные вычисления, когда я строю модель для различных целей.