Parallele Programmierung in Python: Eine Lösung für Parallelitätsprobleme
Parallele Programmierung zielt darauf ab, die Leistung durch die gleichzeitige Ausführung mehrerer Aufgaben zu verbessern. In Python ist OpenMP, das häufig in C verwendet wird, nicht ohne weiteres anwendbar. Dieser Artikel befasst sich mit der Frage der Implementierung von Parallelität in Python-Programmen und befasst sich mit der Herausforderung, unabhängige Funktionen gleichzeitig auszuführen.
Die gegebene Codestruktur:
solve1(A) solve2(B)
erfordert die Identifizierung unabhängiger Funktionen innerhalb des Codes. In diesem Beispiel sind „solve1“ und „solve2“ zwei separate Funktionen.
Um diesen Code zu parallelisieren, sollten Sie die Verwendung des Multiprocessing-Moduls in Python in Betracht ziehen, das prozessbasierte Parallelität ermöglicht. Im gegebenen Szenario kann ein Verarbeitungspool verwendet werden:
<code class="python">from multiprocessing import Pool pool = Pool() result1 = pool.apply_async(solve1, [A]) # evaluate "solve1(A)" asynchronously result2 = pool.apply_async(solve2, [B]) # evaluate "solve2(B)" asynchronously answer1 = result1.get(timeout=10) answer2 = result2.get(timeout=10)</code>
Dieser Ansatz nutzt mehrere Prozesse, einen für jeden CPU-Kern, um die unabhängigen Funktionen gleichzeitig auszuführen. Diese Arbeitsteilung kann möglicherweise die Laufzeit des Programms verkürzen.
Eine weitere Möglichkeit, eine Liste einer einzelnen Funktion zuzuordnen, ist:
<code class="python">args = [A, B] results = pool.map(solve1, args)</code>
Es ist wichtig zu beachten, dass Threads nicht vorhanden sein sollten Wird für die Parallelität in Python verwendet, da die GIL (Global Interpreter Lock) verhindert, dass mehrere Threads gleichzeitig Python-Code ausführen, wodurch die parallele Ausführung unwirksam wird.
Das obige ist der detaillierte Inhalt vonSo erreichen Sie Parallelität in Python-Programmen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!