Programa Python começa a funcionar novamente depois que o PC acorda?

15

Estou executando um programa python que leva algumas horas para ser concluído. Se eu fechar a tampa do meu laptop (ou seja, eu o coloco em suspensão), o programa será iniciado novamente quando eu reabrir o meu laptop? Já faz algumas horas e tenho que sair em breve (por isso preciso fechar meu laptop), mas não quero iniciar o processo novamente. O programa começará exatamente do mesmo ponto? Qual é o comportamento padrão no Ubuntu 16.04?

Fyi, estou executando uma validação cruzada para um classificador que não usa nenhum recurso de rede - apenas CPU e RAM.

BourbonCreams
fonte

Respostas:

29

A resposta simples é sim, mas a verdade é um pouco mais complicada.

Sim, o aplicativo ainda estará em execução; será retomado com o restante dos processos do sistema. No entanto, existem coisas com estado, como conexões de rede e estados de driver gráfico. Eles precisam ser reinicializados com hardware externo e isso pode significar alguma latência de rede adicional, para começar, ou até mesmo uma desconexão / reconexão adequada (como acontece comigo na Ethernet). Em situações particularmente ruins - definitivamente exceções à regra - todo o ambiente de área de trabalho pode falhar e reiniciar.

Então, eu não posso garantir o que vai acontecer com você. Se o seu aplicativo falhar se perder a conectividade da rede, pode haver um problema. Se estiver fazendo renderização ou coisas CUDA / OpenCL, poderá ser interrompido.

Se é apenas uma coisa simples de CPU / disco, tudo bem.
Mas quem sabe com certeza. Os computadores são idiotas de todos nós.
Boa sorte.

Oli
fonte
Você estava certo, meu programa foi iniciado novamente depois que abri meu laptop e ele acabou sendo executado conforme o esperado. OT: Como o tempo que levou para mim foi importante (retornou 23 horas), você acha que isso se refere ao tempo decorrido ou à mera diferença entre o horário final e o horário inicial? Ou não é possível dizer?
precisa saber é o seguinte
Quer dizer que você executou com o timebuiltin? por exemplotime ./myscript.py
Oli
Não, o método que estou usando (cross_validation.cross_val_score) com o parâmetro verbous definido como True imprime na precisão final e no tempo de execução.
precisa saber é o seguinte
"Os computadores são idiotas de todos nós." Tão verdade!
Paddy Landau
6

Quando você suspende o sistema (coloca-o em suspensão), ele armazena todos os seus registros de CPU, etc., que representam o que está fazendo atualmente em sua RAM e, em seguida, desliga a maioria dos componentes, exceto aqueles que preservam o conteúdo da RAM e os necessários para ativar o computador novamente mais tarde (dispositivos de entrada, etc.).

Quando você acorda mais tarde, o estado anterior é restaurado e o computador continua exatamente no ponto em que você o suspendeu.

Esse é o conceito principal, é claro que, na realidade, acontece mais porque tudo isso não acontece magicamente quando você abre os dedos. Existem muitos scripts de sistema etc envolvidos que são executados antes de suspender e depois de acordar.

No entanto, a menos que você configure manualmente algo para isso, suspender o computador nunca fechará nenhum aplicativo em execução. Há um pequeno risco de que algo trava no processo, mas normalmente se funcionou uma vez, funciona sempre.

Byte Commander
fonte
2

Se o laptop entrar em suspensão (= suspender), definitivamente sim. A única coisa que pode ser interrompida são as conexões de rede ou algo semelhante em tempo real; nesse caso, depende se o programa em execução foi gravado com segurança para aceitar falhas temporárias e se recuperar.

Se o laptop desligar , definitivamente não - existe uma opção em algum lugar no Painel de Controle para decidir entre os dois comportamentos, eu acho.

Rmano
fonte
2

Se quiser ter certeza, você pode selecionar o computador para não fazer mais nada quando a tampa estiver fechada, nas opções de energia no painel de controle. Isso significa que fechar ou abrir a tampa não afetará o estado do seu computador. Dessa forma, é garantido que qualquer programa seja executado ininterruptamente.

atayenel
fonte
2
Mas seu laptop pode ficar sem bateria.
cat