Pythonを使用してマルチコアで並列処理を行う方法
Python でマルチコア並列処理を行うには、次のようなさまざまな方法があります。
- マルチプロセス
- 処理
- 一行に結合する
from multiprocessing import Process
def func():
# 在此处编写需要并行处理的代码
if __name__ == '__main__':
processes = []
for i in range(4):
p = Process(target=func)
processes.append(p)
p.start()
for p in processes:
p.join()
- 並行処理
- ProcessPoolExecutor
- 送信する
from concurrent.futures import ProcessPoolExecutor
def func():
# 在此处编写需要并行处理的代码
if __name__ == '__main__':
with ProcessPoolExecutor(max_workers=4) as executor:
futures = [executor.submit(func) for _ in range(4)]
for future in futures:
future.result()
- ジョブとライブラリ
- そのままお使いいただけます。
from joblib import Parallel, delayed
def func():
# 在此处编写需要并行处理的代码
if __name__ == '__main__':
Parallel(n_jobs=4)(delayed(func)() for _ in range(4))
具体のニーズに応じて最適な方法を選択して使用できる、マルチコア並列処理を実装するための一般的な方法を以下に示します。