Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- DGESVD returning wrong singular values (and poor efficiency) for some values of lwork

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

John_Young

New Contributor I

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

03-05-2016
02:08 PM

97 Views

DGESVD returning wrong singular values (and poor efficiency) for some values of lwork

I've attached some fortran test code for which ZGESVD is returning the wrong singular values and also exhibiting poor efficiency for some values of lwork. I'm using linux with MKL 11.3.1 Product Build 20151021. I've also observed the bug under Windows as well. I'm using 8-byte integers and the ILP64 libraries.

The test matrix is an identity matrix whose singular values should be all one.

When I use an lwork value as the minimum value suggested by the LAPACK documentation everything works fine and is fairly efficient. If I use the value of lwork returned by an lwork=-1 query, the singular values are not all one and the SVD is much slower than the first case. I used a third value of lwork between the optimum value and the minimum value and the SVD routine took so long that I stopped the simulation.

My compile line is

ifort -i8 -module . test.F90 -L$INTEL_MKL_LIBS -liomp5 -lmkl_intel_ilp64 -lmkl_core -lmkl_intel_thread -lpthread -lm

The output I observe from the test program is

OpenMP: 0

Intel(R) Math Kernel Library Version 11.3.1 Product Build 20151021 for Intel(R)

64 architecture applications

SUM: (5868.00000000000,0.000000000000000E+000)

Starting SVD TRY 1 5868 5868

LWORK : 17604

Condition #: 1.00000000000000

Done with SVD TRY 1

Starting SVD TRY 2 5868 5868

LWORK : 645480

Condition #: 10.6534147285328

Done with SVD TRY 2

Starting SVD TRY 3 5868 5868

LWORK : 58680

^Cforrtl: error (69): process interrupted (SIGINT)

Link Copied

2 Replies

Ying_H_Intel

Employee

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

03-07-2016
11:04 PM

97 Views

Hi John,

thanks for the report. I can reproduce the two problems. We will investigate them and update you soon.

Thanks

Ying

John_Young

New Contributor I

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

03-08-2016
04:39 AM

97 Views

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

For more complete information about compiler optimizations, see our Optimization Notice.