У меня есть 4 списка по 3 поплавка в каждом. У меня есть две функции (на самом деле реализованные как одна функция - другой аргумент int изменяет элемент списков, на который он действует), которые я хочу запускать параллельно. Они оба берут все списки и используют их для некоторых вычислений. Результаты первой функции — 4 числа с плавающей запятой — по одному для каждого списка — предназначены для изменения второго элемента каждого списка, а результаты второй функции предназначены для изменения третьего элемента во всех списках. Затем я хочу перейти к следующей итерации, где функции делают то же самое, но с обновленными списками (первый элемент во всех них остается постоянным).
Простой код для представления моей идеи
l1 = [a,b,c]
l2 = [d,e,f]
l3 = [g,h,i]
l4 = [j,k,l]
def func(l1, l2, l3, l4, k):
do something with the lists on element k of them
return (x1, x2, x3, x4, k)
pool = multi.Pool(processes = 2)
while nstep <= maxnsteps:
for i in range(1,3):
pool.apply_async(func, args = (xval, yval, vxval, vyval, i,))
nstep = nstep + 1
pool.close()
pool.join()
Итак, для следующего значения nstep я хочу, чтобы функции использовали обновленные версии списков со значениями, которые они вычислили на предыдущей итерации. У меня такое чувство, что я совершенно неправильно говорю об этом.