Intel Fortran Composer 2011 and Linux Mint 12

Intel Fortran Composer 2011 and Linux Mint 12

Put a file under /etc/profile.d with the following content (e.g name it intel.sh)

#!/bin/sh

source /opt/intel/composer_xe_2011_sp1.9.293/bin/compilervars.sh intel64

How do I run Intel Fortran Composer XE after installing it?

You need to source two files into your environment (and possibly specify your architecture)

source /opt/intel/composer_xe_2013_sp1.0.080/bin/compilervars.sh intel64
source /opt/intel/composer_xe_2013_sp1.0.080/bin/compilervars_arch.sh intel64

To find out what architectures are supported run

/opt/intel/composer_xe_2013_sp1.0.080/bin/compilervars.sh

without any arguments

You can create a file named /etc/profile.d/intel.sh, and insert these lines into it. after editing you should log out and log in back again, then try

which icc
which ifort

echo $LD_LIBRARY_PATH

To see if your environment knows the correct location of everything

If you cannot edit files under /etc (no super user privileges), just add these two 'source' lines into your ~/.bashrc, then log out and log in again

Problems setting environment variables for Intel C++ Composer GCC not found

With the standard installation dir = "/opt/intel", IPP 8.1 SP1.3.174 version installed on Debian 7.5 Wheezy:

> cd /opt/intel/bin
> ./compilervars.sh intel64
./compilervars.sh: 40: /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh: [[: not found

This mean: error executing compilervars.sh, in line 40 of /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh

BRIEF EXPLANATION: (If you want to go direclty to solution, jump to "SOLUTION" section)

Let's see that script

> ls -l
total 0
lrwxrwxrwx 1 root root 34 jun 8 04:06 compilervars.csh -> ../composerxe/bin/compilervars.csh
lrwxrwxrwx 1 root root 33 jun 8 04:06 compilervars.sh -> ../composerxe/bin/compilervars.sh

compilersvars.sh points to ../composerxe/bin/compilervars.sh... Let's see that folder:

> ls -l ../composerxe
lrwxrwxrwx 1 root root 20 jun 8 04:06 ../composerxe -> composer_xe_2013_sp1

Oh my, another link! so "../composerxe/bin/compilervars.sh" is "/opt/intel/composer_xe_2013_sp1/bin/compilervars.sh".

gedit ./compilervars.sh

In that script, PROD_DIR=/opt/intel/composer_xe_2013_sp1 tell us what version of compiler is using. The script asks for existence of some *.sh files, and if that's the case, executes them. That's the case of /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh.

SOLUTION:

> gedit /opt/intel/composer_xe_2013_sp1/ipp/bin/ippvars.sh

and go to line 40:

   if [[ "$1" != "ia32" && "$1" != "intel64" && "$1" != "ia32_intel64" ]]; then

replace this line by:

   if [ "$1" != "ia32" ] && [ "$1" != "intel64" ] && [ "$1" != "ia32_intel64" ]; then

Save and reexecute script:

> ./compilervars.sh intel64
>

Now executed without complains.

libtbb.so.2 library does not exist when sourcing `compilervars.sh intel64`

Open

/opt/intel/parallel_studio_xe_2020.1.102/compilers_and_libraries_2020/linux/bin/compilervars.sh

with your favorite editor, and look for the line with tbb/bin/tbbvars.sh.

Find the full path for that script. It should be something like

/opt/intel/parallel_studio_xe_2020.1.102/compilers_and_libraries_2020/linux/tbb/bin/tbbvars.sh.

Open that, and look for the line

TBBROOT=SUBSTITUTE_INSTALL_DIR_HERE

and replace with

TBBROOT="/opt/intel/tbb"

Why doesn't GCC optimize a*a*a*a*a*a to (a*a*a)*(a*a*a)?

Because Floating Point Math is not Associative. The way you group the operands in floating point multiplication has an effect on the numerical accuracy of the answer.

As a result, most compilers are very conservative about reordering floating point calculations unless they can be sure that the answer will stay the same, or unless you tell them you don't care about numerical accuracy. For example: the -fassociative-math option of gcc which allows gcc to reassociate floating point operations, or even the -ffast-math option which allows even more aggressive tradeoffs of accuracy against speed.



Related Topics



Leave a reply



Submit