単純な Python ループの並列化
提供された Python ループは、範囲にわたって反復され、反復ごとに計算を実行します。このループを並列化する方法は複数ありますが、質問では最も簡単なアプローチを優先することが指定されています。マルチプロセッシングを使用する 2 つの簡単な方法を以下に説明します。
マルチプロセッシング モジュールによるマルチプロセッシング
マルチプロセッシング モジュールは、プロセスのプールを作成するための ProcessPool クラスを提供します。コードは次のように書き換えることができます:
import multiprocessing pool = multiprocessing.Pool(4) out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))
ここでは、4 つのプロセスのプールが作成されます。 pool.map() メソッドは、反復可能内の各要素に calc_stuff 関数を適用し、結果のタプルを返します。
concurrent.futures.ProcessPoolExecutor によるマルチ処理
またはconcurrent.futures モジュールは、プロセスの作成を簡素化する ProcessPoolExecutor クラスを提供します。そして経営陣。コードは次のようになります。
from concurrent.futures import ProcessPoolExecutor with ProcessPoolExecutor() as pool: out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))
どちらのアプローチも内部でマルチプロセッシング モジュールを利用し、Linux と他のオペレーティング システムの両方でループを並列化する簡単な方法を提供します。
以上がマルチプロセッシングを使用して単純な Python ループを簡単に並列化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。