Apéndice C. Depuración de Dask

Dependiendo de tus técnicas de depuración, pasar a sistemas distribuidos podría requerir un nuevo conjunto de técnicas. Aunque puedes utilizar depuradores en modo remoto, a menudo requiere más trabajo de configuración. También puedes ejecutar Dask localmente para utilizar tus herramientas de depuración existentes en muchas otras situaciones, aunque -haznos caso- un número sorprendente de errores difíciles de depurar no aparecen en modo local. Dask tiene un enfoque híbrido especial. Algunos errores ocurren fuera de Python, lo que los hace más difíciles de depurar, como los errores de contenedor fuera de memoria (OOM), los fallos de segmentación y otros errores nativos.

Nota

Algunos de estos consejos son comunes a todos los sistemas distribuidos, incluidos Ray y Apache Spark. Como tal, algunos elementos de este capítulo se comparten con High Performance Spark, segunda edición, y Scaling Python with Ray.

Uso de depuradores

Hay algunas opciones diferentes en para utilizar depuradores en Dask. Tanto PyCharm como PDB admiten la conexión a procesos de depuración remotos, pero averiguar dónde se está ejecutando tu tarea y también configurar el depurador remoto puede ser todo un reto. Para más detalles sobre la depuración remota con PyCharm, consulta el artículo de JetBrains "Depuración remota con PyCharm". Una opción es utilizar epdb y ejecutar import epdb; epdb.serve() dentro de un actor. La opción más sencilla, que no es perfecta, es hacer que Dask ...

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.