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.