Kapitel 6. Fortgeschrittenes Zeitplanungsprogramm für Aufgaben: Futures und Freunde

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Der Berechnungsablauf von Dask folgt diesen vier logischen Hauptschritten, die gleichzeitig und rekursiv für jede Aufgabe ablaufen können:

  1. Erfasse und lese die Eingabedaten.

  2. Definiere und erstelle den Berechnungsgraphen, der die Menge der Berechnungen darstellt, die mit den Daten durchgeführt werden müssen.

  3. Führe die Berechnung durch (dies geschieht, wenn du .compute() ausführst).

  4. Gib das Ergebnis als Daten an den nächsten Schritt weiter.

Jetzt stellen wir weitere Möglichkeiten vor, diesen Fluss mit Futures zu kontrollieren. Bisher hast du in Dask vor allem faule Operationen gesehen, bei denen Dask die Arbeit erst dann ausführt, wenn etwas die Berechnung erzwingt. Dieses Muster hat eine Reihe von Vorteilen, z. B. kann der Optimierer von Dask Schritte kombinieren, wenn dies sinnvoll ist. Allerdings eignen sich nicht alle Aufgaben gut für eine faule Auswertung. Ein häufiges Muster, das sich nicht gut für eine faule Auswertung eignet, ist die Fire-and-Forget-Funktion, bei der wir eine Funktion wegen ihres Nebeneffekts aufrufen1 aufruft und sich zwangsläufig für die Ausgabe interessiert. Der Versuch, dies mit lazy evaluation (z. B. dask.delayed) auszudrücken, führt zu unnötigem Blockieren, um die Berechnung zu erzwingen. Wenn du keine "Lazy Evaluation" brauchst, ...

Get Skalierung von Python mit Dask now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.