threads paralelismo multiprocesamiento multihilos python debugging deadlock multiprocessing

multiprocesamiento - paralelismo en python



Técnicas de depuración multiprocesamiento. (2)

Para evitar los puntos muertos en primer lugar, el aprendizaje de buenas prácticas es útil, ya que el procesamiento paralelo es bastante sutil. ¡El Pequeño Libro de Semáforos (gratis) puede ser una lectura muy agradable!

Tengo problemas para depurar una aplicación de procesos múltiples (específicamente al usar un grupo de procesos en el módulo de multiprocesamiento de Python). Tengo un punto muerto aparente y no sé qué lo está causando. El seguimiento de la pila no es suficiente para describir el problema, ya que solo muestra código en el módulo de multiprocesamiento.

¿Existen herramientas de Python o técnicas generales que se utilizan para depurar puntos muertos?


Sí, depurar puntos muertos es divertido. Puede configurar el nivel de registro para que sea más alto; consulte la documentación de Python para obtener una descripción, pero muy rápidamente:

import multiprocessing, logging logger = multiprocessing.log_to_stderr() logger.setLevel(multiprocessing.SUBDEBUG)

Además, agregue el registro de cualquier cosa en su código que se ocupe de un recurso o lo que pueda estar en disputa. Finalmente, filmado en la oscuridad: generar procesos secundarios durante una importación puede causar un problema.