- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am developing Code under Windows and now want to build a Linux release.
I updated to the latest Linux Fortran because I am using MKL routine DGESVDX which was not in my previous (2013) version.
However, while the code runs fine under Windows, the call to DGESVDX fails under Linux with the message
Parameter 19 input is not valid.
Parameter 19 is just the dimension of the array which is argument 18 (assuming parameter here means argument). Increasing it (the value) does not solve the problem. The particular test case is small (a symmetrix 6x6 matrix with 2 eigenvalues)
The info argument returns -19.
!https://software.intel.com/en-us/mkl-developer-reference-fortran-gesvdx
!call dgesvdx(jobu, jobvt, range, m, n, a, lda, vl, vu, il, iu, ns, s, u, ldu, vt, ldvt, work, lwork, iwork, info)
My call is
LLWORK=NL*(17*NL)
CALL dgesvdx('V','N','A', NL, NL, WK, NL, VL, VU, 0, 0, &
NSV, WK(LSV), WK(LU), NL, WK(LV),NL,WK(LWORK),LLWORK, IWK, INFO)
where NL has a value 6 and LLWORK is the 19th parameter.
As I said, the code works under Windows with exactly the same input (though my Windows compiler release is about 6 months older than the Linux one).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Your *.TXT files in #4 contain ANSI escape sequences, which make them harder to read.
Here is what I think is the main cause of error, which has little to do with Windows/Linux: the call to the MKL routine contains some integer arguments. These are, by default, 4-byte integers. Yet, you use the ILP64 MKL libraries to link with, so the MKL routine expects to find 8-byte integers among its arguments; as a result, the integer arguments are going to be messed up and checking for them will give slightly misleading messages.
Use the LP64 libraries, instead.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When you post your question in the MKL forum, it will be helpful if you can post the complete test code and state the compiler version and options used.
You may also try the example code given in the NAG FL document page at https://www.nag.co.uk/numeric/FL/nagdoc_fl26/pdf/f08/f08kmf.pdf . I tried that example with the data (also in that page; I changed the routine names to the corresponding MKL/Lapack names), and it ran fine.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Intel Support,
I attach my test program, my makefile, and the file typescript which has some notes at the top
and output at the bottom. I apologise for the delay in responding, but I was travelling for two weeks and so away from my linux host. I also upgraded it from Fedora 22 to Fedora 28 (and reinstalled the software) incase that was the problem.
I am not a regular linux user and am struggling to remember how to drive this system.
I hope you can help me.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Your *.TXT files in #4 contain ANSI escape sequences, which make them harder to read.
Here is what I think is the main cause of error, which has little to do with Windows/Linux: the call to the MKL routine contains some integer arguments. These are, by default, 4-byte integers. Yet, you use the ILP64 MKL libraries to link with, so the MKL routine expects to find 8-byte integers among its arguments; as a result, the integer arguments are going to be messed up and checking for them will give slightly misleading messages.
Use the LP64 libraries, instead.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you. Using the lp64 library rather than the ilp64 library allowed the job to run properly.
I do not know how to get the linux script command to produce clean (legible) txt files.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
gilmour, arthur wrote:
I do not know how to get the linux script command to produce clean (legible) txt files.
[PS, added months later] To remove the ANSI sequences and BEL characters from a (intended to be) text file, you can use the Stream Editor sed in Linux/Unix/Cygwin.
sed -e 's/\x1b\[[0-9;]*[a-zA-Z]//g' -e 's/\x1b\][0-9;]*//g' -e 's/\x7//g' typescript.txt > cleanedup.txt
For more details, please see https://superuser.com/questions/380772/removing-ansi-color-codes-from-text-stream .
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page