Generalized Eigenvalue Problems

Open discussion for MAGMA library (Matrix Algebra on GPU and Multicore Architectures)
Post Reply
fletchjp
Posts: 203
Joined: Mon Dec 27, 2010 7:29 pm

Generalized Eigenvalue Problems

Post by fletchjp » Sat Jan 01, 2011 8:23 am

Do you plan to release equivalents of the LAPACK generalized eigenvalue solvers e.g. ZGGEV?

Also, have you any plan to release versions of ARPACK routines?

Thank you and Happy New Year

John

Stan Tomov
Posts: 283
Joined: Fri Aug 21, 2009 10:39 pm

Re: Generalized Eigenvalue Problems

Post by Stan Tomov » Sun Jan 02, 2011 9:24 pm

John,

The plan for MAGMA 1.0 is to release xGEEV, xHEEVD, and xGESVD. These will be LAPACK, accelerated through multithreaded BLAS and only some of the algorithms' components accelerated through GPUs, namely the reductions to upper Hessenberg, tridiagonal, and bidiagonal forms respectively (for the three algorithms), including the orthogonal operations associated with these factorizations.

We plan to add quickly the generalized eigenvalue solvers for the next release, following similar approach (e.g., for ZGGEV, accelerating with GPUs components like zgeqrf, zunmqr, zungqr, and zgghrd, and leaving the rest for the multicore host using multithreaded BLAS).

As of now, we do not have plans to release ARPACK routines accelerated using GPUs.

Happy New Year.

Stan

echse
Posts: 15
Joined: Thu May 28, 2015 9:59 am

Re: Generalized Eigenvalue Problems

Post by echse » Wed Jun 17, 2015 2:10 am

Hi,

do you already added a generalized eigenvalue solver? I tried to use ZGGEV for fortran (magmaf_zgeev), but it doesn't work. Is there another possibility to solve the complex eigenvalues as fast as possible?

I tried the following:

Code: Select all

call magmaf_init();

  n1 = this%nmodes
  n2 = 2*n1
  !
  B2 = -this%SSA
  A2 =  this%SSB
  !
  ! Workspace Query
  !
  call magma_wtime_f(tstart)

  call magmaf_zggev( 'N', 'N',  n2, A2,   n2,  B2,    n2, ALPHA, BETA, this%SSEVL, &
  &            n2, this%SSEVR, n2, cval,  -1, RWORK, INFO )
  call magma_wtime_f(tend)
And I got the error that there is a problem with `magmaf_zggev_' :

Code: Select all

gfortran-4.8 -Wall -I/home/tobi/Programme/magma-1.6.2/include -Dmagma_devptr_t="integer(kind=8)" -o MiBliV MiBliV.o Menu.o Menu_Alternative.o Menu_Alternative_Paral.o Menu2.o Optim.o OptimGlob.o Menu_Modify.o Init.o fortran.o /home/tobi/Programme/04_MiBliV_OBJ/00_Library/libMiBliV.so  /home/tobi/Programme/Function/FunctionsDevel/libFuncs.so /usr/lib/liblapack.so  -L/usr/local/cuda/lib64 -L/usr/lib -L/home/tobi/Programme/magma-1.6.2/lib -L/usr/local/atlas/lib -lmagma -lcublas -llapack -lf77blas -lcblas -latlas -lcublas -lcudart -lstdc++ -lm -lgfortran -fopenmp 
/home/tobi/Programme/04_MiBliV_OBJ/00_Library/libMiBliV.so: Nicht definierter Verweis auf `magmaf_zggev_'
collect2: error: ld returned 1 exit status
make: *** [MiBliV] Fehler 1
Tobi

mgates3
Posts: 918
Joined: Fri Jan 06, 2012 2:13 pm

Re: Generalized Eigenvalue Problems

Post by mgates3 » Wed Jun 17, 2015 11:39 am

No, MAGMA does not have a non-symmetric generalized eigenvalue solver to solve A x = lambda B x.

It does have a non-symmetric standard eigenvalue solver, magma_zgeev, to solve A x = lambda x.

It also has Hermitian standard eigenvalue solvers:
magma_zheevd solves A x = lambda x for Hermitian A;
as well as Hermitian generalized eigenvalue solvers:
magma_zhegvd solves A x = lambda B x (and variants) for Hermitian A and B, B is positive definite.

-mark

echse
Posts: 15
Joined: Thu May 28, 2015 9:59 am

Re: Generalized Eigenvalue Problems

Post by echse » Tue Jun 23, 2015 1:45 pm

Do you have an example for Fortran for the eigensolvers magma_zgeev and magma_zgeev_m?

mgates3
Posts: 918
Joined: Fri Jan 06, 2012 2:13 pm

Re: Generalized Eigenvalue Problems

Post by mgates3 » Wed Jun 24, 2015 11:41 am

Not from Fortran, just the C examples in testing/testing_zgeev.cpp and testing_zgeev_m.cpp. Except for needing a larger workspace, they should be drop-in replacements for the LAPACK routines. Unlike MAGMA's C interface which uses enum constants, the Fortran interface still uses character constants ('N' or 'V' for jobvl and jobvr).

-mark

Post Reply