Capítulo 6. Programación avanzada de tareas: Futuros y amigos
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
El flujo computacional de Dask sigue estos cuatro pasos lógicos principales, que pueden ocurrir de forma concurrente y recursiva para cada tarea:
-
Recoge y lee los datos de entrada.
-
Define y construye el gráfico de cálculo que representa el conjunto de cálculos que hay que realizar con los datos.
-
Ejecuta el cálculo (esto ocurre cuando ejecutas
.compute()
). -
Pasa el resultado como dato al siguiente paso.
Ahora introducimos más formas de controlar este flujo con futuros. Hasta ahora, has visto sobre todo operaciones perezosas en Dask, en las que Dask no hace el trabajo hasta que algo fuerza el cómputo. Este patrón tiene una serie de ventajas, entre ellas que permite al optimizador de Dask combinar pasos cuando hacerlo tiene sentido. Sin embargo, no todas las tareas se adaptan bien a la evaluación perezosa. Un patrón común que no se adapta bien a la evaluación lazy es fire-and-forget, en la que llamamos a una función por su efecto secundario1 y nos preocupamos necesariamente del resultado. Intentar expresar esto con la evaluación perezosa (por ejemplo, dask.delayed
) da lugar a bloqueos innecesarios para forzar el cálculo. Cuando la evaluación perezosa no es lo que necesitas, puedes explorar los futuros de Dash. Los futuros se pueden utilizar para mucho más que disparar y olvidar, y puedes devolver ...
Get Escalando Python con 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.