Heim >Backend-Entwicklung >Python-Tutorial >Wie parallelisiert man Python-Funktionen mithilfe von Multiprocessing und parallelen Karten?
Parallele Programmierung in Python
In Python ermöglicht die parallele Programmierung die gleichzeitige Ausführung bestimmter Abschnitte eines Programms, was möglicherweise die Leistung verbessert. Um Parallelität in Python zu erreichen, ist das Multiprocessing-Modul eine beliebte Wahl.
Beispiel:
Betrachten Sie eine Codestruktur mit zwei unabhängigen Funktionen,solve1 undsolve2. Um diese Funktionen zu parallelisieren:
<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>
Dieser Code erstellt einen Verarbeitungspool, der Prozesse erzeugt, um die asynchrone Ausführung von „solve1“ und „solve2“ zu verarbeiten. Jeder Prozess nutzt einen anderen CPU-Kern für die gleichzeitige Ausführung.
Alternative Parallelisierungsoptionen:
Eine weitere Option zum Parallelisieren von Codeabschnitten ist die Verwendung einer Parallelmap. In solchen Fällen würden Sie eine Liste von Argumenten haben und auf jedes Argument parallel eine einzelne Funktion anwenden:
<code class="python">args = [A, B] results = pool.map(solve1, args)</code>
Überlegungen:
Während Threads auch sein können Die für Parallelität verwendete Global Interpreter Lock (GIL) in Python verhindert die parallele Ausführung von Python-Objekten und macht Threads für die Parallelisierung von Python-Code unwirksam.
Das obige ist der detaillierte Inhalt vonWie parallelisiert man Python-Funktionen mithilfe von Multiprocessing und parallelen Karten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!