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.