Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
2161 Discussions

After updating MKL, ictvars.sh sets up old version of MKL instead of new one

Unix_Services_Team_U
305 Views
Hello,

I installed Intel Cluster Studio 2011 (which includes MKL 10.3), and then I updated the C and Fortran XE Compilers with 2011 Update 2 (which includes MKL 10.3 Update 2).

ictvars.sh sets up the newest compilers correctly:

source ics/2011.0.013/ictvars.sh
which icc
/global/software/intel12/composerxe-2011.2.137/bin/intel64/icc
which ifort
/global/software/intel12/composerxe-2011.2.137/bin/intel64/ifort

But it sets up the older version of MKL:
echo $MKLROOT
/global/software/intel12/composerxe-2011.0.084/mkl
echo $LIBRARY_PATH
/global/software/intel12/composerxe-2011.0.084/compiler/lib/intel64:/global/software/intel12/composerxe-2011.0.084/mkl/lib/intel64:/global/software/intel12/composerxe-
2011.2.137/compiler/lib/intel64:/global/software/intel12/composerxe-2011.2.137/ipp/../compiler/lib/intel64:/global/software/intel12/composerxe-2011.2.137/ipp/lib/intel
64:/global/software/intel12/composerxe-2011.2.137/compiler/lib/intel64:/global/software/intel12/composerxe-2011.2.137/mkl/lib/intel64:/global/software/intel12/composer
xe-2011.2.137/tbb/lib/intel64//cc4.1.0_libc2.4_kernel2.6.16.21:/global/software/intel12/composerxe-2011.2.137/compiler/lib/intel64:/global/software/intel12/composerxe-
2011.2.137/ipp/../compiler/lib/intel64:/global/software/intel12/composerxe-2011.2.137/ipp/lib/intel64:/global/software/intel12/composerxe-2011.2.137/compiler/lib/intel
64:/global/software/intel12/composerxe-2011.2.137/mkl/lib/intel64:/global/software/intel12/composerxe-2011.2.137/tbb/lib/intel64//cc4.1.0_libc2.4_kernel2.6.16.21

Notice that the newer version of mkl (composerxe-2011.2.137/mkl) appears later in the path, but composerxe-2011.0.084/mkl comes first.
The reason is that
ictvars.sh calls ics/2011.0.013/cc/bin/iccvars.sh
which links to composerxe-2011.0.084/bin/iccvars.sh
which links to composerxe-2011.0.084/bin/compilervars.sh
which calls composerxe-2011/mkl/bin/mklvars.sh
which links to composerxe-2011.2.137/mkl/bin/mklvars.sh
and then the newest version of MKL is set up correctly:
export MKLROOT=/global/software/intel12/composerxe-2011.2.137/mkl

But later, when ictvars.sh calls ics/2011.0.013/mkl/bin/mklvars.sh which links to composerxe-2011.0.084/mkl/bin/mklvars.sh, the environment variables are overwritten with the old MKL version.

It is hard to understand what's going on in this maze of scripts and symlinks. Why is the newest MKL not set up automatically by ictvars.sh ?

I noticed this thread: http://software.intel.com/en-us/forums/showthread.php?t=80302&o=a&s=lr
But the links in ics/ have not been updated to point to the newest versions, even for the compilers (confusingly) :

ls -l ics/2011.0.013/
lrwxrwxrwx 1 root root 46 Feb 3 16:34 cc -> /global/software/intel12/composerxe-2011.0.084
lrwxrwxrwx 1 root root 46 Feb 3 16:34 fc -> /global/software/intel12/composerxe-2011.0.084
lrwxrwxrwx 1 root root 46 Feb 3 16:34 idb -> /global/software/intel12/composerxe-2011.0.084
lrwxrwxrwx 1 root root 34 Feb 3 16:34 imb -> /global/software/intel12/imb/3.2.2
lrwxrwxrwx 1 root root 39 Feb 3 16:34 impi -> /global/software/intel12/impi/4.0.1.007
lrwxrwxrwx 1 root root 39 Feb 3 16:34 itac -> /global/software/intel12/itac/8.0.1.009
lrwxrwxrwx 1 root root 50 Feb 3 16:34 mkl -> /global/software/intel12/composerxe-2011.0.084/mkl
lrwxrwxrwx 1 root root 39 Feb 3 16:34 mpi -> /global/software/intel12/impi/4.0.1.007

Thanks,
Ryan
0 Kudos
1 Reply
Unix_Services_Team_U
305 Views
I did the installation as 'sudo ./install.sh' so all the files in the installation should be owned by root. However, I noticed there are 2 files in the installation directory that are owned by my uid!

/global/software/intel12/bin/link_install.sh
/global/software/intel12/composerxe-2011/bin/link_install.sh

Are these the scripts that update the symlinks when updates are installed? If they were created using my uid, perhaps they were also executed using my uid, and they wouldn't have permission to update the links? Is that a bug in the installer?

Thanks.
0 Kudos
Reply