Olá Benilton,
eu estou confuso quanto a interpretação da função mclapply.
Penso que as quatro operações (g1,g2,g3,g4) são todas executadas sequencialmente, uma após a outra, dentro de um mesmo núcleo.
Ou seja, cada iteração do mclapply (que contém as 4 operações) vai para um mesmo núcleo.
É isso?
Se for isso, então o seguinte comando:
--------------------------------------------------------------------------------
mclapply(1:1, function(i) {
g1 <- mvrnorm(n=1, mat.cokri[[1]][1:2601],m1)
g2 <- mvrnorm(n=1, mat.cokri[[1]][1:2601],m2)
g3 <- mvrnorm(n=1, mat.cokri[[1]][2602:5202],m3)
g4 <- mvrnorm(n=1, mat.cokri[[1]][2602:5202],m4)
},mc.cores=4
)
--------------------------------------------------------------------------------
é apenas uma execução sequencial de g1, depois g2, depois g3 e por último g4?
Agora, o seguinte comando:
--------------------------------------------------------------------------------
mclapply(1:2, function(i) {
g1 <- mvrnorm(n=1, mat.cokri[[1]][1:2601],m1)
g2 <- mvrnorm(n=1, mat.cokri[[1]][1:2601],m2)
g3 <- mvrnorm(n=1, mat.cokri[[1]][2602:5202],m3)
g4 <- mvrnorm(n=1, mat.cokri[[1]][2602:5202],m4)
},mc.cores=4
)
--------------------------------------------------------------------------------
executa primeiramente g1, depois g2, depois g3 e por fim g4 em um núcleo e paralelamente faz o mesmo (executa g1, depois g2, depois g3 e por fim g4) em um segundo núcleo.
Ou seja, executa 2 iterações de um loop em paralelo. Está correto?
Estou preparando um código reproduzível e estarei enviando em seguida.
Muito obrigado por sua atenção Benilton.
Carlos.