Python での並列プログラミング
Python では、並列プログラミングによりプログラムの特定のセクションを同時に実行できるため、パフォーマンスが向上する可能性があります。 Python で並列処理を実現するには、マルチプロセッシング モジュールが一般的な選択肢です。
例:
2 つの独立した関数solve1 とsolve2 を含むコード構造を考えてみましょう。これらの関数を並列化するには:
<code class="python">from multiprocessing import Pool pool = Pool() result1 = pool.apply_async(solve1, [A]) # Asynchronously evaluate solve1(A) result2 = pool.apply_async(solve2, [B]) # Asynchronously evaluate solve2(B) answer1 = result1.get(timeout=10) answer2 = result2.get(timeout=10)</code>
このコードは、solve1 とsolve2 の非同期実行を処理するプロセスを生成する処理プールを作成します。各プロセスは同時実行に異なる CPU コアを利用します。
代替並列化オプション:
コードのセクションを並列化するためのもう 1 つのオプションは、並列マップを使用することです。このような場合、引数のリストを用意し、単一の関数を各引数に並行して適用します。
<code class="python">args = [A, B] results = pool.map(solve1, args)</code>
考慮事項:
一方、スレッドは同時実行に使用される Python の Global Interpreter Lock (GIL) は、Python オブジェクトの並列実行を妨げ、スレッドを Python コードの並列化に無効にします。
以上がマルチプロセッシングと並列マップを使用して Python 関数を並列化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。