Python: эффективный обходной путь для многопроцессорной обработки функции, являющейся членом данных класса, внутри этого класса

Я знаю оразличный обсуждение изограничения многопроцессорного модуля при работе с функциями, являющимися членами данных класса (из-за проблем с перебором).

Но есть ли другой модуль или какой-нибудь обходной путь в многопроцессорной обработке, который позволяет что-то вроде следующего (особенно без принудительного применения определения функции параллельно, чтобы существовать вне класса)?

class MyClass():

    def __init__(self):
        self.my_args = [1,2,3,4]
        self.output  = {}

    def my_single_function(self, arg):
        return arg**2

    def my_parallelized_function(self):
        # Use map or map_async to map my_single_function onto the
        # list of self.my_args, and append the return values into
        # self.output, using each arg in my_args as the key.

        # The result should make self.output become
        # {1:1, 2:4, 3:9, 4:16}


foo = MyClass()
foo.my_parallelized_function()
print foo.output

Примечание: я могу легко сделать это, перемещаяmy_single_function вне класса и прохождения что-то вродеfoo.my_args кmap или жеmap_async команды. Но это толкает параллельное выполнение функции за пределыMyClass.

Для моего приложения (распараллеливание большого запроса данных, который извлекает, объединяет и очищает ежемесячные сечения данных, а затем добавляет их в длинный временной ряд таких сечений), очень важно иметь эту функциональностьinside the class поскольку разные пользователи моей программы будут создавать разные экземпляры класса с разными временными интервалами, разными приращениями времени, разными подмножествами данных для сбора и т. д., все это должно быть связано с этим экземпляром.

Таким образом, я хочу, чтобы работа по распараллеливанию также выполнялась экземпляром, так как он владеет всеми данными, относящимися к распараллеленному запросу, и было бы глупо пытаться написать какую-то хакерскую функцию-обертку, которая связывается с некоторыми аргументами и живет вне класс (Тем более, что такая функция не является общей. Для нее потребуются все виды специфики внутри класса.)

Ответы на вопрос(3)

Ваш ответ на вопрос