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

Marcio Nicolau marcio.nicolau em gmail.com
Quinta Março 1 22:05:55 BRT 2012


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 em 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 em gmail.com>:
> > programar para usar a GPU para fazer processamentos usualmente feitos em
> CPU. b
> >
> > 2012/3/1 Rodrigo Sant'Ana <rodrigo.gringo em 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 em 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 em 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 em 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 em 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 em gmail.com> escreveu:
> >>>>>> > Concordo contigo, Leonard... mas como o OP nao perguntou minha
> >>>>>> > opiniao, ne'? rsrsrs
> >>>>>> > _______________________________________________
> >>>>>> > 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.
> >>>> _______________________________________________
> >>>> 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.
> > _______________________________________________
> > 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120301/6b997e19/attachment-0001.html>


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