<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.19222">
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT color=#0000ff size=4 face=Arial><STRONG>Existe pacote multicore no 
Windows?<BR></STRONG></FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Cada um dos nucleos executara' as instrucoes 1-8 do 
modo que elas<BR>estao apresentadas dentro da funcao.<BR><BR>Cada nucleo 
executara' essa sequencia independentemente do que esteja<BR>acontecendo nos 
outros nucleos. Portanto, se o nucleo B terminar<BR>primeiro que o nucleo A, 
entao o nucleo B vai executar o que estiver<BR>na fila para ele e nao tera' nada 
a ver com o que esta' acontecendo no<BR>nucleo A.<BR><BR>Com mclapply() vc trata 
apenas de problemas que sejam 
"embarrassingly<BR>parallel"...<BR><BR>b<BR><BR>2012/4/19 Junior Beleti 
<</FONT><A href="mailto:beleti.junior@gmail.com"><FONT size=2 
face=Arial>beleti.junior@gmail.com</FONT></A><FONT size=2 
face=Arial>>:<BR>> Olá a todos.<BR>><BR>> Na busca de melhorias no 
processamento paralelo, estou com uma dúvida quanto<BR>> a função mclapply do 
pacote multicore.<BR>> Benilton já me deu várias dicas de como proceder com o 
mesmo, mas ainda<BR>> tenho a seguinte dúvida:<BR>><BR>> Quanto a 
questão de dependências dentro das operações do mclapply, por<BR>> exemplo, 
nas seguintes instruções:<BR>><BR>> mclapply(1:100, function(i) 
{<BR>><BR>> g <- mvrnorm(n=1, mat.cokri[[1]],mat.cokri[[2]])<BR>> 
#1<BR>> seq1 <- seq(1,nlinhas,by=2)<BR>> #2<BR>> seq2 <- 
seq(2,nlinhas,by=2)<BR>> #3<BR>> y1 <- g[seq1]<BR>> #4<BR>> y2 
<- g[seq2]<BR>> #5<BR>> gerado <- data.frame(y1,y2)<BR>> 
#6<BR>> compos <- agl(gerado)<BR>> #7<BR>> compos1 <- 
cbind(compos,compos1)<BR>> #8<BR>><BR>> },mc.cores=4<BR>> 
)<BR>><BR>> Em minha análise, cada um dos 4 núcleos vai executar todas as 
instruções<BR>> dentro da função, ou seja, cada núcleo vai executar as 8 
instruções dentro<BR>> da função. Mas a dúvida surge quanto as dependências, 
visto que em uma<BR>> execução sequencial, todas as instruções seriam 
executadas sequencialmente,<BR>> e a próxima iteração só iniciaria após o 
resultado de "compos1" ter<BR>> sido atribuído.<BR>><BR>> E quanto ao 
processo paralelo, seria respeitado tal sequencia de instruções,<BR>> ou 
seja, a segunda iteração inicia somente após "compos1" ter sido 
atribuído<BR>> na primeira iteração? Como o mclapply possui tal 
controle?<BR>><BR>> Estou ciente que esta questão pode ser mais da 
implementação do próprio<BR>> pacote, mas se alguém puder me esclarecer 
ficaria muito grato.<BR>><BR>> Att,<BR>><BR>> Carlos 
Beleti.<BR>>.</FONT></DIV></BODY></HTML>