[R-br] R utilizando apenas 1 processador para rodar

Paulo Nogueira paulons em gmail.com
Quarta Julho 6 17:48:52 BRT 2011


Benilton,
já estou conseguindo utilizar paralelização.
Fiz um dos testes que está no help da função mclappy e percebí que a partir
de 2 núcleos não faz mais tanta diferença, nesse caso.

system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=1))
system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=2))
system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=3))
system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=4))
   user  system elapsed
 51.459   1.260  52.857
select: Chamada de sistema interrompida
   user  system elapsed
 26.234   0.720  27.590
select: Chamada de sistema interrompida
select: Chamada de sistema interrompida
   user  system elapsed
 42.355   1.120  25.719
select: Chamada de sistema interrompida
select: Chamada de sistema interrompida
select: Chamada de sistema interrompida
   user  system elapsed
 59.735   1.460  22.140



O que significa esse aviso?

select: Chamada de sistema interrompida



Outra coisa é que não consegui utilizar mclapply com uma função de mais de
um argumento, tipo f(x,y), apenas com funções f(x).
Isso é devido a ela ser uma versão da lapply e portanto o que eu quero é
impossível? Nesse caso, existiria uma versão da mapply para processamento
paralelo?

abraços
Paulo Nogueira Starzynski



2011/7/6 Benilton Carvalho <beniltoncarvalho em gmail.com>

> e se vc estiver usando o multicore sozinho
>
> options(cores=2)
>
> ou
>
> mclapply(.... , mc.cores=2)
>
> se vc estiver usando o pacote snow, vc passa as configuracoes
> apropriadas para o makeCluster().
>
> b
>
> 2011/7/6 Gustavo Carvalho <gustavo.bio em gmail.com>:
> > Sim. Usando os pacotes foreach, doMC e multicore você pode escolher
> > quantos núcleos quer usar na hora de registrar:
> >
> > registerDoMC(cores = 2)
> >
> > 2011/7/6 jonas bodini alonso <jonasbal em ig.com.br>:
> >>    Queria aproveitar o assunto pra postar mais uma dúvida:
> >>    Por acaso essas funções citadas anteriormente permitem escolher o
> número
> >> de núcleos a serem usados?
> >>    Por exemplo, eu quero usar somente 2 em vez dos 4 existentes.
> >>    Jonas
> >>
> >> Em 6 de julho de 2011 13:02, Fernando Henrique Toledo
> >> <fernandohtoledo em gmail.com> escreveu:
> >>>
> >>> Queria deixar minha impressão:
> >>>
> >>> Também achava que paralelização "deveira" ser um pensamento imediato...
> >>> Mas lendo e consultando outros colegas percebi que essa abordagem vai
> >>> mostrar sua real vantagem em problemas muito complexos e que antes
> disso tem
> >>> muitas outras coisas mais imediatas a se fazer para melhorar o
> desempenho de
> >>> alguma tarefa! Sem falar que para paralelizar é preciso um conhecimento
> >>> muito mais profundo do processo da tarefa!
> >>>
> >>> abraços,
> >>> FH
> >>>
> >>> 2011/7/6 Gustavo Carvalho <gustavo.bio em gmail.com>
> >>>>
> >>>> https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html
> >>>>
> >>>> 2011/7/6 Gustavo Carvalho <gustavo.bio em gmail.com>:
> >>>> > Assim como paralelizar nem sempre é vantajoso uma vez que a
> >>>> > comunicação entre os processos pode ser demorada, nem sempre usar
> for
> >>>> > e while é lento. Essas funções da família *apply tem loops em suas
> >>>> > definições. Tem um post do Benilton em que ele mostra as situações
> >>>> > mais comuns e compara o tempo de execução delas. Dê uma procurada.
> >>>> >
> >>>> > 2011/7/6 Paulo Nogueira <paulons em gmail.com>:
> >>>> >> Obrigado pelas respostas de todos. Essa lista é de um nível
> incrível!
> >>>> >>
> >>>> >> Junior Beleti,
> >>>> >> não é que eu realmente precise de alto desempenho, mas como tenho
> >>>> >> disponíveis 4 processadores pensei: "porque não usar todos eles?"
> >>>> >>
> >>>> >> Parte da resposta para a minha pergunta eu obtive indo atrás do
> >>>> >> material
> >>>> >> recomendado pelo pessoal nas mensagens anteriores: não é muito
> simples
> >>>> >> esse
> >>>> >> negócio de paralelização no R. Ao menos eu não achei simples.
> Pensava
> >>>> >> que
> >>>> >> fosse algo mais automático, como abilitar um opção e pronto.
> >>>> >>
> >>>> >> Por outro lado, me deparei com material sobre vetorização e alguns
> >>>> >> testes de
> >>>> >> performance mostrando o quanto é vantajoso substituir loopings por
> >>>> >> outras
> >>>> >> coisas no R. Como eu aprendi a programar em C tenho essa mania de
> usar
> >>>> >> for e
> >>>> >> while para resolver tudo e no R isso não é a melhor solução.
> >>>> >> Estou indo nesse caminho também.
> >>>> >>
> >>>> >> abraços
> >>>> >> Paulo Nogueira Starzynski
> >>>> >>
> >>>> >> 2011/7/6 Junior Beleti <beleti.junior em gmail.com>
> >>>> >>>
> >>>> >>> Olá Paulo Nogueira,
> >>>> >>>
> >>>> >>> como já foi mencionado, o pacote multicore possui funções de "alto
> >>>> >>> nivel" para utilizar o paralelismo.
> >>>> >>>
> >>>> >>> A sua aplicação necessita de alto desempenho?
> >>>> >>>
> >>>> >>> É que estou trabalhando com processamento paralelo e talvez possa
> >>>> >>> ajudar.
> >>>> >>>
> >>>> >>> Abraço
> >>>> >>>
> >>>> >>> --
> >>>> >>> Carlos Roberto Beleti Junior
> >>>> >>> Mestrado em Ciência da Computação
> >>>> >>> Departamento de Informática
> >>>> >>> Universidade Estadual de Maringá
> >>>> >>> _______________________________________________
> >>>> >>> 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.
> >
>
>
>
> --
> Successful people ask better questions, and as a result, they get
> better answers. (Tony Robbins)
> _______________________________________________
> 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/20110706/27e4fd51/attachment.html>


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