Le programme Python recommence à fonctionner après le réveil du PC?

15

J'exécute un programme python qui prend quelques heures. Si je ferme le couvercle de mon ordinateur portable (c'est-à-dire que je le mets en veille), le programme redémarrera-t-il lorsque je rouvrirai mon ordinateur portable? Cela fait déjà quelques heures et je dois partir bientôt (donc je dois fermer mon ordinateur portable) mais je ne veux pas recommencer le processus. Le programme démarrera-t-il exactement du même point? Quel est le comportement par défaut dans Ubuntu 16.04?

Pour info, j'exécute une validation croisée pour un classificateur qui n'utilise aucune ressource réseau - uniquement CPU et RAM.

BourbonCreams
la source

Réponses:

29

La réponse simple est oui mais la vérité est un peu plus compliquée.

Oui, l'application sera toujours en cours d'exécution; il reprendra avec le reste des processus du système. Il existe cependant des éléments avec état tels que les connexions réseau et les états du pilote graphique. Ceux-ci doivent être réinitialisés avec du matériel externe et cela peut signifier une latence réseau supplémentaire pour commencer, ou même une déconnexion-reconnexion appropriée (comme cela m'arrive sur Ethernet). Dans des situations particulièrement mauvaises - certainement des exceptions à la règle - tout l'environnement de bureau peut se bloquer et redémarrer.

Je ne peux donc pas garantir ce qui va vous arriver. Si votre application se bloque si elle perd la connectivité réseau, il peut y avoir un problème. S'il fait du rendu ou des trucs CUDA / OpenCL, cela peut casser.

Si c'est juste un truc de CPU / disque, ça devrait aller.
Mais qui sait avec certitude. Les ordinateurs nous ridiculisent tous.
Bonne chance.

Oli
la source
Vous aviez raison, mon programme a redémarré après avoir ouvert mon ordinateur portable et il a fini par fonctionner comme prévu. OT: Depuis le temps qu'il m'a fallu des choses (il est revenu 23 heures), pensez-vous que cela se réfère au temps de course ou à la simple différence entre l'heure de fin et l'heure de début? Ou n'est-il pas possible de le dire?
BourbonCreams
Vous voulez dire que vous l'avez exécuté avec le timebuiltin? par exempletime ./myscript.py
Oli
Non, la méthode que j'utilise (cross_validation.cross_val_score) avec le paramètre verbose réglé sur True s'imprime à la fin de la précision et du temps d'exécution.
BourbonCreams
"Les ordinateurs nous ridiculisent tous." Tellement vrai!
Paddy Landau
6

Lorsque vous suspendez le système (mettez-le en veille), il stocke tous ses registres de processeur, etc. qui représentent ce qu'il fait actuellement dans votre RAM, puis éteint la plupart des composants, sauf ceux qui préservent le contenu de la RAM et ceux qui sont nécessaires pour réveiller l'ordinateur. plus tard (périphériques d'entrée, etc.).

Lorsque vous le réactivez plus tard, l'état précédent est restauré et l'ordinateur continue exactement au point où vous l'aviez suspendu.

C'est le concept principal, bien sûr, en réalité, il se produit plus parce que tout cela ne se produit pas comme par magie lorsque vous vous coupez les doigts. Il existe de nombreux scripts système, etc., qui s'exécutent avant la suspension et après le réveil.

Cependant, sauf si vous avez configuré manuellement quelque chose pour ce faire, la suspension de l'ordinateur ne fermera jamais aucune application en cours d'exécution. Il y a un petit risque que quelque chose plante dans le processus, mais normalement, si cela a fonctionné une fois, cela fonctionne toujours.

Byte Commander
la source
2

Si l'ordinateur portable se met en veille (= suspension), certainement oui. Les seules choses qui peuvent être perturbées sont les connexions réseau ou quelque chose de similaire en temps réel; dans ce cas, cela dépend si le programme en cours d'exécution est écrit en toute sécurité pour accepter les échecs temporaires et récupérer.

Si l'ordinateur portable s'éteint , certainement pas --- il y a une option quelque part dans le Panneau de configuration pour décider entre les deux comportements, je pense.

Rmano
la source
2

Si vous voulez en être sûr, vous pouvez sélectionner votre ordinateur pour ne rien faire de plus lorsque le couvercle est fermé, à partir des options d'alimentation du panneau de commande. Cela signifie que la fermeture ou l'ouverture du couvercle n'aura aucun effet sur l'état de votre ordinateur. De cette façon, il est garanti que tout programme fonctionnera sans interruption.

atakanyenel
la source
2
Mais votre ordinateur portable pourrait manquer de batterie.
chat