Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
6591 Discussions

Eigenvalue problems on multithreaded MKL

abhijit_bhole
Beginner
131 Views
Hi,

I am having problems with ?SYEVD, ?SYGVX, P?SYEVD and P?SYGVX when I link with mkl_intel_thread.lib and libiomp5mt.lib. Thescalapack functions return NaN values while the Lapack functions return different eigenvalueseverytime.However all these give correct answers when linked with mkl_sequential.lib. I get the same errors on two different systems: a four processor Xeon L7555 running Windows Server 200 R2 Enterprise as well as on a Core 2 Duo laptop running Windows 7.

I will be grateful for any help.

Secondly what is the best way to run Scalapack: 1 process per computer linked to multi threaded MKL or n processes per computer using mpiexec linked to sequential MKL?

Thanks in advance.
Abhijit.
0 Kudos
3 Replies
abhijit_bhole
Beginner
131 Views
I use ILP64 interface and static linking. I have tried /MT and /MD. I am using Visual Studio and my program is in C++.
Todd_R_Intel
Employee
131 Views

Is your problem ill-conditioned. A test program would help us to diagnose what might be happening.

Perhaps someone else can comment on the best practices for dividing the problem (process per note or per computer).

Todd

TimP
Black Belt
131 Views
In case no one has an answer specifically for scalapack, chances are you want to use the OpenMP parallelism at least for the cores which share a cache (e.g. all 8 cores of one CPU for Nehalem-EX). In order to combine threading and multiple ranks per node, you need a scheme which understands how to keep threads local to a CPU, such as the (default) I_MPI_PIN_DOMAIN=auto of Intel MPI. For 1 rank per node, you don't need any special capabilities from your MPI.
On your 32 core nodes, with no cache shared among the CPUs, you may need at least 1 rank per CPU.
Reply