From: renormalize on
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
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
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.