Python では、multiprocessing
モジュールを使用して、値の範囲で関数を並列に実行できます。たとえば、これは f の最初の 100000 回の評価のリストを生成します。
def f(i):
return i * i
def main():
import multiprocessing
pool = multiprocessing.Pool(2)
ans = pool.map(f, range(100000))
return ans
f が複数の入力を取り、変数が 1 つしか変化しない場合、同様のことができますか? たとえば、これをどのように並列化しますか。
def f(i, n):
return i * i + 2*n
def main():
ans = []
for i in range(100000):
ans.append(f(i, 20))
return ans