Я пытаюсь распараллелить обработку на массиве numpy.Я хотел бы разделить массив на подмассивы и отправить каждый массив своему многопроцессорному рабочему (число cpus-1).Следующий код работает хорошо, и каждый работник получает часть массива (индексы массива) в функции f:
pool.map_async(f, [slice(i, i + step) for i in range(start, stop, step)])
Я попробовал аналогичный подход с starmap_async, потому что мне нужно отправить больше параметров в функцию,Здесь список начальных и конечных пикселей подмассивов (матов) составлен в отдельном утверждении.Однако в этом случае активируется только один работник, и в него передается весь список (а не только первый элемент).
mats = [(i, i + part) for i in range(0, shp[1], part)]
pool.starmap_async(f, [(mats, 0.4, 0.9, shp, shp_o)])
Это функция функции starmap или я выполняю ее неправильно?Любые комментарии приветствуются.