Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28456 Discussions

Intel MKL support for largest/smallest Eigenvalues

kooshkbaghi__mahdi
307 Views

Dear all,

According to Intel there is a new support in MKL for largest eigenvalues.

I have upgraded to the latest Fortran compiler with MKL. I can compile the example folder for the largest eigenvalues but when I have tried to solve the following example I have got the following error.

Here is the minimal example:

PROGRAM  sparse_exp
      USE MKL_SPBLAS
      USE MKL_SOLVERS_EE
      implicit none
!!!!!!!!!!!!!!!!! Matrix declaration variables !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      integer      n,i
      parameter   (n=5)
      real        val(25)
      integer     rows(n+1), cols(25)
      !   Matrix descriptor
      TYPE(MATRIX_DESCR) descrA
      !   CSR matrix structure
      TYPE(SPARSE_MATRIX_T) csrA
!!!!!!!!!!!!!!!!! Declaration of MKL_SPARSE_S_EV variables !!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!! E - eigenvalues, X - eigenvectors, res - residual !!!!!!!!!!!!
!!!!!!!!!!!!!!!!! XL - left singular vectors, XR - right singular vectors !!!!!!
      character*1 WHICH
      parameter   (WHICH='L') !L - for largest eigenvalues to find
      integer     pm(128)
      integer     K0,K,info
      parameter   (K0 = 1) !Required number of eigenvalues/singular values to find
      real        E(n)
      real        sigma(n)
      real        X(n,n), XL(n,n), XR(n,n)
      real        res(n)
      val(1) = 0.2124
      val(2) = 0.1887
      val(3) = 0.1838
      val(4) = 0.2114
      val(5) = 0.2016
      val(6) = 0.1899
      val(7) = 0.2614
      val(8) = 0.2012
      val(9) = 0.1883     
      val(10)= 0.1629
      val(11)= 0.1845      
      val(12)= 0.2007     
      val(13)= 0.2373       
      val(14)= 0.1863
      val(15)= 0.1926     
      val(16)= 0.2114
      val(17)= 0.1871
      val(18)= 0.1856     
      val(19)= 0.2106
      val(20)= 0.2032
      val(21)= 0.2016     
      val(22)= 0.1619
      val(23)= 0.1919
      val(24)= 0.2032     
      val(25)= 0.2395 

      rows(1)=1
      rows(2)=6
      rows(3)=11
      rows(4)=16
      rows(5)=21
      rows(6)=26
     
      cols(1) = 1
      cols(2) = 2
      cols(3) = 3
      cols(4) = 4
      cols(5) = 5
      cols(6) = 1
      cols(7) = 2
      cols(8) = 3
      cols(9) = 4
      cols(10)= 5
      cols(11)= 1
      cols(12)= 2
      cols(13)= 3
      cols(14)= 4
      cols(15)= 5
      cols(16)= 1
      cols(17)= 2
      cols(18)= 3
      cols(19)= 4
      cols(20)= 5
      cols(21)= 1
      cols(22)= 2
      cols(23)= 3
      cols(24)= 4
      cols(25)= 5



      print *,'Sparse matrix size',n
!
!        Task 1. Call MKL_SPARSE_C_CREATE_CSR to create matrix handle
!      

      info = mkl_sparse_s_create_csr(csrA,SPARSE_INDEX_BASE_ZERO,N,N,rows,rows(2),cols,val)

!         Create matrix descriptor
      descrA % TYPE = SPARSE_MATRIX_TYPE_GENERAL
!
!        Task 2. Call MKL_SPARSE_EE_INIT to define the default values for the input
!        parameters.
!
      info = mkl_sparse_ee_init(pm)
      pm(2) = 4 !Setting tolerance
      pm(8) = 1 ! Use absolute stopping criteria
       print *, ' Testing mkl_sparse_s_ev '
!
!         Task 3. Solve the standard eigenvalue problem Ax=ex.
! 
      info = mkl_sparse_s_ev(WHICH,pm,csrA,descrA,k0,k,E,X,res)
      print  *,' OUTPUT INFO ',info
      if(info.ne.0) stop 1
      print *, 'Number of eigenvalues found ', k
      print *, ' Computed    |    Expected  '
      print *, ' Eigenvalues |    Eigenvalues '
      do i=1,K
         print *, E(i)
      enddo
      !   Release internal representation of CSR matrix
      info = MKL_SPARSE_DESTROY(csrA)

end program 

And here is the error:

 Sparse matrix size           5
  Testing mkl_sparse_s_ev 
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source             
eigen.exe          0000000000404B53  Unknown               Unknown  Unknown
libpthread-2.28.s  00007FCE5012E3C0  Unknown               Unknown  Unknown
libmkl_core.so     00007FCE508C4D0D  mkl_serv_free         Unknown  Unknown
libmkl_intel_thre  00007FCE561F80E1  mkl_sparse_s_kryl     Unknown  Unknown
libmkl_intel_thre  00007FCE561F3FFA  mkl_sparse_s_ev_i     Unknown  Unknown
libmkl_intel_lp64  00007FCE573379D7  MKL_SPARSE_S_EV       Unknown  Unknown
eigen.exe          0000000000403AFA  Unknown               Unknown  Unknown
eigen.exe          0000000000403862  Unknown               Unknown  Unknown
libc-2.28.so       00007FCE4FF7C223  __libc_start_main     Unknown  Unknown
eigen.exe          000000000040376E  Unknown               Unknown  Unknown

 

0 Kudos
0 Replies
Reply