[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