[R-br] Otimizando desempenho do Servidor - dados grandes

Leonardo Ferreira Fontenelle leonardof em leonardof.med.br
Terça Junho 2 15:02:43 BRT 2015


O R tem a mania de manter os objetos completamente na memória. Isso
simplifica o código e agiliza as operações (depois dos dados terem sido
lidos ao menos uma vez), mas por outro lado torna as operações com dados
grandes propensas a estourar a memória. (Já ouvi dizer que é mais barato
comprar RAM do que SAS, mas nunca me dei ao trabalho de conferir...) Se
você não está recebendo mensagens sobre incapacidade de alocar memória,
então talvez a memória não esteja limitando seu processamento. Ou talvez
você esteja usando memória virtual (acho que é assim que se chama no
Windows) no lugar de memória RAM.

Quem vai saber lhe informar isso é o administrador do servidor. Ele
também vai saber informar se o sistema operativo está impondo algum
limite sobre a memória e a capacidade de processamento disponíveis para
cada usuário e para cada programa.

PS:

Você pode usar a função object.size() para saber quanta memória um
objeto ocupa. Você pode encontrar outras dicas em:

 * http://stackoverflow.com/questions/1358003/tricks-to-manage-the-available-memory-in-an-r-session
 * http://adv-r.had.co.nz/memory.html[1]

Leonardo Ferreira Fontenelle[2]


Em Ter 2 jun. 2015, às 14:23, Pedro Emmanuel Alvarenga Americano do
Brasil escreveu:
> Ei Leonardo,
>
> Duas dicas boas em que eu não tinha pensado. De fato eu já consigo
> carregar os dados, mas eu gostaria mesmo é de não ficar esperando 10
> segundos pra fazer uma tabela. Assim uma edição em que eu preciso
> olhar varias tabelas pra verificar se o que eu estou fazendo está como
> esperado, eu acabo esperando horas ao longo do dia. Estou olhando o
> data.table agora e não me parece dificil.
>
> Enquanto a ajustar o tamanho da memoria que o R pode usar, pode ser de
> alguma utilidade?
>
> Queria olhar o pacote bigmemory mas parece que ele não está disponíel
> para a versão 3.1.3
>
> Pedro Brasil
>
> Em 2 de junho de 2015 12:03, Leonardo Ferreira Fontenelle
> <leonardof em leonardof.med.br> escreveu:
>> __
>> A seguinte página deve lhe apresentar as ferramentas disponíveis:
>> http://cran.r-project.org/web/views/HighPerformanceComputing.html
>>
>> Pelo que você está dizendo, parece que você já consegue carregar
>> todos os dados na memória, o problema é o tempo de processamento.
>> Talvez valha a pena começar usando uma data.table em vez de
>> data.frame. Eu costumo utilizar sempre que possível os pacotes que já
>> vêm instalados com o R, e mesmo assim eventualmente "me rendi" ao
>> data.table. Uso para microdados de inquéritos do IBGE, e
>> ocasionalmente até mesmo para dados "pequenos".
>>
>> Outra dica é utilizar apenas uma amostra de seus dados em
>> procedimentos iniciais, como por exemplo testar se um determinado
>> código funciona ou verificar a distribuição de uma variável.
>>
>> Boa sorte,
>>
>> Leonardo Ferreira Fontenelle[3]
>>
>>
>> Em Ter 2 jun. 2015, às 11:47, Pedro Emmanuel Alvarenga Americano do
>> Brasil escreveu:
>>> Amigos de R,
>>>
>>> Eu venho com um dúvida de iniciante, porque nunca trabalhei assim.
>>> Eu não entendo muito de informática por isso estou sem luz no
>>> caminho. Bom, a minha questão é que me envolvi num projeto em que os
>>> dado são na caso de centenas de milhares de linhas, com umas 150
>>> colunas.
>>>
>>> Estou trabalhando numa área de trabalho remota num servidor windows
>>> 2008. Eu não sei quais as especificaçõs do servidor, mas essa área
>>> esta servidor está servindo somente para esse fim.
>>>
>>> Então gostaria de uma luz ou do que ler para otimizar o tempo de
>>> processamento nas ediçoes e nas análises. Algum tutorial ou alguma
>>> dica que aproveite melhor o meu tempo de espera.
>>>
>>> O que ja fucei que é pouco...
>>>
>>> > memory.size(max = FALSE)
>>> [1] 1044.11
>>> > memory.size(max = T)
>>> [1] 1814.94
>>> > memory.limit(size = NA)
>>> [1] 4095
>>> >
>>>
>>> Abraço,
>>>
>>> Pedro Brasil
>>> _________________________________________________
>>> R-br mailing list R-br em listas.c3sl.ufpr.br
>>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia
>>> de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
>>> mínimo reproduzível.
>>
>>
>> _______________________________________________
>>
R-br mailing list
>> R-br em listas.c3sl.ufpr.br
>> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>>
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
código mínimo reproduzível.
>
> _________________________________________________
> R-br mailing list R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia
> de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo
> reproduzível.



Links:

  1. http://stackoverflow.com/questions/1358003/tricks-to-manage-the-available-memory-in-an-r-session
  2. http://lattes.cnpq.br/9234772336296638
  3. http://lattes.cnpq.br/9234772336296638
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150602/a0f4b320/attachment.html>


Mais detalhes sobre a lista de discussão R-br