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

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

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.

 

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Best Reply

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

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

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.
 

Leave a Comment

Please sign in to add a comment. Not a member? Join today