OONumerics User :

From: CIHAN NADIR KAPLAN (CIKAPLAN_at_[hidden])
Date: 2007-01-21 16:35:54


Hi,

I'm using MS Visual C++ with Visual C++ compiler on WinXP and my processor is Intel Pentium M.

I'm calculating matrix exponentials in my program: At each step, I should find eigenvectors and eigenvalues of symmetric (real) matrices, and by exponantiating the eigenvalues and sandwiching the exponantiated eigenvalue matrix between the eigenvector matrix and its inverse, I'm calculating the matrix exponential. The problem is, at each step of a "for" loop, I should calculate nearly 150000-180000 matrix exponentials, there are thirty steps (whick takes ~160 seconds), and this whole procedure should be repeated over and over. I realized that calculating the exponentials takes most of the computer time (close to 90-95%), and the whole computation is very very large... MTL does quite well, before MTL I was using another library that was eight times slower. But even the speed gain by MTL is not enough for my calculations.

I am going to do HPC, but before that I want my program be as fast as possible. Even when doing HPC, the whole procedure will be slow enough, so I need a faster numerical library which calculates eigenvalues and eigenvectors with great performance. What is the fastest numerical library in C++? Or should I quit C++ for faster numerical calculations and switch to Fortran?

Any help will be appreciated,

Regards
Nadir