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