Dear gmm and getfem users,
I have a question about the performance of gmm. I had a piece of code in MATLAB and I need to convert to a C++ program. Personally, I found gmm very comprehensive and tried to use it. However, I am experiencing siginicant performance deacreas which is most probably caused by my own mistake but I cannot see it. I would be appreciated if any of you can help me in this regard.
My algorithm entails iterative matrix-matrix multiplication (both dense and sparse). Here is one of the problem I have:
Let's assume that W is 1000000x10 matrix and H is 10x20 matrix, in MATLAB it takes about 0.3 second to compute V = W*H but I try to do the same product using gmm library it takes about 11.0 seconds ! Here is a command I used to perform
this task:
gmm::mult(W, H, V);
in which W, H and V are both Dense matrices:
gmm::dense_matrix< double > W ;
gmm::dense_matrix< double > H ;
gmm::dense_matrix< double > V ;
I tried linking to blas, lapack and atlas by adding #define GMM_USES_LAPACK to the program and linking to them as described in the following link in the documentation:
but I did not see
any improvement in the performance. Since, there is suck a big gap between MATLAB and gmm time for the product computation, I speculate that I should have mess it up somewhere but I cannot see it. I would appreciate if anybody can help.
Regards,
Kayhan