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.

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.


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.


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.


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.


2
Mas seu laptop pode ficar sem bateria.
cat
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.