Я пытаюсь использовать многопроцессорность для вычисления некоторых комбинаций, генерируемых itertools.
Вот простая версия того, что я делаю:
import multiprocessing
import itertools
def func(comb):
x=list(comb)[0]
y=zs[x]
return x+y
if __name__ == '__main__':
cores=multiprocessing.cpu_count()
pool=multiprocessing.Pool(processes=cores)
xs=range(50)
ys=range(50)
zs=[iy+1 for iy in ys]
for r in pool.imap(func,itertools.product(xs,ys)):
print(r)
Но возникает ошибка:
NameError: имя 'zs' не определено
Как передать zs
в func
при использовании itertools.product
?
Большое спасибо за любые комментарии.