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?
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.