[R-br] Revolution R - Paralelização

Jefferson Ferreira-Ferreira jecogeo em gmail.com
Terça Outubro 21 23:30:24 BRST 2014


Oi Manoel.

Boa questão!! Gostei da dica do pqr. Não conhecia. Vou dar uma olhada nele.
Como eu trabalho com dados geoespaciais (rasters e vetores) não uso
read.table ou data.frame.Mas por vezes me vejo forçado a criar data.frames.
Por exemplo: No script que estou trabalhando no momento, eu gero um modelo
logístico (glm family=binomial) para cada pixel uma imagem de dimensões
200x214x9, tendo como saída os coeficientes, as probabilidades e o valor p.
No meio do caminho eu crio um data.frame que armazena o x e o y de cada
pixel para dar de entrada no modelo. (snippet do script abaixo). Terias
outra opção?

Caso queiras me mandar um CMR eu posso fazer uns testes e te mando o
system.time.
Obrigado pelas observações e pela dica do pqr.

Abraços


##############


library(raster)
library(reshape)
library(mailR)
library(spatial.tools)

# Input Raster

floodmaps <- brick("raster.tif") # my raster dim= 200 214 9
names(floodmaps) <-
c(27.00,30.02,31.07,32.72,33.73,35.12,35.65,36.06,38.32) # flood heigth at
each image band
logit.x <- melt(c(27.00,30.02,31.07,32.72,33.73,35.12,35.65,36.06,38.32)) #
vector with flood heigths

##################################
#
# Jackknife
#
##################################


# creating variables

inter.vec <- rep(NA,length(values(floodmaps[[1]]))) # intercept
x.vec <- rep(NA,length(values(floodmaps[[1]]))) # x
p.vec <- rep(NA, length(values(floodmaps[[1]]))) # p-value
err.vec <- rep(NA,ncell(floodmaps[[1]])) # error
err.df <- data.frame(pred = rep(1,nbands(floodmaps)),obs =
rep(NA,nbands(floodmaps))) # error data.frame

#Let's fry baby!!

temp <- system.time(
    for (i in 1:ncell(floodmaps)){
      for (b in 1:nbands(floodmaps)){
        pixel.df <- data.frame("y" = factor(extract(floodmaps,i)[1,-b]),
"x" = unlist(logit.x)[-b])
        m <- glm(y ~ x, data=pixel.df, family=binomial)
        inter.vec[i] <- m$coefficients[1]
        x.vec[i] <- m$coefficients[2]
        p.vec[i] <- 1-pchisq(m$null.deviance-m$deviance,
m$df.null-m$df.residual)
        prob <- (exp(inter.vec[i]+x.vec[i]*unlist(logit.x)[b]))/(1 +
exp(inter.vec[i]+x.vec[i]*unlist(logit.x)[b]))
        if (prob < 0.8) err.df$pred[b] = 0
        err.df$obs[b] <- floodmaps[[b]][i]
                                   }
      err.vec[i] <- length(which(err.df$pred ==
err.df$obs))/length(err.df$obs)
                                 }
                    )




Abraços

Em 21 de outubro de 2014 20:49, Manoel Galdino <mcz.fea em gmail.com> escreveu:

