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 de 2 núcleos não faz mais tanta diferença, nesse caso.<br><br><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: Monospace; font-size: 13px; line-height: 17px; white-space: pre-wrap;"><pre tabindex="0" class="G1dpdwhmFL" style="font-family: Monospace; font-size: 10pt ! important; outline-style: none; border-style: none; white-space: pre-wrap ! important; margin: 0px; line-height: 1.3;">
<span class="G1dpdwhmMK ace_keyword">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>
system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=4))<br></span> user system elapsed <br> 51.459 1.260 <span style="color: rgb(255, 0, 0);">52.857 </span><br><span class="G1dpdwhmAL">select: Chamada de sistema interrompida<br>
</span> user system elapsed <br> 26.234 0.720 <span style="color: rgb(255, 0, 0);">27.590</span> <br><span class="G1dpdwhmAL">select: Chamada de sistema interrompida<br></span><span class="G1dpdwhmAL">select: Chamada de sistema interrompida<br>
</span> user system elapsed <br> 42.355 1.120 <span style="color: rgb(255, 0, 0);">25.719</span> <br><span class="G1dpdwhmAL">select: Chamada de sistema interrompida<br></span><span class="G1dpdwhmAL">select: Chamada de sistema interrompida<br>
</span><span class="G1dpdwhmAL">select: Chamada de sistema interrompida<br></span> user system elapsed <br> 59.735 1.460 <span style="color: rgb(255, 0, 0);">22.140</span> </pre></span></span><br><br>O que significa esse aviso? <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Arial; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: Monospace; font-size: 13px; line-height: 17px; white-space: pre-wrap;"><pre tabindex="0" class="G1dpdwhmFL" style="font-family: Monospace; font-size: 10pt ! important; outline-style: none; border-style: none; white-space: pre-wrap ! important; margin: 0px; line-height: 1.3;">
<span class="G1dpdwhmAL">select: Chamada de sistema interrompida</span></pre></span></span><br><br>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).<br>
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?<br><br>abraços<br>Paulo Nogueira Starzynski<br><br><br><br><div class="gmail_quote">
2011/7/6 Benilton Carvalho <span dir="ltr"><<a href="mailto:beniltoncarvalho@gmail.com">beniltoncarvalho@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;">
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>
<div><div></div><div class="h5">> 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 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 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 disso tem<br>
>>> muitas outras coisas mais imediatas a se fazer para melhorar o desempenho de<br>
>>> alguma tarefa! Sem falar que para paralelizar é preciso um 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 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 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 simples<br>
>>>> >> esse<br>
>>>> >> negócio de paralelização no R. Ao menos eu não achei simples. 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 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 "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 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>
>>>> _______________________________________________<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 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>
><br>
<br>
<br>
<br>
</div></div><div class="im">--<br>
Successful people ask better questions, and as a result, they get<br>
better answers. (Tony Robbins)<br>
_______________________________________________<br>
</div><div><div></div><div class="h5">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>