Parallelverarbeitung in Python: Beschleunigen Sie Ihren Code

Nutzung von Multiprocessing für effizientes Rechnen

Erfahren Sie, wie Sie die Leistung Ihres Python-Programms mit Hilfe von Parallelverarbeitungstechniken steigern können. In diesem Lehrgang werden die Grundlagen des Multiprocessing-Moduls erläutert und praktische Beispiele für die parallele Ausführung von Aufgaben gegeben.

Programmierung
Autor:in
Zugehörigkeit
Veröffentlichungsdatum

5. Februar 2024

Geändert

29. April 2025

Schlüsselwörter

Python-Parallelverarbeitung, Multiprocessing in Python, Nebenläufige Programmierung, Python-Leistung

Einführung

In modernen Anwendungen ist die Leistung entscheidend. Bei rechenintensiven Aufgaben kann die sequentielle Ausführung von Code ein Engpass sein. Das Python-Modul multiprocessing bietet eine Möglichkeit, diese Beschränkung zu umgehen, indem es die gleichzeitige Ausführung von Aufgaben auf mehreren CPU-Kernen ermöglicht. Dieses Tutorial führt Sie in die Grundlagen der parallelen Verarbeitung in Python ein und zeigt Ihnen, wie Sie die Leistung von Multiprocessing nutzen können, um Ihren Code zu beschleunigen.



Was ist Parallelverarbeitung?

Bei der Parallelverarbeitung wird eine Aufgabe in Teilaufgaben aufgeteilt, die gleichzeitig ausgeführt werden können. Dieser Ansatz kann die für die Datenverarbeitung, Berechnungen und andere Aufgaben benötigte Zeit drastisch reduzieren. In Python ermöglicht das Modul multiprocessing das Erstellen und Verwalten separater Prozesse, die gleichzeitig mit anderen laufen.

Erste Schritte mit dem Multiprocessing-Modul

Grundlegendes Beispiel: Verwendung eines Prozess-Pools

Die Klasse multiprocessing.Pool vereinfacht die Ausführung einer Funktion über mehrere Eingabewerte, indem sie die Eingabedaten auf Prozesse verteilt. Nachfolgend ein Beispiel, das zeigt, wie man die Quadrate von Zahlen gleichzeitig berechnen kann.

import multiprocessing

# Definieren einer Funktion zum Berechnen des Quadrats einer Zahl
def square(n):
    return n * n

if __name__ == "__main__":
    numbers = [1, 2, 3, 4, 5]
    # Erstellen eines Pools von Arbeitsprozessen
    with multiprocessing.Pool(processes=3) as pool:
        # Zuordnen der Quadratfunktion zur Zahlenliste
        results = pool.map(square, numbers)
    print("Squares:", results)

Erläuterung

  • Pool: Das Pool Objekt erstellt einen Pool von Arbeitsprozessen. In diesem Beispiel geben wir processes=3 an, was bedeutet, dass bis zu drei Prozesse gleichzeitig laufen werden.
  • map(): Die Funktion pool.map() wendet die Funktion square auf jedes Element in der Liste gleichzeitig an und gibt eine Liste von Ergebnissen zurück.
  • Sicherung des Hauptblocks: Der if __name__ == '__main__':-Block ist bei der Verwendung von Multiprocessing in Python unerlässlich, um das rekursive Erzeugen von Prozessen unter Windows zu vermeiden.

Fortgeschrittene Verwendung

Das Modul multiprocessing bietet zusätzliche Funktionen wie:

  • Prozessbasierte Parallelität: Erstellen einzelner Prozesse mit multiprocessing.Process.
  • Prozessübergreifende Kommunikation: Verwendung von Warteschlangen und Pipes zur gemeinsamen Nutzung von Daten zwischen Prozessen.
  • Synchronisationsprimitive: Tools wie Locks, Semaphoren und Events zur Verwaltung des gleichzeitigen Zugriffs auf gemeinsame Ressourcen.

Erforschen Sie diese fortgeschrittenen Themen, während Sie sich mit den Grundlagen des Multiprocessing vertraut machen.

Best Practices

  • Benutzen Sie den Main Guard: Fügen Sie immer if __name__ == '__main__': ein, wenn Sie Multiprocessing verwenden, um eine ordnungsgemäße Prozessbehandlung zu gewährleisten.
  • Ressourcen sorgfältig verwalten: Verwenden Sie Kontextmanager (z. B. with multiprocessing.Pool() as pool:), um sicherzustellen, dass Prozesse ordnungsgemäß geschlossen werden.
  • Profilieren Sie Ihren Code: Verwenden Sie Profiling-Tools, um festzustellen, ob die Parallelverarbeitung für Ihre spezielle Aufgabe von Vorteil ist.
  • Berücksichtigen Sie den Overhead: Denken Sie daran, dass das Erstellen von Prozessen Overhead verursacht, so dass die Parallelverarbeitung vor allem für CPU-gebundene Aufgaben von Vorteil ist.

Schlussfolgerung

Die Parallelverarbeitung mit dem Python-Modul multiprocessing kann Ihre Programme durch die gleichzeitige Ausführung von Aufgaben erheblich beschleunigen. Wenn Sie die in diesem Tutorial behandelten Techniken verstehen und anwenden, können Sie die Leistung Ihres Codes optimieren und rechenintensive Aufgaben effizienter bewältigen.

Weiterführende Literatur

Viel Spaß beim Programmieren und beim Beschleunigen Ihrer Python-Anwendungen mit paralleler Verarbeitung!

Weitere Artikel erkunden

Hinweis

Hier finden Sie weitere Artikel aus derselben Kategorie, die Ihnen helfen, tiefer in das Thema einzutauchen.

placeholder

placeholder
Keine Treffer
Zurück nach oben

Wiederverwendung

Zitat

Mit BibTeX zitieren:
@online{kassambara2024,
  author = {Kassambara, Alboukadel},
  title = {Parallelverarbeitung in Python: Beschleunigen Sie Ihren Code},
  date = {2024-02-05},
  url = {https://www.datanovia.com/de/learn/programming/python/advanced/parallel-processing/fundamentals.html},
  langid = {de}
}
Bitte zitieren Sie diese Arbeit als:
Kassambara, Alboukadel. 2024. “Parallelverarbeitung in Python: Beschleunigen Sie Ihren Code.” February 5, 2024. https://www.datanovia.com/de/learn/programming/python/advanced/parallel-processing/fundamentals.html.