Blog de Abelardo Jara Berrocal: Ubuntu, electronica y software libre

Noviembre 17, 2007

Como instalar el compilador C++ de Intel en Linux para usar OpenMP

Archivado en: Programacion C++ en Linux — Abelardo Jara @ 12:45 pm

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 :D . 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.

Blog de WordPress.com.