I probably met a bug in one of the MKL (10.2.5.035)
subroutine, ZGESVD. I am linking to the multithreaded version of MKL
statically. The ZGESVD give me wrong results when I use 32 threads. It gives me
correct result if I use one thread. I have a simple non-openmp program that
loads in a matrix and carries out the SVD operation to produce this error
consistently. The test program, makefile and the data file are all in the attachment.
The test program shows that the first svd call produce correct result. The second svd call is to find out the optimal work size. The third call produce wrong result. This may indicate that the work size is giving the problem. However, wrong results will be produce for other matrices even for the first svd call.
When I use less threads, for example, 16 or 8 or 1, the result is correct for the matrix attached.
This test is made on a Linux node with 32 cores.
Thanks & Regards,