> Só um comentário, sobre a eficiência do Revolution R (que nunca usei).
> Você pode dar detalhes de onde ele é mais rápido? Você usa o data.table? E
> que tal o pqr <http://www.pqr-project.org/>? Gostaria de ver esses testes
> com os melhores comandos do R tradicional, e não com comandos lentos como
> data.frame ou read.table.
>
> abçs
> M
>
> 2014-10-21 21:43 GMT-02:00 Jefferson Ferreira-Ferreira <jecogeo em gmail.com>
> :
>
>
>> Pessoal,
>>
>> Muito obrigado pelas respostas. Como sugerido por um dos colegas, vou
>> entrar em contato com o suporte para ver qual o melhor método para
>> paralelizar meu processamento. O fato de eu ter pensado que a paralelização
>> era default é porque quando coloco o script para rodar, aparacem as
>> seguintes mensagens no console:
>>
>> Carregando pacotes exigidos: parallel
>> Carregando pacotes exigidos: iterators
>> Carregando pacotes exigidos: foreach
>>
>> No entanto eu não carrego esses pacotes no meu script. Eu vou entrar em
>> contato e ver como fazer de modo mais eficiente.
>>
>> Para aqueles que ainda não sabem, o Revolution R Enterprise é gratuíto
>> para usuários acadêmicos (professores, alunos, pesquisadores, instituições
>> e organizações públicas). Basta possuir um e-mail institucional.
>> Eu fiz um cadastro e dentro de 2 horas tive ele aprovado com acesso ao
>> software. Estou bastante satisfeito com o desenpenho - que é muito superior
>> ao do R "stand alone". Fiz diversos testes e ele é sempre 2x mais rápido.
>> Além disso sua IDE tem bem mais funcionalidades e é bem mais párática que o
>> RStudio.
>>
>> Obrigado pelas mensagens. A esse ponto já entendi que a paralelização não
>> é default, embora o desempenho seja bem melhor.
>> Vou buscar suporte.
>>
>> Abraços
>>
>>
>>
>>
>>
>> Em 21 de outubro de 2014 20:28, Diogo Ferrari <diogoferrari em gmail.com>
>> escreveu:
>>
>> Jefferson,
>>>
>>> Usei o RevR ha um tempo atras quando precisava manipular uma base de
>>> dados muito grande e na época não valia a pena migrar. Não sei na ultima
>>> versão, mas ele não paraleliza por default. Vc tem que mandar seu script
>>> fazer isso, mas e bem simples. Eu creio que a grande vantagem desse pacote
>>> (que e o R, mas com algumas coisas implementadas em Java) e usar em grandes
>>> bases para estatística descritiva e regressões simples, embora de para
>>> fazer algumas coisas um pouco mais elaboradas. Sugiro que vc procure
>>> documentação no próprio site do RevR.
>>>
>>> Abs
>>> --
>>> Diogo Ferrari
>>> PhD Student
>>> University of Michigan, Ann Arbor
>>> Department of Political Science
>>> E-mail: dferrari em umich.edu
>>>
>>> Open Source! Use R! Use Linux!
>>>
>>> "A vida é a arte de tirar conclusões suficientes de dados insuficientes"
>>>
>>>
>>>
>>>
>>> On Oct 21, 2014, at 7:11 PM, Vinicius Brito Rocha <
>>> viniciusbritor em gmail.com> wrote:
>>>
>>> Não é default. Eles tem um conjunto de bibliotecas similares a algumas
>>> conhecidas no R.
>>>
>>> Existe um formato para manipulação de dados especial, que parece muito
>>> com o data step do SAS, onde é possível manipular dados relativamente
>>> grandes. Acredito eu que esse formato seja distribuído.
>>>
>>> Alguns dos pacotes podem ser baixados e utilizados no próprio R.
>>>
>>> Abs
>>>
>>> Vinicius
>>>
>>>
>>>
>>> Em 21 de outubro de 2014 18:53, Benilton Carvalho <
>>> beniltoncarvalho em gmail.com> escreveu:
>>>
>>>> como e' um produto comercial, o melhor e' procurar o suporte deles
>>>> proprios.
>>>>
>>>> Em 21 de outubro de 2014 13:02, Jefferson Ferreira-Ferreira <
>>>> jecogeo em gmail.com> escreveu:
>>>>
>>>>>
>>>>> Listeiros;
>>>>>
>>>>> Alguém aí utiliza o Revolution R Enterprise?
>>>>>
>>>>> Recém o baixei. Li alguns materiais pela internet mas não estou
>>>>> entendendo muito bem se ele paraleliza por "default" ou se preciso usar
>>>>> algo como ParallelR ou doSNOW.
>>>>> Alguém saberia me dizer ou indicar um bom site onde posso me informar
>>>>> melhor sobre isso?
>>>>>
>>>>> Obrigado.
>>>>> Abraços
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> *Jefferson Ferreira-Ferreira*
>>>>> Geógrafo – GEOPROCESSAMENTO IDSM | Coordenadoria de TI
>>>>>
>>>>> Jefferson.ferreira em mamiraua.org.br
>>>>> *Instituto de Desenvolvimento Sustentável Mamirauá*
>>>>>
>>>>> Ministério da Ciência, Tecnologia e Inovação
>>>>> Telefone: +55 97 3343-9710
>>>>>
>>>>> *Google Maps* - Mapas deste e-mail:
>>>>>
>>>>> Exibir mapa ampliado
>>>>> <https://maps.google.com.br/maps?q=-3.355557,-64.731151&ll=-3.355471,-64.731145&spn=0.004632,0.006968&num=1&t=h&z=18>
>>>>>
>>>>>
>>>>>
>>>>> *Contatos particulares:*
>>>>> *(55) 9615-0100 <%2855%29%209615-0100>*
>>>>>
>>>>> _______________________________________________
>>>>> 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.
>>>>
>>>
>>>
>>>
>>> --
>>> *Vinicius Brito Rocha.*
>>> *Estatístico e Atuário *
>>> *M.Sc. Engenharia de Produção/PO*
>>>
>>> *Ph.D. Student in Computer Systems*
>>>
>>>  _______________________________________________
>>> 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.
>>>
>>
>>
>>
>> --
>>
>> *Jefferson Ferreira-Ferreira*
>>
>> Geógrafo – GEOPROCESSAMENTO IDSM | Coordenadoria de TI
>>
>>
>> Jefferson.ferreira em mamiraua.org.br
>>
>> *Instituto de Desenvolvimento Sustentável Mamirauá*
>>
>> Ministério da Ciência, Tecnologia e Inovação
>>
>> Telefone: +55 97 3343-9710
>>
>> *Google Maps* - Mapas deste e-mail:
>>
>> Exibir mapa ampliado
>> <https://maps.google.com.br/maps?q=-3.355557,-64.731151&ll=-3.355471,-64.731145&spn=0.004632,0.006968&num=1&t=h&z=18>
>>
>>
>> *Contatos particulares:*
>> *(55) 9615-0100 <%2855%29%209615-0100>*
>>
>> _______________________________________________
>> 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.
>>
>
>
>
> --
> Manoel Galdino
> https://sites.google.com/site/galdinomcz/
>
> _______________________________________________
> 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.
>



-- 

*Jefferson Ferreira-Ferreira*

Geógrafo – GEOPROCESSAMENTO IDSM | Coordenadoria de TI


Jefferson.ferreira em mamiraua.org.br

*Instituto de Desenvolvimento Sustentável Mamirauá*

Ministério da Ciência, Tecnologia e Inovação

Telefone: +55 97 3343-9710

*Google Maps* - Mapas deste e-mail:

Exibir mapa ampliado
<https://maps.google.com.br/maps?q=-3.355557,-64.731151&ll=-3.355471,-64.731145&spn=0.004632,0.006968&num=1&t=h&z=18>


*Contatos particulares:*
*(55) 9615-0100*
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20141021/dc4269bb/attachment-0001.html>


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