Este post es para quienes quieran usar el compilador gratuito Intel C++ Compiler en Linux.
Este compilador se integra muy bien (automáticamente) con el IDE para C++ Code::Blocks que esta disponible tanto para Windows como para Linux Ubuntu. Se le puede buscar en Google para descargar como Code::Blocks Nightly Builds o mejor busca en mi sección de Programación en Linux con C++.
Usar el Intel C++ Compiler nos dará en general un mejor tiempo de ejecución para nuestros programas, sin embargo esto no es una regla general, ya que el código máquina que genera solo esta optimizado para procesadores Intel. El código que genera si se le utiliza en AMD es más lento en general que es GCC.
Lo otro es que muchas de las optimizaciones como loop unrolling y las orientadas a aprovechar el ILP (Instruction level Parallelism) de los Pentium 4 que realiza el Intel C++ Compiler son agresivas de modo que nuestro ejecutable binario es en general bastante más grande que el generado por el GCC.
Pero LO MEJORCITO de este compilador es que incluye soporte para OpenMP asi que podremos empezar a programar aplicaciones paralelas
. El soporte para OpenMP recien viene a partir del GCC 4.2 que lastima no es el que instala por defecto Ubuntu Gutsy (viene el 4.1 pero si se puede instalar manualmente el 4.2). Asi que si queremos programar con OpenMP tendremos que usar GCC 4.2 o el Intel C++ Compiler.
Aqui les pongo las instrucciones para la instalación:
Intel® C++ Compiler Professional Edition offers the best support for creating multi-threaded applications. Only the Professional Edition offers the breadth of advanced optimization, multi-threading, and processor support that includes automatic processor dispatch, vectorization, auto-parallelization, OpenMP*, data prefetching, and loop unrolling, along with highly optimized C++ templates for parallelism, math processing, and multimedia libraries.If you want to know the features check here
You need to install non-commercial license software from here
Once you downloaded the file you need to Extract the archive
tar xfzv l_cc_p_10.0.023_ia32.tar.gz
We need to convert the RPM to a debian package using alien
sudo apt-get install alien
cd l_cc_p_10.0.023_ia32/data
sudo alien -cv intel-icc100023-10.0.023-1.i386.rpm
We can now install the debian package
sudo dpkg -i intel-icc100023_10.0.023-2_i386.deb
Now we need to copy our license file to the appropriate directory
sudo mkdir -p /opt/intel/licenses
sudo cp /your/license/path/NCOM_L_CMP_CPP_NB96-WLC77F6B.lic /opt/intel/licenses
Finally, we need to adjust some strings in the executable scripts
cd /opt/intel/cc/10.0.023/bin
sudo perl -pi -w -e ’s/!\/bin\/sh/!\/bin\/bash/g;’ *
sudo perl -pi -w -e ’s/<INSTALLDIR>/\/opt\/intel\/cc\/10.0.023/g;’ *
NOTA IMPORTANTE: Si copian estos comandos directamente es probable que falle, debido a WordPress me cambia el símbolo de ” ‘ ” por un acento, así que si lo copian y pegan, quiten ese símbolo y pongan ustedes un nuevo ” ‘ ” (necesitamos un apostrofe o comilla simple, no un acento).
Lo otro es que deben cambiar el número 10.0.023 por la versión del ICC Compiler que han descargado.
To have the compiler directories in the path environment variable, execute
. ./iccvars.sh
Now, try
icc --version
You should see some output like
icc (ICC) 10.0 20070426
Finally, if you want to have the compiler in the path all the time, append to your ~/.bashrc
source /opt/intel/cc/10.0.023/bin/iccvars.sh
To uninstall, simply select the appropriate intel package in synaptic.