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
What Is The Correct Way to Define a Netfilter Hook Function
Intel Fortran Composer 2011 and Linux Mint 12
How to Check If The Sed Command Replaced Some String
Setup Sftp to Use Public-Key Authentication
Linux Bash Script Get User Input and Store in a Array
In Bash, How to Not Create The Redirect Output File Once The Command Fails
Setting Environment Variable with Leading Digit in Bash
How Does Ltrace (Library Tracing Tool) Work
Create/Delete Users from Text File Using Bash Script
Analog of Com Programming in Linux/Unix
What Is The Maximum Number of Subdirectories Allowed in Ext4
Check If a Git Branch Is Ahead of Another Using a Script