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

Is DTRSM a sequential code in the case of a single right hand side?

Kjelgaard_Mikkelsen_
454 Views

Hello,

DTRSM is the LAPACK function which I use to solve triangular linear system with a multiple right hand sides.
I am perfectly happy with the performance and the parallel scalability of the multi-threaded variant when the number of right hand sides n is sufficiently large.

My questions concerns the special case of a single right hand side. Here I detect no evidence that the function has been parallelized as the run-time is independent of the number of threads. The run-time does increase quadratically with the dimension m of the matrix exactly as predicted by the raw flop count.  Moreover, the runtime of DTRSM is approximately twice that of DTRSV. I can find no evidence that DTRSV has been parallelized as the run-time is independent of the number of threads.

My specific questions are:
1) Is it correct that DTRSM defaults to a sequential code if the case of a single RHS.
2) Is it correct that DTRSV is a sequential code.

My motivation is the following: In LAPACK the function DLATRS can be used to solve triangular linear system in a manner which eliminates the possibility of floating point overflow. This is a sequential code. My colleges and I at Umeaa University are developing a parallel version of DLATRS. We need to make a fair comparison against the standard solvers DTRSM, DTRSV when the systems do not require overflow protection.

 

0 Kudos
1 Solution
Gennady_F_Intel
Moderator
454 Views

Hello. 1/ Here you may find out list of OpnMP treaded mkl's functions - https://software.intel.com/en-us/mkl-linux-developer-guide-openmp-threaded-functions-and-problems#BLAS. ; TRSM is threaded by default, TRSV - not.   2/ You may also easy check how these functions work in the real case - please try to use MKL_VERBOSE env. variable and you will see all these function call information.    

View solution in original post

0 Kudos
3 Replies
Gennady_F_Intel
Moderator
455 Views

Hello. 1/ Here you may find out list of OpnMP treaded mkl's functions - https://software.intel.com/en-us/mkl-linux-developer-guide-openmp-threaded-functions-and-problems#BLAS. ; TRSM is threaded by default, TRSV - not.   2/ You may also easy check how these functions work in the real case - please try to use MKL_VERBOSE env. variable and you will see all these function call information.    

0 Kudos
Kazushige_G_Intel
454 Views

Recent MKL introduced TRSM threading for N=1(Left) and M=1(Right) case. TRSV is threading as well. Please try latest MKL package (MKL 2018 Update 3).

0 Kudos
Kjelgaard_Mikkelsen_
454 Views

Thank you both for your time and answers. I am particularly happy to receive the link to the list of threaded/nonthreaded functions and environment variable MKL_VERBOSE which was unknown to me.
I look forward to testing MKL 2018 Update 3.
 

0 Kudos
Reply