- Make sure you have access to root. (eg: sudo su root, passwd)
- Make sure you have your build environment set up. eg:
sudo apt-get install gcc sudo apt-get install build-essential sudo apt-get install g++ sudo apt-get install rpm
- ICC requires older standard C libraries, libstdc++5, so you can get them for Ubuntu from:
Package: libstdc++5. You just need to download the i386 package. (eg from the Australian mirror, by using wget [url]), and then install it, eg: "sudo dpkg -i libstdc++5_3.3.6-18_i386.deb".
If you don't do this you may get the following error messages:
Missing critical pre-requisite -- missing system commands The following required for installation commands are missing: libstdc++.so.5 ( library)
- Download ICC
- Unzip (tar -xvf filename)
- Choose to install for all (1)
- Read "welcome" message follow instructions for licence, etc.
- Activate your software (1) and provide the serial number that came in your email. You should see "Activation Completed Successfully"
- Install the software (requires 3.35 gigs). You should see a message "Checking the prerequisites. It can take several minutes. Please wait…".
- You might see:
Missing optional pre-requisite -- No compatible Java* Runtime Environment (JRE) found -- operating system type is not supported. -- system glibc or kernel version not supported or not detectable -- binutils version not supported or not detectableThe JRE you need for the visual debugger, otherwise you can safely continue.
- The installer then asks which components to install, eg "Intel(R) C++ Compiler Professional Edition for Linux*", just press "1. Install" to continue. It should state "component installed successfully."
- Setup the paths, you can use the iccvars.sh in /opt/intel/Compiler/11.1/073/bin to setup everything for you. (eg: source /opt/intel/Compiler/11.1/073/bin/iccvars.sh ia32). You may wish to put it into your .bashrc file.
- That's it! Type "icc" to invoke for C files or "icpc" for C++ files. For standard makefiles use "make CXX=icpc"
real 0m16.855s user 0m16.849s sys 0m0.004sAnd, with ICC 11.1, with -O2:
real 0m11.369s user 0m11.361s sys 0m0.008s
An instant 45% speedup! Unfortunately not all code makes such a big change, some other compute-intensive code I tested only got a 4% speedup. In any case I'd say its worth it!