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

pardiso_64 with extended eigensolver

rick_l_
Beginner
362 Views

Can you use pardiso_64 with the extended eigensolver?

0 Kudos
3 Replies
Ying_H_Intel
Employee
362 Views

Hi Rick, 

The Extended Eigensolver functionality in Intel Math Kernel Library (Intel MKL) is based on the FEAST Eigenvalue Solver 2.0. And it can use the Intel MKL PARDISO solver internally or together.  pardiso_64 is 64 bit integer version of pardiso , so you can usr pardiso_64.  is there some background info for your question? 

some explanation in MKL manual for your reference: 

How you achieve parallelism in Extended Eigensolver routines depends on which interface you use.
Parallelism (via shared memory programming) is not explicitlyimplemented in Extended Eigensolver routines
within one node: the inner linear systems are currently solved one after another.

Using the predefined Extended Eigensolver interfaces, parallelism can be implicitly obtained within the
shared memory version of BLAS, LAPACK or Intel MKL PARDISO. The shell variable MKL_NUM_THREADScan
be used for automatically setting the number of OpenMP threads (cores) for BLAS, LAPACK, and Intel MKL
PARDISO.

And there is example code in MKL install directory, 

for example, windows: C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016.1.146\windows\mkl\examples

MKLexample\solvers_eec\source\dexample_sparse_rci_c.c

Best Regards,

Ying 

0 Kudos
rick_l_
Beginner
362 Views

My problem would be the solution of large eigenproblems (> 32 bit limit), where 8 byte integers are necessary.  The calls to the extended eigensolver would have to include 8 byte integers.  This would mean that pardiso_64 would have to be used.  Would this be done through the RCI's

Rick.

0 Kudos
Ying_H_Intel
Employee
362 Views

Hi Rick,

Yes, you can use the pardiso_64 instead of pardiso.(just please make sure all long long related input paramters is 64bit).

Actually, MKL support LP64 and ILP64 for all routines (including pardiso and extend eign solver). When you have large array, you can link ILP64, which support 64bit integer directly.

The pardiso_64 was used in speical case while you have to  link LP64 library (it support 32bit integer), as the same time, hope to use 64bit integer as pardiso input.

Best Regards,

Ying

0 Kudos
Reply