[R-br] Dependencias no mclapply

Benilton Carvalho beniltoncarvalho em gmail.com
Quinta Abril 19 12:42:47 BRT 2012


Cada um dos nucleos executara' as instrucoes 1-8 do modo que elas
estao apresentadas dentro da funcao.

Cada nucleo executara' essa sequencia independentemente do que esteja
acontecendo nos outros nucleos. Portanto, se o nucleo B terminar
primeiro que o nucleo A, entao o nucleo B vai executar o que estiver
na fila para ele e nao tera' nada a ver com o que esta' acontecendo no
nucleo A.

Com mclapply() vc trata apenas de problemas que sejam "embarrassingly
parallel"...

b

2012/4/19 Junior Beleti <beleti.junior em gmail.com>:
> Olá a todos.
>
> Na busca de melhorias no processamento paralelo, estou com uma dúvida quanto
> a função mclapply do pacote multicore.
> Benilton já me deu várias dicas de como proceder com o mesmo, mas ainda
> tenho a seguinte dúvida:
>
> Quanto a questão de dependências dentro das operações do mclapply, por
> exemplo, nas seguintes instruções:
>
>    mclapply(1:100, function(i) {
>
>    g <- mvrnorm(n=1, mat.cokri[[1]],mat.cokri[[2]])
>         #1
>          seq1 <- seq(1,nlinhas,by=2)
>                        #2
>          seq2 <- seq(2,nlinhas,by=2)
>                        #3
>          y1 <- g[seq1]
>                                     #4
>          y2 <- g[seq2]
>                                     #5
>          gerado <- data.frame(y1,y2)
>                         #6
>          compos <- agl(gerado)
>                            #7
>          compos1 <- cbind(compos,compos1)
>               #8
>
>      },mc.cores=4
>      )
>
> Em minha análise, cada um dos 4 núcleos vai executar todas as instruções
> dentro da função, ou seja, cada núcleo vai executar as 8 instruções dentro
> da função. Mas a dúvida surge quanto as dependências, visto que em uma
> execução sequencial, todas as instruções seriam executadas sequencialmente,
> e a próxima iteração só iniciaria após o resultado de "compos1" ter
> sido atribuído.
>
> E quanto ao processo paralelo, seria respeitado tal sequencia de instruções,
> ou seja, a segunda iteração inicia somente após "compos1" ter sido atribuído
> na primeira iteração? Como o mclapply possui tal controle?
>
> Estou ciente que esta questão pode ser mais da implementação do próprio
> pacote, mas se alguém puder me esclarecer ficaria muito grato.
>
> Att,
>
> Carlos Beleti.
>
> _______________________________________________
> 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.


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