Community
cancel
Showing results for 
Search instead for 
Did you mean: 
fabien_b_
Beginner
99 Views

Multi-threaded PSSYEVD not threading actually

Dear all,

When calling the SCALAPACK routine PSSYEVD with several threads, only the first MPI task is actually threading as expected.

I have met this issue on both my laptop and on a supercomputer, both running with MKL 2019.2.

In practice, the "top" command on my laptop when running with 2 MPI tasks and 2 MKL threads shows that the first MPI task runs at 200%, whereas the second one runs at 100%.

Note that this problem disappear when I call the double precision routine PDSYEVD instead or when I call the more regular PSSYEV.

Best,

Fabien

0 Kudos
2 Replies
Gennady_F_Intel
Moderator
99 Views

actually this looks very strange because of our implementation is the same for single and double precision data types. 

Am I understand you right that you run PSSYEVD executable on SMP machine and expect to see different threading based on top output? 

fabien_b_
Beginner
99 Views

Hi,

Let me be more precise. Here is why I do on my 4-core laptop: 

> export OMP_NUM_THREADS=2
> export MKL_NUM_THREADS=2
> mpirun -np 2 ./a.out &
> top
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                       
15075 bruneval  20   0 2883124 422376  23480 R 198.7   2.6   0:21.94 a.out                                                                                                                                         
15076 bruneval  20   0 1236508 237804  18008 R  99.7   1.5   0:11.64 a.out   
 

The top shows two unbalanced MPI tasks. This is not what I expect. PDSYEVD would produce two tasks with 200% each.

Could someone reproduce this?

Best,

Fabien

 

Reply