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

Linking to the MKL Extended Eigensolver

chung__kristian
Beginner
622 Views
I am running the student version of Intel Parallel Studio XE 2018 (update 2) integrated into Visual Studio 2017 running on Windows 10 64 bit.  I am compiling fortran 90 code and trying to use the Extended Eigensolver routines, and I'm currently trying to compile and run the example source file dexample_sparse_f.f in .../mkl/examples/examples_core_f/solvers_eef/source.
 
I am able to use the MKL lapack routines by simply using the compiler option /Qmkl:sequential.  
 
Using the Intel MKL Link Line Advisor I got the correct compiler and linker options to use the lapack95 routines (https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/)
 
However when I try to compile the dexample_sparse_f.f example, I get errors
 
unresolved external symbol FEASTINIT referenced in function MAIN_
 
unresolved external symbol DFEAST_SCRGV referenced in function MAIN_
 
unresolved external symbol DFEAST_SCSREV referenced in function MAIN_
 
unresolved external symbol DGEMM referenced in function MAIN_
 
I cannot figure out which library I need to include to use these routines. All I have found is the interface file mkl_solvers_ee.fi in the .../mkl/include directory. Any help appreciated. 
0 Kudos
2 Replies
Gennady_F_Intel
Moderator
622 Views

You need to check your system paths. Please check MKL and Compiler User's guide how to install these.

below you may see the quick check how this example is compiled and executed from command line prompt.

I used Intel Fortran Compiler and usual option /Qmkl ( linking with LP64 and threading layer of MKL). MKL 2018. Everething works as expected.

...\windows\mkl\examples\solvers_eef\source>  ifort /Qmkl dexample_sparse_f.f
Intel(R) Visual Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 18.0.2.185 Build 20180210
Copyright (C) 1985-2018 Intel Corporation.  All rights reserved.
 
Microsoft (R) Incremental Linker Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.
 
-out:dexample_sparse_f.exe
-subsystem:console
-libpath:C:\Apps\Intel2018\compilers_and_libraries\windows\mkl\lib\intel64_win
 
and Running 
C:\Apps\Intel2018\compilers_and_libraries\windows\mkl\examples\solvers_eef\source>dexample_sparse_f.exe
 Sparse matrix size          11
 Search interval    3.00000000000000          7.00000000000000
  Testing dfeast_scsrev
Intel MKL Extended Eigensolvers: double precision driver
Intel MKL Extended Eigensolvers: List of input parameters fpm(1:64)-- if different from default
Intel MKL Extended Eigensolvers: fpm(1)=1
Search interval [3.000000000000000e+00;7.000000000000000e+00]
Intel MKL Extended Eigensolvers: Size subspace 8
#Loop | #Eig  |    Trace     | Error-Trace |  Max-Residual
0,6,2.570747125938328e+01,1.000000000000000e+00,6.482954464586578e-06
1,6,2.570747126011605e+01,1.046817236069078e-10,3.387996133676337e-11
2,6,2.570747126011606e+01,5.075305255429287e-16,5.090168922706407e-16
Intel MKL Extended Eigensolvers have successfully converged (to desired tolerance).
Intel MKL Extended Eigensolvers have successfully converged (to desired tolerance).
  FEAST OUTPUT INFO            0
 Number of eigenvalues found            6
  Computed    |    Expected
  Eigenvalues |    Eigenvalues
   3.17157287525381        3.17157287525381
   4.00000000000000        4.00000000000000
   4.00000000000000        4.00000000000000
   4.12924848418909        4.12924848418909
   4.40664990067315        4.40664990067315
   6.00000000000000        6.00000000000000
  Max value of
  | computed eigenvalue -expected eigenvalues |   2.664535259100376E-015
 *************************************************
 ************** REPORT ***************************
 *************************************************
 # Search interval [Emin,Emax]   3.00000000000000        7.00000000000000
 # mode found/subspace           6           8
 # iterations           2
 Relative error on the trace  5.075305255429287E-016
 Eigenvalues/Residuals
           1   3.17157287525381       |   1.752559301667446E-016
           2   4.00000000000000       |   3.947600454143145E-016
           3   4.00000000000000       |   3.904784723663274E-016
           4   4.12924848418909       |   1.892424847101820E-016
           5   4.40664990067315       |   4.219595942862164E-016
           6   6.00000000000000       |   5.090168922706407E-016
   Max absolute value of the matrix
  (transposed of X)*X-I   4.440892098500626E-016
  Testing dfeast_scsrgv
Intel MKL Extended Eigensolvers: double precision driver
Intel MKL Extended Eigensolvers: List of input parameters fpm(1:64)-- if different from default
Intel MKL Extended Eigensolvers: fpm(1)=1
Search interval [3.000000000000000e+00;7.000000000000000e+00]
Intel MKL Extended Eigensolvers: Size subspace 8
#Loop | #Eig  |    Trace     | Error-Trace |  Max-Residual
0,7,3.259411364459005e+01,1.000000000000000e+00,4.822065566418076e-01
1,6,2.570747126011606e+01,9.838060549248558e-01,5.007802803472852e-11
2,6,2.570747126011605e+01,1.522591576628786e-15,3.835996311692877e-16
Intel MKL Extended Eigensolvers have successfully converged (to desired tolerance).
Intel MKL Extended Eigensolvers have successfully converged (to desired tolerance).
  FEAST OUTPUT INFO            0
 Number of eigenvalues found            6
  Computed    |    Expected
  Eigenvalues |    Eigenvalues
   3.17157287525381        3.17157287525381
   4.00000000000000        4.00000000000000
   4.00000000000000        4.00000000000000
   4.12924848418909        4.12924848418909
   4.40664990067315        4.40664990067315
   6.00000000000000        6.00000000000000
  Max | computed eigenvalue -expected eigenvalues |   1.776356839400250E-015
 *************************************************
 ************** REPORT ***************************
 *************************************************
 # Search interval [Emin,Emax]   3.00000000000000        7.00000000000000
 # mode found/subspace           6           8
 # iterations           2
 Relative error on the trace  1.522591576628786E-015
 Eigenvalues/Residuals
           1   3.17157287525381       |   1.359734746820817E-016
           2   4.00000000000000       |   3.027799317329866E-016
           3   4.00000000000000       |   3.820159509369450E-016
           4   4.12924848418909       |   2.429464330738821E-016
           5   4.40664990067315       |   3.835996311692877E-016
           6   6.00000000000000       |   3.042645045144006E-016
   Max absolute value of the matrix
  (transposed of X)*X-I   7.771561172376096E-016
0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0 Kudos
chung__kristian
Beginner
622 Views

Thank you, this works fine from the command line, but it's not working if I try to run it from within Visual Studio, any idea why this might be? I would think this should simply require specifying the /Qmkl compiler option as I can do from the command line, but it can't find the external functions.

0 Kudos
Reply