2013-01-31 2 views
0

Est-il possible de faire taire les détails d'une exception composée contenant les erreurs IPython des travailleurs parallèles? J'ai un grand cluster (plus de 500 travailleurs) et si mon code (mauvais) jette une exception sur tous les travailleurs, cela prend une éternité pour l'exception d'analyser et de rendre dans le bloc-notes IPython. Je voudrais juste faire taire les détails des erreurs du travailleur et obtenir une seule petite exception avec les détails d'un seul travailleur, car le reste a tendance à être le même dans mon utilisation. Je sais que je peux changer mon DirectView pour pointer vers un ouvrier pour tester mon code, mais je serais très pratique pour ne pas manipuler le dview et à la place je mettrais simplement un drapeau global pour éviter les traces de pile géantes.Silence ou condenser les exceptions parallèles IPython

Répondre

1

Étape 1: poser cette question Étape 2: caisse this Pull Request

Si vous voulez juste voir la première exception, vous pouvez enregistrer un gestionnaire d'exception personnalisée qui fait exactement cela:

from IPython.parallel import error 
def only_the_first(self, etype, value, tb, tb_offset=None): 
    value.print_traceback(0) 

ip = get_ipython() 
ip.set_custom_exc((error.CompositeError,), only_the_first) 
Questions connexes