Предоставление нескольких именованных аргументов для функции многопроцессорной карты - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь распараллелить следующий фильтр, используя модуль bottleneck python 3. У меня есть массив numpy, и я хочу разбить массив на сегменты по столбцам и обработать их одновременно, чтобы, как мы надеемся, добиться меньшего времени вычислений по сравнению с его сериализованной версией.

Я попытался распараллелить, используя multiprocessing модуль. Мне нужна помощь, чтобы иметь возможность предоставить столбцы-сегменты массива, а также другие параметры для функции bottleneck.move_median(). Я разделил массив на 3 сегмента следующим образом:

input = np.random.rand(240,40*3)
nCols = int(input.shape[1]/3)
((input[:,i*nCols:(i+1)*nCols)] for i in range(3))

Как я могу предоставить именованные аргументы от move_median() до map()?

import numpy as np
import bottleneck as bn
from multiprocessing import Pool

input = np.random.rand(240,40*3)

# Serialized computation
inputFiltered = bn.move_median(input, window=181, axis=0)

# My version of parallelizing move_median
p = Pool(3)
nCols = int(input.shape[1]/3)
inputFiltered = p.map( bn.move_median, \
       ((input[:,i*nCols:(i+1)*nCols)] for i in range(3)), window=181, axis=0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...