Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
7222 Discussions

MKL ERROR: Parameter 4 was incorrect on entry to DLASCL

heiga
Beginner
21,306 Views

When I calledDGELSD() to solve a least square problem, I received the following error message:

MKL ERROR: Parameter 4 was incorrect on entry to DLASCL

but my program didn't stop and it's still running. I iteratively used this routine but it didn't occur in the previous iterations.According to the MKL manual, the forth parameter of DLASCL() is a double precision real value which divides a given matrix. What kind of situation causes thiw problem?

Thanks in advance.

0 Kudos
9 Replies
Michael_C_Intel4
Employee
21,306 Views
Quoting - heiga

When I calledDGELSD() to solve a least square problem, I received the following error message:

MKL ERROR: Parameter 4 was incorrect on entry to DLASCL

but my program didn't stop and it's still running. I iteratively used this routine but it didn't occur in the previous iterations.According to the MKL manual, the forth parameter of DLASCL() is a double precision real value which divides a given matrix. What kind of situation causes thiw problem?

Thanks in advance.


Hello,

it might be some stabity issue but this information is not enough to come to conclusion. Sometimesthe dlascl issue could be caused by damaged input data to dgelsd, for instance, containing NaNs or Infs.

You maysubmit an issueat Intel Premier Support to get a qualified supportin your particular case.

Michael.

0 Kudos
heiga
Beginner
21,306 Views

it might be some stabity issue but this information is not enough to come to conclusion. Sometimesthe dlascl issue could be caused by damaged input data to dgelsd, for instance, containing NaNs or Infs.


Thank you very much for your answer, Michael. I think this is the same problem as that reported in the following page:


Can you please see and check this problem?

Regards,
0 Kudos
heiga
Beginner
21,307 Views
Quoting - heiga
I think this is the same problem as that reported in the following page:


Can you please see and check this problem?

The following page also contains a patch code to solve this problem:
0 Kudos
heiga
Beginner
21,307 Views
Quoting - heiga
The following page also contains a patch code to solve this problem:

I downloaded the Lapack-3.2 source package and compiled it with Intel Fortran Compiler with the MKL BLAS Library.
Then I checked whether this fix solved my problem or not.
When MAXIT=20 (dlasd4.f), I faced the same problem. After changing MAXIT to 200, I didn't have any problem.
So this causes my problem!!

I hope MKL (also official LAPACK source releases) uses MAXIT=200 rather than 20 in the future releases.
It makes some DGELSD users happy :-)

Regards,
0 Kudos
Gennady_F_Intel
Moderator
21,307 Views
Hi Heiga,
I tried to get the same error message you received (MKL ERROR: Parameter 4 was incorrect on entry to DLASCL) with the code and input data you provided in the following page:

http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg00390.html

but on my side all are Ok, no Messages were received.

As an example:
Linux RH5, ia32,

