Pythonでのマルチコア並列計算の実装
Python において、マルチコア並列処理を実現する方法はいくつかあります。一般的な方法を以下に示します。
- マルチプロセッシング
- マルチプロセッシング
- スレッド化
- プール
- マルチプロセッシング
import multiprocessing
def worker(x):
return x*x
if __name__ == '__main__':
pool = multiprocessing.Pool(processes=4)
result = pool.map(worker, range(10))
print(result)
- コンカレント.フューチャー
- 同時実行可能
- ProcessPoolExecutor
- 並行処理における
import concurrent.futures
def worker(x):
return x*x
if __name__ == '__main__':
with concurrent.futures.ProcessPoolExecutor() as executor:
result = executor.map(worker, range(10))
print(list(result))
- ジョブlib
- ジョブリー
- 彼は会社の社長に就任してから会社の経営を立て直した。
- ネイティブの日本語で言い換えるとすると、ジョブライブ
from joblib import Parallel, delayed
def worker(x):
return x*x
if __name__ == '__main__':
result = Parallel(n_jobs=4)(delayed(worker)(x) for x in range(10))
print(result)
それぞれの方法に特徴と適した場面があり、用途に応じて適切な方法を選択することができます。