Pythonでのマルチコア並列計算の実装

Python において、マルチコア並列処理を実現する方法はいくつかあります。一般的な方法を以下に示します。

  1. マルチプロセッシング
  2. マルチプロセッシング
  3. スレッド化
  4. プール
  5. マルチプロセッシング
import multiprocessing
def worker(x):
return x*x
if __name__ == '__main__':
pool = multiprocessing.Pool(processes=4)
result = pool.map(worker, range(10))
print(result)
  1. コンカレント.フューチャー
  2. 同時実行可能
  3. ProcessPoolExecutor
  4. 並行処理における
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))
  1. ジョブlib
  2. ジョブリー
  3. 彼は会社の社長に就任してから会社の経営を立て直した。
  4. ネイティブの日本語で言い換えるとすると、ジョブライブ
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)

それぞれの方法に特徴と適した場面があり、用途に応じて適切な方法を選択することができます。

bannerAds