Community
cancel
Showing results for 
Search instead for 
Did you mean: 
abhijit_bhole
Beginner
58 Views

Eigenvalue problems on multithreaded MKL

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
58 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
58 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
58 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