[R-br] Criação de função fortran em pacote (base)

Benilton Carvalho beniltoncarvalho em gmail.com
Sexta Fevereiro 24 15:17:58 BRST 2012


para vc entender o que o mclapply() faz, eh melhor pensar num laco via for()

por exemplo, suponha que vc tenha uma funcao como abaixo e vc a
executa serialmente via for()

f <- function(x) Sys.sleep(5)
t0 <- system.time(for (i in 1:4) f(i))

A funcao vai demorar 20s e mais um pouquinho... No meu caso, veja t0 abaixo:

> t0
   user  system elapsed
  0.001   0.000  20.001

Note o q vc esta' fazendo: chamando a funcao com argumentos diferentes
repetidas vezes.

A ideia do mclapply e' fazer cada uma dessas chamadas num nucleo
diferente.. e isso e' alcancado via:

t1 <- system.time(mclapply(1:4, f))

> t1
   user  system elapsed
  0.004   0.011   5.016

Simples assim... No meu caso, eu passei 4 argumentos (1:4)... Como eu
tenho 16 nucleos, o R usa apenas 4 (dur!)... Se tivesse 2 nucleos,
cada um dos nucleos executaria a funcao com dois dos argumentos.
Assim, o argumento mc.cores controle apenas o numero *maximo* de
nucleos a serem usados.

Dito isso, no seu caso, ao passar 1:1, isso tem comprimento 1... e o
mclapply entende (como deve ser) que vc quer chamar a funcao apenas 1
vez... e, obviamente, aloca apenas 1 nucleo.

b

2012/2/24 Junior Beleti <beleti.junior em gmail.com>:
> Olá Paulo, o problemas está realmente na chamada a função mvrnorm, pois
> essa
> invoca o código objeto eigen.o (função eigen.f).
>
> Meu objetivo é dividir o processamento e ao invés de realizar uma chamada,
> fazer
> diversas chamadas em paralelo por meio da função mclapply.
>
> O problema é que mesmo com a mclapply, quando o código objeto é carregado
> na
> memória, apenas uma instancia de tal código pode ser processada por vez.
>
> Estaria correta essa minha ultima colocação Benilton?
>
>
> Sobre a chamada  mclapply(1:1, function(i) { ... }, mc.cores=4)
>
> o elemento (1:1) diz respeito ao número de voltas que a função vai executar
> e não
> a quantidade de cores que estou disponibilizando, estou certo?
>
> Entendi sua colocação e vou efetuar testes. Assim que tiver respostas lhes
> comunico.
>
> Obrigado pelas dicas e pela atenção.
>
>
> Carlos Beleti.
>
>
>
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
> mínimo reproduzível.


Mais detalhes sobre a lista de discussão R-br