multiprocessingライブラリを用いることで、python3では簡単にマルチプロセスを走らせることができる。
基本的な使い方は下記の通り。
from multiprocessing import Pool:
with Pool(number_of_processes) as p: returnValueList=p.map(function,argList)
ループが登場する際には、そのループの処理を関数化することにより、簡単に高速化が期待できることになる。
具体的に、multiprocessingを利用する前のsingle processとmulti processの場合のコードの変化を見てみよう。
関数に引数がない場合にはその差が分かりやすい。
[single process]
for arg in argList: function,argList
[multi process]
from multiprocessing import Pool
with Pool(number_of_processes) as p:
p.map(function,argList)
関数に引数があるときは、下記の通りになる。
[single process]
for arg in argList:
returnValueList.append(function,argList)
[multi process]
from multiprocessing import Pool
with Pool(number_of_processes) as p:
returnValueList=p.map(function,argList)
尚、ループ内の処理を関数化していることが、基本的な利用条件となる。