MULTIPLICAÇÃO DE MATRIZES DE ORDEM 3000 x 3000

Boa tarde pessoal, estou trabalhando com matrizes de dimensão de 3000 x 3000 em um processo iterativo e a multiplicação das mesmas tem tomado muito tempo. Tentei utilizar a biblioteca RcppArmadillo mas não obtive ganhos de tempo. Alguém sabe me dizer o porque? Toda ajuda é bem vinda para acelerar a multiplicação destas matrizes. Segue abaixo um CMR: require(Rcpp) require(RcppArmadillo) cppFunction(depends = "RcppArmadillo", 'arma::mat prodM(arma::mat& a, arma::mat& b) { return(a * b); }' ) mat <- matrix(rnorm(9e+06,30),nc=3000) #Código em C system.time(prodM(mat,mat)) #Código em R system.time(mat%*%mat) -- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES

Zé, minha recomendação é fazer isso em paralelo. Abs Vinicius Em 1 de julho de 2014 15:08, Ze Henrique <jhguilhen@gmail.com> escreveu:
Boa tarde pessoal,
estou trabalhando com matrizes de dimensão de 3000 x 3000 em um processo iterativo e a multiplicação das mesmas tem tomado muito tempo.
Tentei utilizar a biblioteca RcppArmadillo mas não obtive ganhos de tempo. Alguém sabe me dizer o porque?
Toda ajuda é bem vinda para acelerar a multiplicação destas matrizes.
Segue abaixo um CMR:
require(Rcpp) require(RcppArmadillo)
cppFunction(depends = "RcppArmadillo", 'arma::mat prodM(arma::mat& a, arma::mat& b) { return(a * b); }' )
mat <- matrix(rnorm(9e+06,30),nc=3000)
#Código em C system.time(prodM(mat,mat))
#Código em R system.time(mat%*%mat)
-- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES
_______________________________________________ R-br mailing list R-br@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.
-- *Vinicius Brito Rocha.* *Estatístico e Atuário * *M.Sc. Engenharia de Produção/PO*

Como eu poderia definir este processamento paralelo? Obrigado Vinicius. Em 1 de julho de 2014 18:20, Vinicius Brito Rocha <viniciusbritor@gmail.com> escreveu:
Zé,
minha recomendação é fazer isso em paralelo.
Abs
Vinicius
Em 1 de julho de 2014 15:08, Ze Henrique <jhguilhen@gmail.com> escreveu:
Boa tarde pessoal,
estou trabalhando com matrizes de dimensão de 3000 x 3000 em um processo iterativo e a multiplicação das mesmas tem tomado muito tempo.
Tentei utilizar a biblioteca RcppArmadillo mas não obtive ganhos de tempo. Alguém sabe me dizer o porque?
Toda ajuda é bem vinda para acelerar a multiplicação destas matrizes.
Segue abaixo um CMR:
require(Rcpp) require(RcppArmadillo)
cppFunction(depends = "RcppArmadillo", 'arma::mat prodM(arma::mat& a, arma::mat& b) { return(a * b); }' )
mat <- matrix(rnorm(9e+06,30),nc=3000)
#Código em C system.time(prodM(mat,mat))
#Código em R system.time(mat%*%mat)
-- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES
_______________________________________________ R-br mailing list R-br@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.
-- *Vinicius Brito Rocha.* *Estatístico e Atuário * *M.Sc. Engenharia de Produção/PO*
_______________________________________________ R-br mailing list R-br@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.
-- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES

Zé, isso não exatamente trivial. Justamente por que vc terá que repensar o seu problema. Recomendo vc começar a estudar o assunto. De repente algum colega da lista pode te auxiliar melhor. Abs Vinicius Em 2 de julho de 2014 11:03, Ze Henrique <jhguilhen@gmail.com> escreveu:
Como eu poderia definir este processamento paralelo?
Obrigado Vinicius.
Em 1 de julho de 2014 18:20, Vinicius Brito Rocha < viniciusbritor@gmail.com> escreveu:
Zé,
minha recomendação é fazer isso em paralelo.
Abs
Vinicius
Em 1 de julho de 2014 15:08, Ze Henrique <jhguilhen@gmail.com> escreveu:
Boa tarde pessoal,
estou trabalhando com matrizes de dimensão de 3000 x 3000 em um processo iterativo e a multiplicação das mesmas tem tomado muito tempo.
Tentei utilizar a biblioteca RcppArmadillo mas não obtive ganhos de tempo. Alguém sabe me dizer o porque?
Toda ajuda é bem vinda para acelerar a multiplicação destas matrizes.
Segue abaixo um CMR:
require(Rcpp) require(RcppArmadillo)
cppFunction(depends = "RcppArmadillo", 'arma::mat prodM(arma::mat& a, arma::mat& b) { return(a * b); }' )
mat <- matrix(rnorm(9e+06,30),nc=3000)
#Código em C system.time(prodM(mat,mat))
#Código em R system.time(mat%*%mat)
-- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES
_______________________________________________ R-br mailing list R-br@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.
-- *Vinicius Brito Rocha.* *Estatístico e Atuário * *M.Sc. Engenharia de Produção/PO*
_______________________________________________ R-br mailing list R-br@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.
-- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES
_______________________________________________ R-br mailing list R-br@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.
-- *Vinicius Brito Rocha.* *Estatístico e Atuário * *M.Sc. Engenharia de Produção/PO*