[root@nntsed04-2p4 530800] # ./test.out
rcond = 1.000000000000000E-003
Calling DGELSD...
Done with DGELSD.
[root@nntsed04-2p4 530800] #
I used 2 verisons
MKL v. 10.1 (( Package ID l_mkl_p_10.1.015) and
MKL v. 10.0 ( Package ID l_mkl_p_10.0.1.014)
with the same results.

Command line I used the following command line for building your example:
MKLINCL=/opt/intel/mkl/10.1.0.015/include
MKLPATH=/opt/intel/mkl/10.1.0.015/lib/32
ifort -w -I${MKLINCL} dgelsd-bug.f -L${MKLPATH} ${MKLPATH}/libmkl_intel.a -Wl,--start-group ${MKLPATH}/libmkl_intel_thread.a ${MKLPATH}/libmkl_core.a -Wl,--end-group ${MKLPATH}/libiomp5.a -lpthread -lm -o test.out

--Gennady


0 Kudos
heiga
Beginner
21,307 Views
Hi Gennady,

I tried to get the same error message you received (MKL ERROR: Parameter 4 was incorrect on entry to DLASCL) with the code and input data you provided in the following page:

http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg00390.html

but on my side all are Ok, no Messages were received.

As an example:
Linux RH5, ia32,

[root@nntsed04-2p4 530800] # ./test.out
rcond = 1.000000000000000E-003
Calling DGELSD...
Done with DGELSD.
[root@nntsed04-2p4 530800] #
I used 2 verisons
MKL v. 10.1 (( Package ID l_mkl_p_10.1.015) and
MKL v. 10.0 ( Package ID l_mkl_p_10.0.1.014)
with the same results.

Command line I used the following command line for building your example:
MKLINCL=/opt/intel/mkl/10.1.0.015/include
MKLPATH=/opt/intel/mkl/10.1.0.015/lib/32
ifort -w -I${MKLINCL} dgelsd-bug.f -L${MKLPATH} ${MKLPATH}/libmkl_intel.a -Wl,--start-group ${MKLPATH}/libmkl_intel_thread.a ${MKLPATH}/libmkl_core.a -Wl,--end-group ${MKLPATH}/libiomp5.a -lpthread -lm -o test.out

I also didn't face any problem with the data provided in this web-page, butI had a lot of troubles by DGELSD with my own data. Please check the attached file. It includes C code and data that demonstrate the problem of DGELSD. You may find that DGELSD never stops even DGELSS stops with in seconds. I'm using icc-11.0.074 &mkl-10.1.0.015.
0 Kudos
Gennady_F_Intel
Moderator
21,307 Views

Hi heiga,
yes, I've received the similar problem with dgelsd(). We will investigate the problem and inform you later.
--Gennady

0 Kudos
Gennady_F_Intel
Moderator
21,307 Views

Hello Heiga,
It seems the problem was fixed into the MKL 10.1 Update 2 released recently and available from intel registration center. Package ID : 10.1.2.024
I tried this version, but I used icc compiler version 10.1 ) :
+++
icc dgelsd.cpp -I/opt/intel/mkl/10.1.2.024/include -L/opt/intel/mkl/10.1.2.024/lib/32 /opt/intel/mkl/10.1.2.024/lib/32/libmkl_intel.a -Wl,--start-group /opt/intel/mkl/10.1.2.024/lib/32/libmkl_intel_thread.a /opt/intel/mkl/10.1.2.024/lib/32/libmkl_core.a -Wl,--end-group /opt/intel/mkl/10.1.2.024/lib/32/libiomp5.a -lpthread -lm -o test.out
+++
Please see below the output I received:
bash-2.05b$
bash-2.05b$ ./test.out < mat.dat
performing SVD by DGELSD...
DGELSD INFO == 0
done
bash-2.05b$

Regards, Gennady

0 Kudos
heiga
Beginner
21,307 Views
Hi Gennady,

It seems the problem was fixed into the MKL 10.1 Update 2 released recently and available from intel registration center. Package ID : 10.1.2.024
I tried this version, but I used icc compiler version 10.1 ) :
+++
icc dgelsd.cpp -I/opt/intel/mkl/10.1.2.024/include -L/opt/intel/mkl/10.1.2.024/lib/32 /opt/intel/mkl/10.1.2.024/lib/32/libmkl_intel.a -Wl,--start-group /opt/intel/mkl/10.1.2.024/lib/32/libmkl_intel_thread.a /opt/intel/mkl/10.1.2.024/lib/32/libmkl_core.a -Wl,--end-group /opt/intel/mkl/10.1.2.024/lib/32/libiomp5.a -lpthread -lm -o test.out
+++
Please see below the output I received:
bash-2.05b$
bash-2.05b$ ./test.out < mat.dat
performing SVD by DGELSD...
DGELSD INFO == 0
done
bash-2.05b$

Regards, Gennady


Yes, it's working now properly. Thank you very much!!
0 Kudos
Reply