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

В Python модуль multiprocessing может использоваться для параллельного запуска функции с диапазоном значений. Например, это дает список первых 100000 оценок f.

def f(i):
    return i * i

def main():
    import multiprocessing
    pool = multiprocessing.Pool(2)
    ans = pool.map(f, range(100000))

    return ans

Можно ли сделать то же самое, когда f принимает несколько входных данных, но изменяется только одна переменная? Например, как бы вы распараллелили это:

def f(i, n):
    return i * i + 2*n

def main():
    ans = []
    for i in range(100000):
        ans.append(f(i, 20))

    return ans
17
задан malana 13 August 2015 в 22:45
поделиться