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

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á

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@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@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.

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@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@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@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@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.

https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html 2011/7/6 Gustavo Carvalho <gustavo.bio@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@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@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@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@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.

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@gmail.com>
https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html
2011/7/6 Gustavo Carvalho <gustavo.bio@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@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@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@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@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@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.

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@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@gmail.com>
https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html
2011/7/6 Gustavo Carvalho <gustavo.bio@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@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@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@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@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@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@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.

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@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@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@gmail.com>
https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html
2011/7/6 Gustavo Carvalho <gustavo.bio@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@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@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@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@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@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@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@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.

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@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@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@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@gmail.com>
https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html
2011/7/6 Gustavo Carvalho <gustavo.bio@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@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@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@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@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@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@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@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@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)

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@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@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@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@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@gmail.com>
https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html
2011/7/6 Gustavo Carvalho <gustavo.bio@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@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@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@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@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@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@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@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@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@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.

Engraçado que aqui em casa os tempos estão dentro do esperado:
system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=1)) user system elapsed 24.698 0.080 24.864 system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=2)) user system elapsed 0.004 0.033 12.847 system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=3)) user system elapsed 41.941 0.783 9.085 system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=4)) user system elapsed 27.741 0.680 6.650
2011/7/6 Paulo Nogueira <paulons@gmail.com>:
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@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@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@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@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@gmail.com>
https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html
2011/7/6 Gustavo Carvalho <gustavo.bio@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@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@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@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@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@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@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@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@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@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@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.

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... abraços Paulo 2011/7/6 Gustavo Carvalho <gustavo.bio@gmail.com>
Engraçado que aqui em casa os tempos estão dentro do esperado:
system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=1)) user system elapsed 24.698 0.080 24.864 system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=2)) user system elapsed 0.004 0.033 12.847 system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=3)) user system elapsed 41.941 0.783 9.085 system.time(mclapply(1:32, function(x) sum(rnorm(1e7)), mc.cores=4)) user system elapsed 27.741 0.680 6.650
2011/7/6 Paulo Nogueira <paulons@gmail.com>:
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@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@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@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@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@gmail.com> > > https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html > > 2011/7/6 Gustavo Carvalho <gustavo.bio@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@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@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@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@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@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@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@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@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@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@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@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.

O aviso que vc ve e' parte dos problemas q falei em usar o multicore com RStudio.... (veja alguma das minhas msgs anteriores nesse thread) O RStudio eh algo legal pro usuario comum... mas, `a medida que vc usa recursos mais avancados, ele pode vir com problemas 'inexplicaveis'. Sobre usar f(x, y) ao inves de f(x), vc precisa escrever um wrapper para f(x, y) e usar como funcao de um indice... f = function(x, y){ sum(rnorm(x, 2)) + sum(rnorm(y, 4)) } entao vc cria um wrapper conforme segue: g = function(i, x, y){ f(x[i], y[i]) } e faz algo como: library(multicore) x = sample(100, 10) y = sample(100, 10) res = mclapply(1:length(x), g, x=x, y=y) sobre os tempos de execucao.... bom, coisas estranhas podem acontecer sob RStudio.... b 2011/7/6 Paulo Nogueira <paulons@gmail.com>:
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@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@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@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@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@gmail.com>
https://listas.inf.ufpr.br/pipermail/r-br/2011-June/001618.html
2011/7/6 Gustavo Carvalho <gustavo.bio@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@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@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@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@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@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@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@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@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@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@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)

Onde eu pego este pacote multicore? quando pedi para instalar, respondeu que não está disponível no R 2.13.0 O aviso que vc ve e' parte dos problemas q falei em usar o multicore com RStudio.... (veja alguma das minhas msgs anteriores nesse thread) O RStudio eh algo legal pro usuario comum... mas, `a medida que vc usa recursos mais avancados, ele pode vir com problemas 'inexplicaveis'. Sobre usar f(x, y) ao inves de f(x), vc precisa escrever um wrapper para f(x, y) e usar como funcao de um indice... f = function(x, y){ sum(rnorm(x, 2)) + sum(rnorm(y, 4)) } entao vc cria um wrapper conforme segue: g = function(i, x, y){ f(x[i], y[i]) } e faz algo como: library(multicore) x = sample(100, 10) y = sample(100, 10) res = mclapply(1:length(x), g, x=x, y=y) sobre os tempos de execucao.... bom, coisas estranhas podem acontecer sob RStudio.... b

Navegue pelo website. A razão q o instalador não o encontra já foi reportada aqui: ele é criado p OS'es que usem especificação POSIX e Windows não é exatamente parte desse grupo. - from a mobile device On 7 Jul 2011 01:03, "Mauro Sznelwar" <sznelwar@uol.com.br> wrote:
Onde eu pego este pacote multicore? quando pedi para instalar, respondeu que não está disponível no R 2.13.0
O aviso que vc ve e' parte dos problemas q falei em usar o multicore com RStudio.... (veja alguma das minhas msgs anteriores nesse thread)
O RStudio eh algo legal pro usuario comum... mas, `a medida que vc usa recursos mais avancados, ele pode vir com problemas 'inexplicaveis'.
Sobre usar f(x, y) ao inves de f(x), vc precisa escrever um wrapper para f(x, y) e usar como funcao de um indice...
f = function(x, y){ sum(rnorm(x, 2)) + sum(rnorm(y, 4)) }
entao vc cria um wrapper conforme segue:
g = function(i, x, y){ f(x[i], y[i]) }
e faz algo como:
library(multicore) x = sample(100, 10) y = sample(100, 10) res = mclapply(1:length(x), g, x=x, y=y)
sobre os tempos de execucao.... bom, coisas estranhas podem acontecer sob RStudio....
b
participantes (7)
-
Benilton Carvalho
-
Fernando Henrique Toledo
-
Gustavo Carvalho
-
jonas bodini alonso
-
Junior Beleti
-
Mauro Sznelwar
-
Paulo Nogueira