ホームページ >バックエンド開発 >Python チュートリアル >マルチプロセッシングを使用して単純な Python ループを簡単に並列化するにはどうすればよいですか?

マルチプロセッシングを使用して単純な Python ループを簡単に並列化するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-03 16:25:12363ブラウズ

How Can I Easily Parallelize a Simple Python Loop Using Multiprocessing?

単純な 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。