Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Size limitation for eigenvalue problem

shrinivas1
Beginner
613 Views
Hello

I am solving for the lowest eignevalues (only) of a generalized eigen value problem

Kx = lamda M x; with M being diagonal

I am using the following sequence of calls:

(1) call dpbstf(uplo,n,kb,dmass,ldbb,info)
(2) call dsbgst(vect,uplo,n,ka,kb,dstiffness,ldab,dmass,ldbb,x,n,
& work,info)
(3) call dsbtrd ( 'N', uplo, n, ka, dstiffness, ldab, d, e, q, n,
& work, info)
(4) call dstebz('V','E',n,vl,vu,0,0,1.0e-15,d,e,mfound,nsplit,
& evalue,iblock,isplit,work,iwork,info)

I am using VisualStudio Microsoft Development Environment Vers 7.1

I have benn able to solve for eigenvalues upto matrices of size around 5000. Beyond this, it simply takes a very loooooong time, especially the call to "dsbtrd".

Is there any limitation on the size on the matrices ? Alos, I am not assigning any space to "q" and "x" as I do not need these matrices.


Any help will be greatly appreciated...
Thanks

Shrini
0 Kudos
1 Reply
michael_chuvelev
Beginner
613 Views
DSBTRD could bereally slow at the big sizes. Probably, it's better to use DSYGVX forsolving generalizedproblem with whole A,B. It should be faster. Of course, you can save time taking into consideration that M is diagonal.
DSYGVX transforms the problem to standard EP, then solves it, then back transforms eigenvectors. You may look at the reference code for DSYGVX at www.netlib.org. You can simplifythe transformation step, because M is diagonal - see DSYGVX/DSYGST reference code. So the main time amount should be spend to solve a standard EP by DSYEVX. This routine is fast enough.
0 Kudos
Reply