Bem, dado que eu uso Ubuntu e não sou expert, sou apenas usuário e ainda por cima estou com o RStudio, as coisas podem estar meio enroladas mesmo...<br><br>abraços<br>Paulo<br><br><br><div class="gmail_quote">2011/7/6 Gustavo Carvalho <span dir="ltr"><<a href="mailto:gustavo.bio@gmail.com">gustavo.bio@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Engraçado que aqui em casa os tempos estão dentro do esperado:<br>
<div class="im"><br>
> system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=1))<br>
</div>   user  system elapsed<br>
 24.698   0.080  24.864<br>
<div class="im">> system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=2))<br>
</div>   user  system elapsed<br>
  0.004   0.033  12.847<br>
<div class="im">> system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=3))<br>
</div>   user  system elapsed<br>
 41.941   0.783   9.085<br>
<div class="im">> system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=4))<br>
   user  system elapsed<br>
</div> 27.741   0.680   6.650<br>
<div><div></div><div class="h5"><br>
2011/7/6 Paulo Nogueira <<a href="mailto:paulons@gmail.com">paulons@gmail.com</a>>:<br>
> Benilton,<br>
> já estou conseguindo utilizar paralelização.<br>
> Fiz um dos testes que está no help da função mclappy e percebí que a partir<br>
> de 2 núcleos não faz mais tanta diferença, nesse caso.<br>
><br>
> system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=1))<br>
> system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=2))<br>
> system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=3))<br>
><br>
> system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=4))<br>
>    user  system elapsed<br>
>  51.459   1.260  52.857<br>
> select: Chamada de sistema interrompida<br>
><br>
>    user  system elapsed<br>
>  26.234   0.720  27.590<br>
> select: Chamada de sistema interrompida<br>
> select: Chamada de sistema interrompida<br>
><br>
>    user  system elapsed<br>
>  42.355   1.120  25.719<br>
> select: Chamada de sistema interrompida<br>
> select: Chamada de sistema interrompida<br>
><br>
> select: Chamada de sistema interrompida<br>
>    user  system elapsed<br>
>  59.735   1.460  22.140<br>
><br>
> O que significa esse aviso?<br>
><br>
> select: Chamada de sistema interrompida<br>
><br>
> Outra coisa é que não consegui utilizar mclapply com uma função de mais de<br>
> um argumento, tipo f(x,y), apenas com funções f(x).<br>
> Isso é devido a ela ser uma versão da lapply e portanto o que eu quero é<br>
> impossível? Nesse caso, existiria uma versão da mapply para processamento<br>
> paralelo?<br>
><br>
> abraços<br>
> Paulo Nogueira Starzynski<br>
><br>
><br>
><br>
> 2011/7/6 Benilton Carvalho <<a href="mailto:beniltoncarvalho@gmail.com">beniltoncarvalho@gmail.com</a>><br>
>><br>
>> e se vc estiver usando o multicore sozinho<br>
>><br>
>> options(cores=2)<br>
>><br>
>> ou<br>
>><br>
>> mclapply(.... , mc.cores=2)<br>
>><br>
>> se vc estiver usando o pacote snow, vc passa as configuracoes<br>
>> apropriadas para o makeCluster().<br>
>><br>
>> b<br>
>><br>
>> 2011/7/6 Gustavo Carvalho <<a href="mailto:gustavo.bio@gmail.com">gustavo.bio@gmail.com</a>>:<br>
>> > Sim. Usando os pacotes foreach, doMC e multicore você pode escolher<br>
>> > quantos núcleos quer usar na hora de registrar:<br>
>> ><br>
>> > registerDoMC(cores = 2)<br>
>> ><br>
>> > 2011/7/6 jonas bodini alonso <<a href="mailto:jonasbal@ig.com.br">jonasbal@ig.com.br</a>>:<br>
>> >>    Queria aproveitar o assunto pra postar mais uma dúvida:<br>
>> >>    Por acaso essas funções citadas anteriormente permitem escolher o<br>
>> >> número<br>
>> >> de núcleos a serem usados?<br>
>> >>    Por exemplo, eu quero usar somente 2 em vez dos 4 existentes.<br>
>> >>    Jonas<br>
>> >><br>
>> >> Em 6 de julho de 2011 13:02, Fernando Henrique Toledo<br>
>> >> <<a href="mailto:fernandohtoledo@gmail.com">fernandohtoledo@gmail.com</a>> escreveu:<br>
>> >>><br>
>> >>> Queria deixar minha impressão:<br>
>> >>><br>
>> >>> Também achava que paralelização "deveira" ser um pensamento<br>
>> >>> imediato...<br>
>> >>> Mas lendo e consultando outros colegas percebi que essa abordagem vai<br>
>> >>> mostrar sua real vantagem em problemas muito complexos e que antes<br>
>> >>> disso tem<br>
>> >>> muitas outras coisas mais imediatas a se fazer para melhorar o<br>
>> >>> desempenho de<br>
>> >>> alguma tarefa! Sem falar que para paralelizar é preciso um<br>
>> >>> conhecimento<br>
>> >>> muito mais profundo do processo da tarefa!<br>
>> >>><br>
>> >>> abraços,<br>
>> >>> FH<br>
>> >>><br>
>> >>> 2011/7/6 Gustavo Carvalho <<a href="mailto:gustavo.bio@gmail.com">gustavo.bio@gmail.com</a>><br>
>> >>>><br>
>> >>>> <a href="https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html" target="_blank">https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html</a><br>
>> >>>><br>
>> >>>> 2011/7/6 Gustavo Carvalho <<a href="mailto:gustavo.bio@gmail.com">gustavo.bio@gmail.com</a>>:<br>
>> >>>> > Assim como paralelizar nem sempre é vantajoso uma vez que a<br>
>> >>>> > comunicação entre os processos pode ser demorada, nem sempre usar<br>
>> >>>> > for<br>
>> >>>> > e while é lento. Essas funções da família *apply tem loops em suas<br>
>> >>>> > definições. Tem um post do Benilton em que ele mostra as situações<br>
>> >>>> > mais comuns e compara o tempo de execução delas. Dê uma procurada.<br>
>> >>>> ><br>
>> >>>> > 2011/7/6 Paulo Nogueira <<a href="mailto:paulons@gmail.com">paulons@gmail.com</a>>:<br>
>> >>>> >> Obrigado pelas respostas de todos. Essa lista é de um nível<br>
>> >>>> >> incrível!<br>
>> >>>> >><br>
>> >>>> >> Junior Beleti,<br>
>> >>>> >> não é que eu realmente precise de alto desempenho, mas como tenho<br>
>> >>>> >> disponíveis 4 processadores pensei: "porque não usar todos eles?"<br>
>> >>>> >><br>
>> >>>> >> Parte da resposta para a minha pergunta eu obtive indo atrás do<br>
>> >>>> >> material<br>
>> >>>> >> recomendado pelo pessoal nas mensagens anteriores: não é muito<br>
>> >>>> >> simples<br>
>> >>>> >> esse<br>
>> >>>> >> negócio de paralelização no R. Ao menos eu não achei simples.<br>
>> >>>> >> Pensava<br>
>> >>>> >> que<br>
>> >>>> >> fosse algo mais automático, como abilitar um opção e pronto.<br>
>> >>>> >><br>
>> >>>> >> Por outro lado, me deparei com material sobre vetorização e alguns<br>
>> >>>> >> testes de<br>
>> >>>> >> performance mostrando o quanto é vantajoso substituir loopings por<br>
>> >>>> >> outras<br>
>> >>>> >> coisas no R. Como eu aprendi a programar em C tenho essa mania de<br>
>> >>>> >> usar<br>
>> >>>> >> for e<br>
>> >>>> >> while para resolver tudo e no R isso não é a melhor solução.<br>
>> >>>> >> Estou indo nesse caminho também.<br>
>> >>>> >><br>
>> >>>> >> abraços<br>
>> >>>> >> Paulo Nogueira Starzynski<br>
>> >>>> >><br>
>> >>>> >> 2011/7/6 Junior Beleti <<a href="mailto:beleti.junior@gmail.com">beleti.junior@gmail.com</a>><br>
>> >>>> >>><br>
>> >>>> >>> Olá Paulo Nogueira,<br>
>> >>>> >>><br>
>> >>>> >>> como já foi mencionado, o pacote multicore possui funções de<br>
>> >>>> >>> "alto<br>
>> >>>> >>> nivel" para utilizar o paralelismo.<br>
>> >>>> >>><br>
>> >>>> >>> A sua aplicação necessita de alto desempenho?<br>
>> >>>> >>><br>
>> >>>> >>> É que estou trabalhando com processamento paralelo e talvez possa<br>
>> >>>> >>> ajudar.<br>
>> >>>> >>><br>
>> >>>> >>> Abraço<br>
>> >>>> >>><br>
>> >>>> >>> --<br>
>> >>>> >>> Carlos Roberto Beleti Junior<br>
>> >>>> >>> Mestrado em Ciência da Computação<br>
>> >>>> >>> Departamento de Informática<br>
>> >>>> >>> Universidade Estadual de Maringá<br>
>> >>>> >>> _______________________________________________<br>
>> >>>> >>> R-br mailing list<br>
>> >>>> >>> <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
>> >>>> >>> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
>> >>>> >>> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e<br>
>> >>>> >>> forneça<br>
>> >>>> >>> código mínimo reproduzível.<br>
>> >>>> >><br>
>> >>>> >><br>
>> >>>> >> _______________________________________________<br>
>> >>>> >> R-br mailing list<br>
>> >>>> >> <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
>> >>>> >> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
>> >>>> >> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e<br>
>> >>>> >> forneça<br>
>> >>>> >> código<br>
>> >>>> >> mínimo reproduzível.<br>
>> >>>> >><br>
>> >>>> ><br>
>> >>>> _______________________________________________<br>
>> >>>> R-br mailing list<br>
>> >>>> <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
>> >>>> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
>> >>>> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça<br>
>> >>>> código mínimo reproduzível.<br>
>> >>><br>
>> >>><br>
>> >>> _______________________________________________<br>
>> >>> R-br mailing list<br>
>> >>> <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
>> >>> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
>> >>> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça<br>
>> >>> código mínimo reproduzível.<br>
>> >><br>
>> >><br>
>> >> _______________________________________________<br>
>> >> R-br mailing list<br>
>> >> <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
>> >> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
>> >> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça<br>
>> >> código<br>
>> >> mínimo reproduzível.<br>
>> >><br>
>> > _______________________________________________<br>
>> > R-br mailing list<br>
>> > <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
>> > <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
>> > Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça<br>
>> > código mínimo reproduzível.<br>
>> ><br>
>><br>
>><br>
>><br>
>> --<br>
>> Successful people ask better questions, and as a result, they get<br>
>> better answers. (Tony Robbins)<br>
>> _______________________________________________<br>
>> R-br mailing list<br>
>> <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
>> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
>> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça<br>
>> código mínimo reproduzível.<br>
><br>
><br>
> _______________________________________________<br>
> R-br mailing list<br>
> <a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código<br>
> mínimo reproduzível.<br>
><br>
_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br>
</div></div></blockquote></div><br>