Performance & ZHHEVD

Post here if you want to report a bug to the LAPACK team

Performance & ZHHEVD

Postby MatthiasP » Thu Jul 26, 2012 8:07 am

I recently ran routine ZHEEVD (LAPACK 3.3) and noticed very poor performance. When using the work space size given by a query to ZHEEVD, it looks like in the call to routine ZUNMTR not enough work space is provided for optimal performance. This does NOT happen for DSYEVD! Because of a lack of work space the routine can ran significantly slower (factor 2+).
Maybe someone wants to give it a quick try.

Best,
Matthias
MatthiasP
 
Posts: 2
Joined: Thu Jul 26, 2012 7:54 am

Re: Performance & ZHHEVD

Postby MatthiasP » Mon Feb 25, 2013 4:28 pm

As a related problem: I noticed a similar behavior in SSYEVR (LAPACK 3.4.2). For this routine, the call to SORMTR seems to be rather slow. It might the same problem of not providing optimal work space, but I am too lazy to check ;)
MatthiasP
 
Posts: 2
Joined: Thu Jul 26, 2012 7:54 am

Re: Performance & ZHHEVD

Postby CyLith » Tue Feb 26, 2013 6:22 am

The following is what I understand from reading the source code; it could be wrong.

ZHEEVD is being lazy and only asking for the optimal ZHETRD workspace size, without considering the size desired by ZUNMTR. If you use an unchanged ILAENV in Netlib Lapack, these two happen to want the same block size, so if it were as simple as that, there should be no performance difference. The problem however, is that by the time ZUNMTR gets called, there is only a size N workspace remaining, so it's essentially use the completely unblocked code. The computation of the optimal workspace is wrong, since around line 290 of ZHEEVD, it compares the minimum size LWMIN with N + ZHETRD_opt, which really should be something more like LWMIN + ZHETRD_OPT - N.

As a temporary measure, it seems you can take the optimal size returned, and add onto it the optimal size returned by ZUNMTR, and subtract N, and that should be "optimal".
CyLith
 
Posts: 35
Joined: Sun Feb 08, 2009 7:23 am
Location: Stanford, CA


Return to Bug report

Who is online

Users browsing this forum: No registered users and 2 guests