- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello!
I have to evaluate eigenvalues and eigenvectors for general complex matrix 3by3. I chose a zgeev subroutine to find ones.
I use the following command to link example file on my laptop
http://software.intel.com/sites/products/documentation/hpc/mkl/lapack/mkl_lapack_examples/zgeev_ex.f.htm
An executable file was created successful. But when I execute it I have error msg out of zgeev.
MKL ERROR: Parameter 12 was incorrect on entry to ZGEEV
And lwork from code equals to LWORK=MIN( LWMAX,INT( WORK(1) ) ) = -2 147 483 648.
I have to evaluate eigenvalues and eigenvectors for general complex matrix 3by3. I chose a zgeev subroutine to find ones.
I use the following command to link example file on my laptop
http://software.intel.com/sites/products/documentation/hpc/mkl/lapack/mkl_lapack_examples/zgeev_ex.f.htm
- ifort main.f90 -O3 -ip -static -fast -parallel -align all -mp1 -mtune=pentium4m -pad \\
- -pc80 -prec-div -prec-sqrt -scalar-rep -simd -unroll4 -unroll-aggressive -finline \\
- -diag-file=diag.out \\
- -I/opt/intel/composerxe-2011.3.174/mkl/include/intel64/ilp64\\
- -lmkl_blas95_ilp64 -lmkl_lapack95_ilp64 \\
- -Wl,--start-group \\
- /opt/intel/composerxe-2011.3.174/mkl/lib/intel64/libmkl_intel_ilp64.a \\
- /opt/intel/composerxe-2011.3.174/mkl/lib/intel64/libmkl_sequential.a \\
- /opt/intel/composerxe-2011.3.174/mkl/lib/intel64/libmkl_core.a -Wl,--end-group\\
- -lpthread -o xmain
An executable file was created successful. But when I execute it I have error msg out of zgeev.
MKL ERROR: Parameter 12 was incorrect on entry to ZGEEV
And lwork from code equals to LWORK=MIN( LWMAX,INT( WORK(1) ) ) = -2 147 483 648.
As it is written in man to zgeev
I setted up lwork=-1, but I still have the MKL error.LWORK (input) INTEGERThe dimension of the array WORK. LWORK >= max(1,2*N).For good performance, LWORK must generally be larger. If LWORK = -1, then a workspace query is assumed; the routineonly calculates the optimal size of the WORK array, returns
this value as the first entry of the WORK array, and no errormessage related to LWORK is issued by XERBLA.
May I have lost any libraries compiling the executable?
About system:
$ifort --version
ifort (IFORT) 12.0.3 20110309
OS = Ubuntu 11.04PROC = Intel Core i5-2410M CPU @ 2.30GHz
$lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
Thread(s) per core: 2
Core(s) per socket: 2
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 42
Stepping: 7
CPU MHz: 800.000
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
A rebuilt kernel on base on2.6.39*
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The default integer size in Intel Fortran is 4 bytes.
The libraries that you used (those whose names have ilp64 in them )above are appropriate only if you are using 8 byte integers. Clarify whether you really want to use 8-byte integers,, and whether your ifort.cfg file has the necessary options listed to that end.
If you only wanted to use 4-byte integers, choose the appropriate libraries (those that have lp64 in their names, not ilp64 )
The libraries that you used (those whose names have ilp64 in them )above are appropriate only if you are using 8 byte integers. Clarify whether you really want to use 8-byte integers,, and whether your ifort.cfg file has the necessary options listed to that end.
If you only wanted to use 4-byte integers, choose the appropriate libraries (those that have lp64 in their names, not ilp64 )
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As you've selected an ilp64 library, you must take care that all the integers are 64-bit type. ilp64 seems unlikely to be necessary for such small matricies.
Expert advice on this is more likely to be found on the MKL forum.
Expert advice on this is more likely to be found on the MKL forum.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The default integer size in Intel Fortran is 4 bytes.
The libraries that you used (those whose names have ilp64 in them )above are appropriate only if you are using 8 byte integers. Clarify whether you really want to use 8-byte integers,, and whether your ifort.cfg file has the necessary options listed to that end.
If you only wanted to use 4-byte integers, choose the appropriate libraries (those that have lp64 in their names, not ilp64 )
The libraries that you used (those whose names have ilp64 in them )above are appropriate only if you are using 8 byte integers. Clarify whether you really want to use 8-byte integers,, and whether your ifort.cfg file has the necessary options listed to that end.
If you only wanted to use 4-byte integers, choose the appropriate libraries (those that have lp64 in their names, not ilp64 )
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for the rapid answer. It works for me.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page