- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[cpp] integer i,j,k,toff double precision , dimension(0:17):: ev double precision , dimension(1:18,1:18):: evect double precision , dimension(0:17,0:17):: ttt double precision work(18*64),dlamch integer iwork(18*10), status, support(2*18) toff=18 do 120 i=0, toff-1 do 120 j=9, toff-1 ttt(i,j)=1.d0 write(*,*) i,j,ttt(i,j) 120 continue call dsyevr('v','a','l',toff,ttt,toff,0.d0,0.d0,0,0,dlamch('s'), 1 i,ev,evect,toff,support,work,toff*64,iwork,toff*10,status) [/cpp]
I compile with the option as followed:
ifort -O3 -fno-alias -heap-arrays 10 -align -132 -u -w90 -c test.f -o test.o -L/usr/local/intel/mkl/10.0.4.023/lib/em64t -lguide -lmkl -lmkl_lapack -lpthread
ifort -O3 -fno-alias -heap-arrays 10 -align -132 -u -w90 -o honeyN3L80 test.o -L/usr/local/intel/mkl/10.0.4.023/lib/em64t -lguide -lmkl -lmkl_lapack -lpthread
i keep on getting segmentation fault. However, when I compile using the option -lblas -llapack, it work perfectly except that the program is much slower. Can anyone help me? Thanks.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
it seems that your problem dealt with the new linkage model in MKL.
The linkage model of MKL was changed since MKL v.10 ( all info about linking your application with MKL, you can find in userguide ) .
Please try to use for linking em64t based lapack functions, the following lines as an example:
ifort -w test.f /opt/intel/mkl/ 10.0.4.023/lib/em64t/libmkl_intel_lp64.a -Wl,--start-group /opt/intel/mkl/10.0.4.023/lib/em64t/libmkl_intel_thread.a /opt/intel/mkl/10.0.4.023/lib/em64t/libmkl_core.a -Wl,--end-group -L/opt/intel/mkl/10.0.4.023/lib/em64t -lguide -lpthread -o test.out
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[cpp] integer i,j,k,toff double precision , dimension(0:17):: ev double precision , dimension(1:18,1:18):: evect double precision , dimension(0:17,0:17):: ttt double precision work(18*64),dlamch integer iwork(18*10), status, support(2*18) toff=18 do 120 i=0, toff-1 do 120 j=9, toff-1 ttt(i,j)=1.d0 write(*,*) i,j,ttt(i,j) 120 continue call dsyevr('v','a','l',toff,ttt,toff,0.d0,0.d0,0,0,dlamch('s'), 1 i,ev,evect,toff,support,work,toff*64,iwork,toff*10,status) [/cpp]
I compile with the option as followed:
ifort -O3 -fno-alias -heap-arrays 10 -align -132 -u -w90 -c test.f -o test.o -L/usr/local/intel/mkl/10.0.4.023/lib/em64t -lguide -lmkl -lmkl_lapack -lpthread
ifort -O3 -fno-alias -heap-arrays 10 -align -132 -u -w90 -o honeyN3L80 test.o -L/usr/local/intel/mkl/10.0.4.023/lib/em64t -lguide -lmkl -lmkl_lapack -lpthread
i keep on getting segmentation fault. However, when I compile using the option -lblas -llapack, it work perfectly except that the program is much slower. Can anyone help me? Thanks.
I now dynamically link the library through
-L/opt/intel/mkl/10.0.4.023/lib/em64t -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread
. It execute the subroutine dsyevr, but now it alert me that 'Parameter 6 was incorrect on entry to DSYEVR
', but I have checked the manual for dsyever and it should be correct. i do not get where the error comes from. thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
[cpp] integer i,j,k,toff double precision , dimension(0:17):: ev double precision , dimension(1:18,1:18):: evect double precision , dimension(0:17,0:17):: ttt double precision work(18*64),dlamch integer iwork(18*10), status, support(2*18) toff=18 do 120 i=0, toff-1 do 120 j=9, toff-1 ttt(i,j)=1.d0 write(*,*) i,j,ttt(i,j) 120 continue call dsyevr('v','a','l',toff,ttt,toff,0.d0,0.d0,0,0,dlamch('s'), 1 i,ev,evect,toff,support,work,toff*64,iwork,toff*10,status) [/cpp]
I compile with the option as followed:
ifort -O3 -fno-alias -heap-arrays 10 -align -132 -u -w90 -c test.f -o test.o -L/usr/local/intel/mkl/10.0.4.023/lib/em64t -lguide -lmkl -lmkl_lapack -lpthread
ifort -O3 -fno-alias -heap-arrays 10 -align -132 -u -w90 -o honeyN3L80 test.o -L/usr/local/intel/mkl/10.0.4.023/lib/em64t -lguide -lmkl -lmkl_lapack -lpthread
i keep on getting segmentation fault. However, when I compile using the option -lblas -llapack, it work perfectly except that the program is much slower. Can anyone help me? Thanks.
i solve the problem already. Linking is one of the problem. Also, when I change the 'v', 'a', etc to uppercase, the program the work perfectly. Thanks a lot.

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