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

MKL Poisson Solver Profiling Question

Christos_S_
Beginner
216 Views

Hello all,

I am using MKL to solve a 2D Cartesian Poisson Problem with fixed Neumann boundary conditions.

I have two questions:

(i) based on experiments, I have noticed that the runtime/complexity depends both on (1) the number of intervals and (2) the magnitude of the domain (ax, bx, ay, by). Is this always the case? I expected (1) to be the main parameter which affects performance. I guess this is because internally the algorithm uses an internal grid. If this is the case is there way to make it more granular to increase performance?

(ii) when profiling my code, most of the execution time is spent on one MKL function dgemm():

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
 time   seconds   seconds    calls   s/call   s/call  name
 72.06    564.09   564.09                             dgemm_

despite that the number of intervals is small, specifically 196 x 196. Why would that be? Is there a way to speed up my code?

Thanks very much in advance.

0 Kudos
2 Replies
Gennady_F_Intel
Moderator
216 Views

Hi, 

Yes, both of these parameters affect the performance. There is only one way to speed up the code in this case, to link with threaded MKL  version (mkl_intel_thread.lib).

 

0 Kudos
Alexander_K_Intel2
216 Views

HI All,

From my best Helmholtz solver doesn't depend on dgemm. Which function you call to solve Poisson equation?

Thanks,

Alex

0 Kudos
Reply