Otimizando desempenho do Servidor - dados grandes

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

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[1] 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[2] 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@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. data.table http://cran.r-project.org/web/packages/data.table/index.html 2. http://lattes.cnpq.br/9234772336296638

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@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 <http://lattes.cnpq.br/9234772336296638>
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@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@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.

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-me... * 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@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@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@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@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-me... 2. http://lattes.cnpq.br/9234772336296638 3. http://lattes.cnpq.br/9234772336296638

Se você tem muitos objetos na memória mas nao o utiliza simultaneamente recomendo fortemente ver o pacote SOAR. Em 2 de junho de 2015 15:02, Leonardo Ferreira Fontenelle < leonardof@leonardof.med.br> escreveu:
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-me... - http://adv-r.had.co.nz/memory.html <http://stackoverflow.com/questions/1358003/tricks-to-manage-the-available-memory-in-an-r-session>
Leonardo Ferreira Fontenelle <http://lattes.cnpq.br/9234772336296638>
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@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 <http://lattes.cnpq.br/9234772336296638>
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@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@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@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@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.
participantes (3)
-
Leandro Marino
-
Leonardo Ferreira Fontenelle
-
Pedro Emmanuel Alvarenga Americano do Brasil