sobre operacoes matriciais em paralelo https://stat.ethz.ch/pipermail/r-sig-debian/2011-November/001722.html ou seja, se vc tiver isso no sistema x%*%x ou crossprod(x) fazem isso em paralelo lembrem que tanto %*% quanto crossprod() usam biblioteca Fortran de alto desempenho (dificilmente bativeis por algum codigo C). ainda: crossprod(x) e' mais rapido que t(x)%*%x se x e' simetrica crossprod(x) demanda metade do tempo de x%*%x (no meu laptop) On 02/07/14 11:03, Ze Henrique wrote:
Como eu poderia definir este processamento paralelo?
Obrigado Vinicius.
Em 1 de julho de 2014 18:20, Vinicius Brito Rocha <viniciusbritor@gmail.com <mailto:viniciusbritor@gmail.com>> escreveu:
Zé,
minha recomendação é fazer isso em paralelo.
Abs
Vinicius
Em 1 de julho de 2014 15:08, Ze Henrique <jhguilhen@gmail.com <mailto:jhguilhen@gmail.com>> escreveu:
Boa tarde pessoal,
estou trabalhando com matrizes de dimensão de 3000 x 3000 em um processo iterativo e a multiplicação das mesmas tem tomado muito tempo.
Tentei utilizar a biblioteca RcppArmadillo mas não obtive ganhos de tempo. Alguém sabe me dizer o porque?
Toda ajuda é bem vinda para acelerar a multiplicação destas matrizes.
Segue abaixo um CMR:
require(Rcpp) require(RcppArmadillo)
cppFunction(depends = "RcppArmadillo", 'arma::mat prodM(arma::mat& a, arma::mat& b) { return(a * b); }' )
mat <- matrix(rnorm(9e+06,30),nc=3000)
#Código em C system.time(prodM(mat,mat))
#Código em R system.time(mat%*%mat)
-- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@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.
-- /Vinicius Brito Rocha./ /Estatístico e Atuário // M.Sc. Engenharia de Produção/PO/
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@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.
-- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES
_______________________________________________ R-br mailing list R-br@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.

Agradece pela ajuda Vinicius e Elias. Vou dar uma estudada melhor, pois sou bem leigo no assunto. Obrigado. Em 2 de julho de 2014 12:08, Elias T. Krainski <eliaskrainski@yahoo.com.br> escreveu:
sobre operacoes matriciais em paralelo https://stat.ethz.ch/pipermail/r-sig-debian/2011-November/001722.html ou seja, se vc tiver isso no sistema x%*%x ou crossprod(x) fazem isso em paralelo
lembrem que tanto %*% quanto crossprod() usam biblioteca Fortran de alto desempenho (dificilmente bativeis por algum codigo C). ainda: crossprod(x) e' mais rapido que t(x)%*%x se x e' simetrica crossprod(x) demanda metade do tempo de x%*%x (no meu laptop)
On 02/07/14 11:03, Ze Henrique wrote:
Como eu poderia definir este processamento paralelo?
Obrigado Vinicius.
Em 1 de julho de 2014 18:20, Vinicius Brito Rocha < viniciusbritor@gmail.com> escreveu:
Zé,
minha recomendação é fazer isso em paralelo.
Abs
Vinicius
Em 1 de julho de 2014 15:08, Ze Henrique <jhguilhen@gmail.com> escreveu:
Boa tarde pessoal,
estou trabalhando com matrizes de dimensão de 3000 x 3000 em um processo iterativo e a multiplicação das mesmas tem tomado muito tempo.
Tentei utilizar a biblioteca RcppArmadillo mas não obtive ganhos de tempo. Alguém sabe me dizer o porque?
Toda ajuda é bem vinda para acelerar a multiplicação destas matrizes.
Segue abaixo um CMR:
require(Rcpp) require(RcppArmadillo)
cppFunction(depends = "RcppArmadillo", 'arma::mat prodM(arma::mat& a, arma::mat& b) { return(a * b); }' )
mat <- matrix(rnorm(9e+06,30),nc=3000)
#Código em C system.time(prodM(mat,mat))
#Código em R system.time(mat%*%mat)
-- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES
_______________________________________________ R-br mailing list R-br@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.
-- *Vinicius Brito Rocha.* *Estatístico e Atuário * * M.Sc. Engenharia de Produção/PO*
_______________________________________________ R-br mailing list R-br@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.
-- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://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.
_______________________________________________ R-br mailing list R-br@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.
-- *José Henrique Soler Guilhen* Graduando em Agronomia Universidade Federal do Espírito Santo - CCAUFES
participantes (3)
-
Elias T. Krainski
-
Vinicius Brito Rocha
-
Ze Henrique