2016-12-22 2 views
3

Je me demande simplement s'il y a du code python ou des magies que je peux exécuter pour redémarrer le cluster ipython. Il semble que chaque fois que je change mon code, il doit être redémarré.Puis-je redémarrer un cluster iPython à partir d'un ordinateur portable?

+0

Je me demande s'il y a une extension de cahier qui pourrait faire ceci mais j'aurais des doutes au sujet de l'exécution de code dans le cahier qui le relance, pourrait résulter en une boucle infinie de relance-exécution. –

Répondre

0

Une idée simple, semble trop pour la production "aki":

Configuration du Client et définir une fonction simple pour les tests.

import ipyparallel as ipp 
c = ipp.Client() 
dv = c[:] 

# simple function 
@dv.remote(block=True) 
def getpid(): 
    import os 
    return os.getpid() 

getpid() 
[1994, 1995, 1998, 2001] 

Définir une fonction pour redémarrer le cluster. shutdown avec targets='all' et hub=True devrait tuer le cluster entier. Ensuite, démarrez un nouveau cluster avec la commande magique ! ou %sx.

import time 
def restart_ipcluster(client): 
    client.shutdown(targets='all', hub=True) 
    time.sleep(5) # give the cluster a few seconds to shutdown 

    # include other args as necessary 
    !ipcluster start -n4 --daemonize 
    time.sleep(60) # give cluster ~min to start 

    return ipp.Client() # with keyword args as necessary 

Un inconvénient de cette approche est que le DirectView doit être réaffecté et toute fonction décorée avec dv.remote ou dv.parallel doit être ré-exécuté.

c = restart_ipcluster(c)  
dv = c[:] 

@dv.remote(block=True) 
def getpid(): 
    import os 
    return os.getpid() 

getpid() 
[3620, 3621, 3624, 3627] 

Lecture de la source pour ipyparallel Client, la méthode shutdown mentionné ci-dessus a un argument mot-clé, restart=False, mais il est actuellement pas mis en œuvre. Peut-être que les développeurs travaillent sur une méthode fiable.

+0

Merci pour la suggestion; Je vais essayer. Y a-t-il une raison pour laquelle, par conception, l'ordinateur principal n'a aucun contrôle de processus? – cjm2671