Pergunta

Estou executando alguns grandes modelos de regressão em R em um ambiente de computação em grade.Pelo que eu sei, a grade apenas me dá mais memória e processadores mais rápidos, então acho que essa pergunta também se aplicaria para quem usa R em um computador potente.

Os modelos de regressão que estou executando têm muitas observações e diversas variáveis ​​fatoriais que possuem muitos (10 ou 100) níveis cada.Como resultado, a regressão pode se tornar computacionalmente intensiva.Percebi que quando alinho 3 regressões em um script e o envio para a grade, ele sai (trava) devido a restrições de memória.No entanto, se eu executá-lo como três scripts diferentes, ele funcionará bem.

Estou fazendo uma limpeza, então, após a execução de cada modelo, salvo o objeto do modelo em um arquivo separado, rm(list=ls()) para limpar toda a memória e, em seguida, executo gc() antes que o próximo modelo seja executado.Ainda assim, executar todos os três em um script parece travar, mas interromper o trabalho parece estar bem.

O administrador do sistema diz que dividir é importante, mas não vejo por que, se estou limpando após cada execução.3 em um script os executa em sequência de qualquer maneira.Alguém tem uma idéia de por que a execução de três scripts individuais funciona, mas a execução de todos os modelos em um script causaria problemas de memória no R?

obrigado!EXL

Foi útil?

Solução

Perguntas semelhantes que valem a pena ler:Forçando a execução da coleta de lixo em R com o comando gc() Uso de memória em R

Minha experiência tem sido que R não é excelente no gerenciamento de memória.Você pode tentar colocar cada regressão em uma função na esperança de que deixar variáveis ​​fora do escopo funcione melhor do que gc(), mas eu não prenderia a respiração.Existe um motivo específico pelo qual você não pode executar cada um em seu próprio lote?Mais informações solicitadas por Joris também ajudariam.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top