<!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>