- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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#BL...; 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.

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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#BL...; 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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page