[R-br] Dependencias no mclapply
Junior Beleti
beleti.junior em gmail.com
Quinta Abril 19 12:13:26 BRT 2012
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.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120419/27c60616/attachment.html>
Mais detalhes sobre a lista de discussão R-br