|
Prev: can internal procedures be overloaded?
Next: A question about deallocate() and others in Fortran
From: renormalize on 2 Oct 2006 17:52 I'm not a particularly savy linux user, but I have managed to install Intel Fortran, C++, and MKL on my PC's linux partition (Ubuntu 6.0.6). Now I want to use the free Fortran package PROPACK to do singular value decompositions of large sparse matrices. Using the make file included with PROPACK works fine until it tries to link and optimize the example programs included with the package: make[2]: Entering directory `/home/ron/Desktop/PROPACK/double/Examples' ifort -cm -w95 -assume buffered_io -vec_report0 -O3 -ipo -xN -Vaxlib -o example.LINUX_ICC_IA32.x example.o matvec.o -L/opt/intel/mkl/8.1.1/lib/32 -L.. -L. ../libdpropack_LINUX_ICC_IA32.a .../libdlapack_util_LINUX_ICC_IA32.a -lmkl_p4 -lguide .../libdlapack_util_LINUX_ICC_IA32.a IPO: performing multi-file optimizations IPO: generating object file /tmp/ipo_ifort4usUFH.o /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vsCos' /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vslDeleteStream' /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vdSin' /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `viRngUniformBits' /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vslNewStream' /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vdCos' /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vsSin' make[2]: *** [example.LINUX_ICC_IA32.x] Error 1 make[2]: Leaving directory `/home/ron/Desktop/PROPACK/double/Examples' I figured out that the above undefined references are functions from the Intel VML/VSL package, so I added -lmkl_vml_p4 after -lmkl_p4 in the above ifort line, but it still generates the same errors. Any insights or suggestions? Thanks, Ron
From: Steve Lionel on 2 Oct 2006 18:37 renormalize(a)hotmail.com wrote: > I'm not a particularly savy linux user, but I have managed to install > Intel Fortran, C++, and MKL on my PC's linux partition (Ubuntu 6.0.6). > Now I want to use the free Fortran package PROPACK to do singular value > decompositions of large sparse matrices. Have you tried asking in the Intel MKL user forum at http://softwareforums.intel.com/ ? Steve
From: Tim Prince on 2 Oct 2006 21:30 renormalize(a)hotmail.com wrote: > I'm not a particularly savy linux user, but I have managed to install > Intel Fortran, C++, and MKL on my PC's linux partition (Ubuntu 6.0.6). > Now I want to use the free Fortran package PROPACK to do singular value > decompositions of large sparse matrices. Using the make file included > with PROPACK works fine until it tries to link and optimize the example > programs included with the package: > > make[2]: Entering directory `/home/ron/Desktop/PROPACK/double/Examples' > ifort -cm -w95 -assume buffered_io -vec_report0 -O3 -ipo -xN -Vaxlib > -o example.LINUX_ICC_IA32.x example.o matvec.o > -L/opt/intel/mkl/8.1.1/lib/32 -L.. -L. ../libdpropack_LINUX_ICC_IA32.a > ../libdlapack_util_LINUX_ICC_IA32.a -lmkl_p4 -lguide > ../libdlapack_util_LINUX_ICC_IA32.a > IPO: performing multi-file optimizations > IPO: generating object file /tmp/ipo_ifort4usUFH.o > /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to > `vsCos' > /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to > `vslDeleteStream' > /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to > `vdSin' > /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to > `viRngUniformBits' > /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to > `vslNewStream' > /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to > `vdCos' > /opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to > `vsSin' > make[2]: *** [example.LINUX_ICC_IA32.x] Error 1 > make[2]: Leaving directory `/home/ron/Desktop/PROPACK/double/Examples' > > I figured out that the above undefined references are functions from > the Intel VML/VSL package, so I added -lmkl_vml_p4 after -lmkl_p4 in > the above ifort line, but it still generates the same errors. > Maybe you could start by setting your sights a bit lower. If MKL is an important part of your application, -ipo may be unnecessary. Since you're using ifort, which duplicates some libraries furnished with MKL, it's probably better to omit the -L reference for MKL and try to link the ifort versions of those libraries. Simply give the entire path for lib_mkl and leave the rest to ifort and its PATH designations. I prefer to pass -openmp to ifort so that it will take care of libguide and pthreads. I hesitated to answer, not knowing if something about your application requires mkl_vml.
|
Pages: 1 Prev: can internal procedures be overloaded? Next: A question about deallocate() and others in Fortran |