Apéndice C. Depurar con Ray
Dependiendo de tus técnicas de depuración, pasar a sistemas distribuidos podría requerir un nuevo conjunto de técnicas. Afortunadamente, herramientas como Pdb y PyCharm te permiten conectar depuradores remotos, y el modo local de Ray puede permitirte utilizar tus herramientas de depuración existentes en muchas otras situaciones. 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 componentes de este apéndice se comparten con Escalando Python con Dask, ya que son buenos consejos generales para depurar todo tipo de sistemas distribuidos.
Consejos generales de depuración con Ray
Probablemente tú tengas tus propias técnicas estándar de depuración para trabajar con código Python, y este apéndice no pretende sustituirlas. Aquí tienes algunas técnicas generales que tienen más sentido con Ray:
-
Divide las funciones que fallen en funciones más pequeñas. Puesto que
ray.remote
se programa en el bloque de una función, las funciones más pequeñas facilitan el aislamiento del problema. -
Ten cuidado con cualquier captura de alcance no intencionada.
-
Toma muestras de datos e intenta reproducirlas localmente (la depuración local suele ser más fácil).
-
Utiliza Mypy para la comprobación de tipos. Aunque no hemos incluido tipos en todos nuestros ejemplos, el uso liberal de tipos puede detectar errores complicados en ...
Get Escalando Python con Ray 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.