R + GPU (Era: Dá pra Rodar o R nos Tablets ANDROID??)

Jogando lenha na fogueira (: gputools promete otimizações incríveis usando a tecnologia CULA da nVidia http://brainarray.mbni.med.umich.edu/Brainarray/Rgpgpu/ Ainda não testei. Alguém? []s, --- Fernando Mayer Universidade Federal de Santa Catarina - UFSC Departamento de Ecologia e Zoologia - ECZ/CCB URL: http://sites.google.com/site/fernandomayer e-mail: fernandomayer [@] gmail.com 2012/3/1 Benilton Carvalho <beniltoncarvalho@gmail.com>:
programar para usar a GPU para fazer processamentos usualmente feitos em CPU. b
2012/3/1 Rodrigo Sant'Ana <rodrigo.gringo@gmail.com>:
Concordo, em termos de custo beneficio final, ainda vale mais a pena manter um Notebook, ou até mesmo netbook, e concordo tbm, e foi exatamente isso que quis dizer no email anterior, que para "produção" não vale a pena ainda. Mas penso que como ferramenta secundária/auxiliar ao seu PC de produção possa trazer algum beneficio por agora, só isso.
Mas você está certo. Já havia entendido o que você quis dizer, só estava ressaltando que esta é uma área de inovação para atuação do R e até mesmo como uma área de desenvolvimento em ascensão.
Quando você diz em programar para GPU, você diz para optimizarmos funções para utilizar melhor as funções gráficas da placa, ou para utilizar o processador da placa de video como um processador fisico?
_______________ Rodrigo Sant'Ana Oceanógrafo
Em 1 de março de 2012 18:36, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
Rodrigo,
o que eu quero dizer eh que, se vc for usar um dispositivo movel com teclado externo e um processador que nao seja compativel com i386 ou x86_64, entao (hoje!) eh melhor vc usar um laptop ou, se vc estiver mesmo preocupado com tamanho/peso, use um netbook que custa 1/3 do valor e vai fazer exatamente o q tablet faria em termos de R...
Se voce estiver nos EUA, o Asus Transformer Prime vai te custar, pelo menos, USD 499 (tablet) + USD 149 (dock) = USD 648.... E, por esse valor, vc compra algum Toshiba com processador i5 e 6GB RAM.... Vai ter ate' quem prefira comprar um Dell com processador i3 com os 499 e um netbook por alguns 200 dolares... Ai' vai do custo-beneficio de cada um...
Se for para eu produzir algo de util sem um teclado externo, eu nao consigo ficar mais de 10min usando um tablet. Se for para usar um tablet com teclado externo, prefiro um (net/note)book. (preferencia pessoal: mais aplicativos disponiveis, melhor suporte de software/hardware e por ai' vai)
O mesmo aplica-se (novamente, *pelo menos por enquanto*) ao caso do Ubuntu com seu desktop para Android: se vc nao tiver um teclado externo e um monitor, continua "inutil" para nossas aplicacoes.
Concordo que, cada vez mais, teremos `a disposicao equipamentos mais portateis. Entretanto, para "producao" ainda ficaremos dependentes de teclado e bateria por mais alguns (poucos, espero) anos...
Enquanto isso, todo o exercicio de rodar R (ou equivalentes de outros setores, etc) sob Android ou iOS vale (como ja' dito pelo Leonard) pela prova do conceito e inovacoes que ainda virao disso... Mas, ainda nao para "producao"... not yet..
Comentario provocativo: os comentarios acima tambem valem para os "beneficios" da programacao para GPU vis-a-vis prog. para CPU...
b
2012/3/1 Rodrigo Sant'Ana <rodrigo.gringo@gmail.com>:
Pô Benilton concordo com você em alguns pontos. Mas acho que podemos rodar algumas rotinas em tablets sim. Esse Asus vem com um dock de teclado bastante interessante, e talvez, para algumas matérias básicas e scripts simples, como mesmo calcular uma média, desvio padrão, tabela de frequencia, histogramas, teste t, e outros tipos de inferências mais comuns e simples porém didáticas e necessárias para uma sala de aula, talvez não no nível de aprofundamento de um curso de graduação mais direcionado, mas em matérias inicias, ou em mini-cursos com bases de dados sucintas utilizadas para exemplificação, seja interessante.
Entendo que com grandes banco de dados não seja o caminha, mas utilizar um tablet para acesso remoto via ssh, onde o trabalho pesado será executado por um computador mais potente nos dê mobilidade, é um tecnologia interessante. Acho que a explanação do Leonardo é válida, talvez teremos celulares como computadores pessoais, realizando trabalho em conjunto com computadores mais potentes..
Acho bastante válido, mas entendo sua colocação Benilton, com certeza, no dia a dia de analises mais densas, não seja tão interessante.
Abração _______________ Rodrigo Sant'Ana Oceanógrafo
Em 1 de março de 2012 15:38, Leandro Marino <leandromarino@leandromarino.com.br> escreveu:
Para rodar o R via ssh você terá ter ter uma conexão ativa a internet o que muitas vezes não é bom.
Alguns softwares, como por exemplo, o QuantumGis já estão com versões para Android. Acho que é um caminho sim.
Cabe salientar que a Canonical (desenvolvedora do Ubuntu) já anunciou versão do Ubuntu para Celulares e Tablets. Inclusive é possível ter um telefone da motorola que tenha webtop como Atrix rodando o ubuntu.
Com o desenvolvimento do Windows 8 suportando processadores ARM, e linux, acredito que seja uma futura convergencia. Acredito que em breve os celulares serão nossos computadores pessoais... :)
Atenciosamente, Leandro Marino http://www.leandromarino.com.br (Fotógrafo) http://est.leandromarino.com.br/Blog (Estatístico) Cel.: + 55 21 9845-7707 Cel.: + 55 21 8777-7907
Em 1 de março de 2012 15:22, Rodrigo Sant'Ana <rodrigo.gringo@gmail.com> escreveu:
Depende Leonard,
existem tablets hoje em dia bastante robustos, um exemplo é o Asus Transformer Prime (sem querer fazer propaganda. Que vem com um processador Quad-core da nVidia, num é a solução, nem se compara a um PC. Mas ter o R rodando nele, para rotinas rápidas, talvez seja funcional para quem trabalha viajando muito!
Só quis colocar a ideia, pois lembrei destas novas gerações de tablets, e até mesmo, de uma necessidade que eu compartilho, pois acho interessante ter esta mobilidade no uso do R, em um tablet. Para aulas em geral, para demonstrações de códigos em palestras, para uso em qualquer ocasião.
Outra coisa, achei bem interessante essa parte do acesso ao R via ssh, talvez seja um tópico interessante para iniciar a discussão aqui na lista, com demonstrações e tudo mais! Pois eu desconheço completamente e acho super interessante e importante.
Abraço a todos!
_______________ Rodrigo Sant'Ana Oceanógrafo
Em 29 de fevereiro de 2012 13:06, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu: > Concordo contigo, Leonard... mas como o OP nao perguntou minha > opiniao, ne'? rsrsrs > _______________________________________________ > 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.
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.

Boa Noite a todos! Despois de muito tempo longe, só observando as discussões, venho deixar minhas impressões sobre o uso do R em dispositivos móveis e GPU. Como dizia um seriado infantil da minha época... senta que lá vem história...rs Sobre os dispositivos moveis, vejo a utilização do R em sistemas embarcados, especificos como uma valiosa alternativa, p. ex, na empresa que eu trabalho, utiliza-se (90%) análises para dados de experimentação, os quais são pequenos (em termos de bytes) e a complexidade de execução é baixa. Nesse contexto, o pesquisador pode "em campo" ter algumas respostas rápidas (análise descritiva) na palma-da-mão. Outros exemplos similares podem ter semelhante desenvolvimento... ou seja... quando o processo é rotineiro e definido estas análises podem ser codificadas e embarcadas em um software portátil. Lembro que o Software Livre e as plataformas iOS têm problema de implementação devido a licenciamento (Apple x Free Software Fundation), mais isso é discussão para outra mensagem.... Sobre a programação em GPU vs CPU (multicore) digo, por experiência própria: desenvolver para GPU NÃO irá resolver todos os problemas, em alguns casos, resolve-se alguns e criam-se outros... As minhas impressões são: * O melhor caminho é um mix entre CPU (multicore) e GPU, onde exista otimização para execução de calculos matriciais ou simulações na GPU e o restante do processamento na CPU. Lembro que tudo depende do problema em questão, há casos e casos... * Simulações estocásticas, alguns modelos bayesianos e congeneres podem ser "facilmente portados" para programação em GPU, mas não todo o algoritmo, mas apenas uma parte limitada do mesmo. * Outro detalhe importante é a escolha do framework de trabalho (CUDA, OpenCL, etc), o custo de aprendizado da CUDA para a maioria dos casos não compensa (minha opnião) pois é uma forma completamente nova de pensar e programar (Imagine pensar em ponteiros e calculos para indices matriciais a todo codigo ou kernel, na denomição da CUDA para reescrever um algoritmo para LU, QR ou SVD?!?) sem contar o fato de ser padrão proprietário.... Apesar de ter uma versão inicial da BLAS (CUBLAS) a disposição com a limitação de trabalhar com ponteiros simples e 32-bits * A OpenCL e padrão livre e mais "próxima" da programação C usual... com alguns ajustes e preparos, o mesmo algoritimo pode comportar programação para GPU/CPU de acordo com a disponibilidade na máquina em execução (inclusive com o uso de OpenMP para multicore na CPU) Só como exemplo, há casos onde temos algumas máquinas com GPU sem uso o que diminiu a necessidade de comprar novas com mais cores.... Até o presente momento, em alguns testes iniciais, o problema principal é a limitação de memória para troca de informações entre os processos CPU -> GPU -> CPU. Mas com o custo das GPU em declinio... em algum momento poderemos trabalhar com um pouco mais de "folga". Cabe ressaltar que o $$ das placas AMD (ATI) são quase 1/3 de alguns modelos da nVidia (com processamento e memória para uma brincadeira séria), um modelo TELSA da nVidia pode chegar fácil a R$ 30.000,00 :-o Em resumo, para saber se é a hora de tormar partido entre CPU vs GPU... ainda não... tudo tem porém, ses, etc pois cada caso deve ser estudado com muito "carinho" e principalmente testar... testar e testar! Para alguns, o molho pode sair mais caro que a carne.... (certo Benilton?) []'s Márcio Nicolau Em 1 de março de 2012 21:24, Fernando Mayer <fernandomayer@gmail.com>escreveu:
Jogando lenha na fogueira (:
gputools promete otimizações incríveis usando a tecnologia CULA da nVidia
http://brainarray.mbni.med.umich.edu/Brainarray/Rgpgpu/
Ainda não testei. Alguém?
[]s,
--- Fernando Mayer Universidade Federal de Santa Catarina - UFSC Departamento de Ecologia e Zoologia - ECZ/CCB URL: http://sites.google.com/site/fernandomayer e-mail: fernandomayer [@] gmail.com
2012/3/1 Benilton Carvalho <beniltoncarvalho@gmail.com>:
programar para usar a GPU para fazer processamentos usualmente feitos em CPU. b
2012/3/1 Rodrigo Sant'Ana <rodrigo.gringo@gmail.com>:
Concordo, em termos de custo beneficio final, ainda vale mais a pena manter um Notebook, ou até mesmo netbook, e concordo tbm, e foi exatamente isso que quis dizer no email anterior, que para "produção" não vale a pena ainda. Mas penso que como ferramenta secundária/auxiliar ao seu PC de produção possa trazer algum beneficio por agora, só isso.
Mas você está certo. Já havia entendido o que você quis dizer, só estava ressaltando que esta é uma área de inovação para atuação do R e até mesmo como uma área de desenvolvimento em ascensão.
Quando você diz em programar para GPU, você diz para optimizarmos funções para utilizar melhor as funções gráficas da placa, ou para utilizar o processador da placa de video como um processador fisico?
_______________ Rodrigo Sant'Ana Oceanógrafo
Em 1 de março de 2012 18:36, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
Rodrigo,
o que eu quero dizer eh que, se vc for usar um dispositivo movel com teclado externo e um processador que nao seja compativel com i386 ou x86_64, entao (hoje!) eh melhor vc usar um laptop ou, se vc estiver mesmo preocupado com tamanho/peso, use um netbook que custa 1/3 do valor e vai fazer exatamente o q tablet faria em termos de R...
Se voce estiver nos EUA, o Asus Transformer Prime vai te custar, pelo menos, USD 499 (tablet) + USD 149 (dock) = USD 648.... E, por esse valor, vc compra algum Toshiba com processador i5 e 6GB RAM.... Vai ter ate' quem prefira comprar um Dell com processador i3 com os 499 e um netbook por alguns 200 dolares... Ai' vai do custo-beneficio de cada um...
Se for para eu produzir algo de util sem um teclado externo, eu nao consigo ficar mais de 10min usando um tablet. Se for para usar um tablet com teclado externo, prefiro um (net/note)book. (preferencia pessoal: mais aplicativos disponiveis, melhor suporte de software/hardware e por ai' vai)
O mesmo aplica-se (novamente, *pelo menos por enquanto*) ao caso do Ubuntu com seu desktop para Android: se vc nao tiver um teclado externo e um monitor, continua "inutil" para nossas aplicacoes.
Concordo que, cada vez mais, teremos `a disposicao equipamentos mais portateis. Entretanto, para "producao" ainda ficaremos dependentes de teclado e bateria por mais alguns (poucos, espero) anos...
Enquanto isso, todo o exercicio de rodar R (ou equivalentes de outros setores, etc) sob Android ou iOS vale (como ja' dito pelo Leonard) pela prova do conceito e inovacoes que ainda virao disso... Mas, ainda nao para "producao"... not yet..
Comentario provocativo: os comentarios acima tambem valem para os "beneficios" da programacao para GPU vis-a-vis prog. para CPU...
b
2012/3/1 Rodrigo Sant'Ana <rodrigo.gringo@gmail.com>:
Pô Benilton concordo com você em alguns pontos. Mas acho que podemos rodar algumas rotinas em tablets sim. Esse Asus vem com um dock de teclado bastante interessante, e talvez, para algumas matérias básicas e scripts simples, como mesmo calcular uma média, desvio padrão, tabela de frequencia, histogramas, teste t, e outros tipos de inferências mais comuns e simples porém didáticas e necessárias para uma sala de aula, talvez não no nível de aprofundamento de um curso de graduação mais direcionado, mas em matérias inicias, ou em mini-cursos com bases de dados sucintas utilizadas para exemplificação, seja interessante.
Entendo que com grandes banco de dados não seja o caminha, mas utilizar um tablet para acesso remoto via ssh, onde o trabalho pesado será executado por um computador mais potente nos dê mobilidade, é um tecnologia interessante. Acho que a explanação do Leonardo é válida, talvez teremos celulares como computadores pessoais, realizando trabalho em conjunto com computadores mais potentes..
Acho bastante válido, mas entendo sua colocação Benilton, com certeza, no dia a dia de analises mais densas, não seja tão interessante.
Abração _______________ Rodrigo Sant'Ana Oceanógrafo
Em 1 de março de 2012 15:38, Leandro Marino <leandromarino@leandromarino.com.br> escreveu:
Para rodar o R via ssh você terá ter ter uma conexão ativa a internet o que muitas vezes não é bom.
Alguns softwares, como por exemplo, o QuantumGis já estão com versões para Android. Acho que é um caminho sim.
Cabe salientar que a Canonical (desenvolvedora do Ubuntu) já anunciou versão do Ubuntu para Celulares e Tablets. Inclusive é possível ter um telefone da motorola que tenha webtop como Atrix rodando o ubuntu.
Com o desenvolvimento do Windows 8 suportando processadores ARM, e linux, acredito que seja uma futura convergencia. Acredito que em breve os celulares serão nossos computadores pessoais... :)
Atenciosamente, Leandro Marino http://www.leandromarino.com.br (Fotógrafo) http://est.leandromarino.com.br/Blog (Estatístico) Cel.: + 55 21 9845-7707 Cel.: + 55 21 8777-7907
Em 1 de março de 2012 15:22, Rodrigo Sant'Ana < rodrigo.gringo@gmail.com> escreveu:
> Depende Leonard, > > existem tablets hoje em dia bastante robustos, um exemplo é o Asus > Transformer Prime (sem querer fazer propaganda. Que vem com um > processador Quad-core da nVidia, num é a solução, nem se compara a um > PC. Mas ter o R rodando nele, para rotinas rápidas, talvez seja > funcional para quem trabalha viajando muito! > > Só quis colocar a ideia, pois lembrei destas novas gerações de > tablets, e até mesmo, de uma necessidade que eu compartilho, pois acho > interessante ter esta mobilidade no uso do R, em um tablet. Para aulas > em geral, para demonstrações de códigos em palestras, para uso em > qualquer ocasião. > > Outra coisa, achei bem interessante essa parte do acesso ao R via ssh, > talvez seja um tópico interessante para iniciar a discussão aqui na > lista, com demonstrações e tudo mais! Pois eu desconheço completamente > e acho super interessante e importante. > > Abraço a todos! > > _______________ > Rodrigo Sant'Ana > Oceanógrafo > > > > Em 29 de fevereiro de 2012 13:06, Benilton Carvalho > <beniltoncarvalho@gmail.com> escreveu: > > Concordo contigo, Leonard... mas como o OP nao perguntou minha > > opiniao, ne'? rsrsrs > > _______________________________________________ > > 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.
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.

=) Eu ja usei tanto o rgpu quanto gputools... Dependendo do equipamento [1], a instalacao pode ser mais (ou menos) complicada. Nos exemplos selecionados, comportam-se bem... Mas ainda sao restritas as colecoes de operacoes que voce pode executar [2]. Por isso, voce acaba precisando programar "coisas que vc precisa" para execucao na GPU e ai' e' que a coisa complica [3]. [1] A beleza do R e' funcionar em diferentes plataformas de forma homogenea... A maioria das implementacoes usa CUDA, que te forca a ter NVIDIA e reduz significativamente a portabilidade de codigo. O caminho eh uma forma hibrida: vide OpenCL (ha' um pacote experimental no rforge); que permita o codigo ser executado independente de ser GPU ou CPU (ou decodificador analogico-digital da sua placa de som, for that matter). [2] Coisas como LAPACK estao parcialmente disponiveis. A propria NVIDIA disponibiliza uma versao otimizada para CUDA: gratuita para precisao simples; paga para precisao dupla para uso nao-comercial; paga e mais cara para uso comercial. Alternativas estao em desenvolvimento: vide MAGMA. [3] Programar para execucao em GPU estah longe de ser uma tarefa trivial... O tempo gasto "por um mortal" para implementacao em GPU eh, em geral, suficiente para programar para CPU e executar o programa "lento"... Adicionalmente, o desenvolvimento de CPUs nao eh ruim (Lei de Moore). Leituras sugeridas: [a] http://goo.gl/SJc0t [b] http://goo.gl/OjXsh b
participantes (3)
-
Benilton Carvalho
-
Fernando Mayer
-
Marcio Nicolau