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

Benilton Carvalho beniltoncarvalho em gmail.com
Segunda Fevereiro 27 20:57:29 BRT 2012


A linha de comando que vc passou (novamente, nao reproduzivel),
executara' uma instancia (1 instancia = as 4 linhas q vc tem dentro do
function) de:

    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)

em cada nucleo.

Note, entretanto, que apenas o resultado de g4 sera' retornado.

Se vc quiser o resultado de todos os "g's", adicione a linha a seguir
abaixo de g4:

list(g1, g2, g3, g4)

Agora, serio, se vc quiser ser ajudado, ajude quem se propoe a ajudar
e de^ um exemplo reproduzivel.

benilton



2012/2/27 Junior Beleti <beleti.junior em gmail.com>:
> Olá Benilton,
>
> tentando passar um exemplo reproduzivel, o experimento em questão executa um
> script para a obtenção dos valores preditos utilizando os dados do pivo, por
> meio do pacote geoComp.
>
> Nesse script, foram relatados problemas quanto ao tempo de processamento.
>
> A função responsável por tais "problemas" foi a função volta.cokri.
>
> Dentro dessa função identifiquei que o elevado tempo de processamento se
> deve à chamada a função eigen.
> Na eigen, constatei o processamento de grandes matrizes com valores
> exponenciais.
>
> Como minha pesquisa tem foco no processamento paralelo, estou realizando
> experimentos observando formas de se decompor tais matrizes de forma a
> realizar uma execução paralela.
>
> Em uma das execuções, crio as matrizes m1,m2,m3 e m4, como segue
>
>     m1 <- mat.cokri[[2]][1:2601,1:2601]
>     m2 <- mat.cokri[[2]][2602:5202,1:2601]
>     m3 <- mat.cokri[[2]][1:2601,2602:5202]
>     m4 <- mat.cokri[[2]][2602:5202,2602:5202]
>
> sendo essas sub-matrizes da mat.cokri[[2]] que é uma matriz (5202 x 5202).
>
> O que tinha em mente seria a execução paralela de tais matrizes por meio da
> função mclapply. Nesse experimento, fiz o seguinte:
>
> mclapply(1:4, 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
> )
>
> Esse seria o procedimento correto? Claro, este sendo um exemplo hipotético,
> visto que a execução real faz um loop com 1000 iterações.
>
> 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