fbpx
Wikipedia

Intel C++ Compiler

Intel C++ Compiler (también conocido como ICC o ICL) es un conjunto de compiladores para los lenguajes C y C++, desarrollado por Intel. Los compiladores están disponibles para los Sistemas Operativos Linux, Microsoft Windows y Mac OS X.

Intel C++ Compiler
Información general
Tipo de programa Compilador
Desarrollador Intel
Licencia Software no libre
Versiones
Última versión estable 12.1 08 de septiembre de 2011 (9 años, 10 meses y 28 días)
Enlaces
Sitio web oficial

Estos compiladores pueden funcionar sobre procesadores IA-32, Intel 64, Itanium 2, y otros procesadores ajenos a la marca, pero compatibles, como los de AMD. Los desarrolladores, eso sí, deben comprobar los requisitos del sistema. El Intel C++ Compiler para IA-32 e Intel 64 dispone de una vectorización automática que puede generar instrucciones SSE, SSE2, SSE3 y SSE4 SIMD , las variantes de Intel Wireless MMX y MMX 2 para sistemas embebidos.[1]​ Desde su introducción, el Compilador de Intel de C++ para IA-32 ha aumentado considerablemente la adopción de SSE2 en el desarrollo de aplicaciones para Windows.[cita requerida]

El Intel C++ Compiler soporta tanto OpenMP 3.0 como paralelización automática para el multiprocesamiento simétrico. Con el complemento Cluster OpenMP, el compilador también puede generar automáticamente llamadas de Interfaz de Paso de Mensajes para el multiprocesamiento de la memoria distribuida desde las directivas de OpenMP.

ICC pertenece a la familia de compiladores de los Frontend de Edison Design Group (como SGI MIPSpro, Comeau C++, Portland Group y otros más). El compilador es ampliamente utilizado por la SPEC CPU para pruebas de rendimiento de las arquitecturas IA-32, x86-64 e Itanium 2.

ICC puede presentarse de cuatro maneras diferentes. Dentro de Intel Parallel Studio, como paquete en Intel C++ Compiler Professional Edition, en Intel Compiler Suite y en Intel Cluster Toolkit, Compiler Edition. En el sitio Intel Software Products se proporciona mucha más información y recursos.

Optimizaciones

Intel afina este compilador optimizándolo para plataformas de hardware, minimizando estancamientos y produciendo así un código que se ejecuta en un número menor de ciclos. El compilador C++ de Intel soporta tres técnicas de alto nivel por separado para optimizar los programas compilados: optimización interprocedimiento o interprocedural optimization (IPO), optimización guiada por perfil o profile-guided optimization (PGO),[2]​ y optimización de alto nivel o high-level optimizations (HLO). También soporta técnicas y herramientas que agregan paralelismo en las aplicaciones.

Optimización guiada por perfil (o Profile-guided optimization en su versión original) se refiere a un modo de optimización donde el compilador es capaz de acceder a los datos desde una ejecución de ejemplo del programa a través de una entrada de datos representativa. Los datos indicarán que áreas del programa se ejecutan con mayor frecuencia, y que áreas son ejecutadas con menor frecuencia. Todas las optimizaciones se benefician de la realimentación (feedback) guiada por perfil porque dependen menos de la heurística al tomar decisiones de compilación.

Optimizaciones de alto nivel son aquellas que se realizan en una versión del programa que representa más exactamente el código fuente. Esto incluye bucles de intercambio, fusión de bucles, desenvoltura de bucles, distribución de bucles, prelectura de datos y más.[3]​ Estas optimizaciones suelen ser muy agresivas y pueden llevar un considerable tiempo de compilación.

Interprocedural optimization applies typical compiler optimizations (such as constant propagation) but using a broader scope that may include multiple procedures, multiple files, or the entire program.[4]

Los compiladores incluyen una extensión de depuración en paralelo, Bloques de Construcción de Hilos de Intel (Intel Threading Building Blocks), soporte para la función lambda, y una herramienta de comprobación de recursos para usar con el código en hilos.

El compilador de Intel ha sido criticado por aplicar, por defecto, optimizaciones de coma flotante no permitidas en el estándar de C y que requieren flags especiales o específicos con otros compiladores como el conocido GCC.[5]

Lenguajes

La suite de compiladores de Intel tiene frontends para C, C++, y Fortran.

Las versiones más tempranas de ICC que usan versiones anteriores al compilador GCC 3.x para Linux usan el esquema de coloreado de sintaxis de código de Dinkumware con el propósito de proveer una implementación más ajustada al estándar de C++ que GCC en sus versiones 2.x. Esto hace que su ABI incompatible con ambas versiones de GCC. Intel suprimió las bibliotecas de Dinkumware en la versión 10.0, la cual se lanzó en junio de 2007. Desde entonces, el compilador ha sido y sigue siendo compatible con GCC 3.2 y versiones posteriores.

Arquitecturas

Versiones

Las siguientes versiones del Intel C++ Compiler han sido publicadas:

Versión del compilador Fecha de publicación Principales nuevas características
Intel C++ Composer XE 2011 Update 6 y posteriores (compiler 12.1) 8 de septiembre de 2011 Extensiones del lenguaje Intel Cilk Plus actualizadas para soportar la especificación del mismo en su versión 1.1 y disponible ahora en Mac OS X, Windows y Linux, Intel Threading Building Blocks actualizada a la versión 4.0, bloques Apple soportados en Mac OS X, mejorado el soporte para C++11 incluyendo soporte para plantillas Variadic, soporte para OpenMP 3.1.[6]
Intel C++ Composer XE 2011 hasta Update 5 (compiler 12.0) 7 de noviembre de 2010 Extensiones del lenguaje Intel Cilk Plus, Auto-Paralelismo guiado, soporte de C++0x mejorado.[6]
Intel C++ Compiler 11.1 23 de junio de 2009 Soporte para el último Intel SSE SSE4.2, instrucciones AVX y AES. Extensión de compilación paralela. Mejor integración con Microsoft Visual Studio, Eclipse CDT 5.0 y Mac XCode.
Intel C++ Compiler 11.0 6 de noviembre de 2008 Soporte inicial para C++0x [2] (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).. Integración con VS2008 en Windows. OpenMP 3.0. Comprobación en el código fuente de memoria estática/diagnósticos paralelos.
Intel C++ Compiler 10.1 7 de noviembre de 2007 Nueva compatibilidad con la biblioteca de ejecución OpenMP (OpenMP RTL): si usas la nueva OpenMP RTL, puedes mezclar y unir bibliotecas y objetos construidos con Visual C++. Para usar las nuevas bibliotecas, tienes que usar la nueva opción para compilar escribiendo como sigue: "-Qopenmp /Qopenmp-lib:compat" en Windows, y: "-openmp -openmp-lib:compat" en Linux. Esta versión de ICC soporta más intrínsecos de Visual Studio 2005.

Para VS2008 el soporte se reduce a la línea de comandos. La integración con el IDE aún no está soportada.

Intel C++ Compiler 10.0 5 de junio de 2007[7] Mejorado el paralelizador y el vectorizador, Streaming SIMD Extensions 4 (SSE4), nueva y mejorada optimización de informes para transformaciones avanzadas de bucles, nueva implementación de manejo de excepciones optimizada.
Intel C++ Compiler 9.0 14 de junio de 2005[8] Arquitectura AMD64 (para Windows), optimización SSP (pre-computación especulativa basada en software), mejorada la optimización de informes de bucles.[9][10]
Intel C++ Compiler 8.1 Septiembre de 2004 Arquitectura AMD64 (para Linux).[11][12]
Intel C++ Compiler 8.0 15 de diciembre de 2003[13] Cabeceras precompiladas, herramientas de cobertura de código.
Intel C++ Compiler 7.1 Marzo de 2003 Soporte parcial para Intel Pentium 4 con Streaming SIMD Extensions 3 (SSE3).
Intel C++ Compiler 7.0 25 de noviembre de 2002[14]
Intel C++ Compiler 6.0 24 de abril de 2002[15] Ahora disponible para Windows y Linux. El compilador para Linux provee más alta compatibilidad con GCC, incluyendo el próximo GCC-3.1 C++-ABI (compatibilidad binaria) y soporta muchas GNU-ismos (extensiones del lenguaje C que soporta GCC, pero que no están estandarizadas) en la sintaxis. La versión 6.0 de ICC ha mejorado el soporte para las extensiones del lenguaje GNU C y ahora es capaz de construir el núcleo Linux con menores tasas de trabajo para las arquitecturas IA-32 e Itanium.

Prototipos

Además, las siguientes ediciones "prototipo" están disponibles:

Versión de Compilador Fecha de publicación Principales nuevas características
Intel Concurrent Collections for C/C++ 0.3 Septiembre de 2008 "Intel Concurrent Collections for C/C++" provee un mecanismo para construir programas basados en C++ y que se ejecutan en paralelo. Esto permite a los desarrolladores ignorar los problemas del paralelismo, como puede ser al construir hilos en bajo nivel o en la planificación y distribución de computaciones. El modelo permite a los desarrolladores especificar pasos computacionales en alto nivel, incluyendo entradas y salidas (inputs y outputs) sin imponer necesariamente un orden en su ejecución. El código dentro de estos pasos computacionales se escribe usando como referencia el estándar de construcción propio del lenguaje C++. Los datos son locales en pasos computacionales o son explícitamente producidos y consumidos por ellos. Este prototipo de software soporta múltiples estilos de paralelismo, como puede ser de datos, de tareas, o segmentación en paralelo (pipeline).
Intel STM Compiler Prototype Edition 17 de septiembre de 2007[16] Versión prototipo del compilador de Intel que implementa soporte para Software de Memoria Transaccional (STM). El compilador STM de Intel soporta Linux y Windows, y produce código de 32 bit para arquitecturas de procesadores x86 (Intel y AMD). Intel dijo que cree que "la disponibilidad de algún prototipo de compilador permite una exploración sin precedentes por parte de los desarrolladores de software en C/C++ que apunta a una técnica prometedora de hacer que la programación multi-núcleo resulte más fácil". El compilador STM requiere la instalación previa del compilador de Intel.

Documentación

Esta documentación puede encontrarse en Intel Software Technical Documentation site.

Windows Linux Comentarios
/Od -O0 Sin optimización
/O1 -O1 Optimizar en tamaño
/O2 -O2 Optimizar en velocidad y activar algunas optimizaciones
/O3 -O3 Activa todas las optimizaciones como en el código O2, además de optimizaciones de bucles intensivas
/QxO -xO Activa las optimizaciones de las instrucciones SSE3, SSE2 y SSE para CPUs distintas a Intel[17]
/fast -fast Shorthand (método rápido). En Windows esto equivale a "/O3 /Qipo /xT /no-prec-div"; en Linux es "-O3 -ipo -static -xHOST -no-prec-div". Nótese que el flag de la optimización específica del procesador (-xHOST) será optimizado para el mismo procesador. Este el único flag de -fast, el cual puede ser anulado.
/Qprof-gen -prof_gen Compila el programa y lo instrumenta en armonía con el perfil de ejecución.
/Qprof-use -prof_use Debe usarse solamente después de ejecutar un programa que previamente ha sido compilado usando prof_gen. Usa la información del perfil durante cada paso en el proceso de compilación.

Depuración

El compilador de Intel provee información de depuración que es estándar para los depuradores comunes (DWARF 2 en Linux, similar a gdb, y COFF para Windows). Los flags para compilar con la información de depuración son /Zi en Windows y -g en Linux.

Intel también provee su propio debugger llamado idb, el cual puede ser ejecutado tanto en dbx como en gdb en modo de comandos compatible.

Aunque que el compilador de Intel puede generar una salida de profiling compatible con gprof, Intel también provee un nivel en kernel, un perfilador estadístico de sistema completo como producto separado llamado VTune. VTune ofrece una GUI de fácil manejo (integrada en Visual Studio para Windows, Eclipse para Linux) tan buena como la línea de comandos.

Las versiones 11.x del compilador introducen la Extensión de Depuración en Paralelo (Parallel Debugger Extension), la cual provee técnicas de depuración para aplicaciones con hilos de trabajo. Puede ser usada con otros compiladores compatibles, como Microsoft Visual C++ en Windows, que está Visual Studio 2005, 2008 y 2010 y gcc en Linux.

Críticas

Intel y terceros han publicado resultados de estudios de rendimiento a fin de corroborar los anuncios de liderazgo en desempeño sobre otros compiladores y librerías comerciales, de código abierto y de AMD por encima de procesadores Intel y no-Intel. Intel y AMD han documentado indicadores de uso en compiladores Intel para obtener rendimiento óptimo en procesadores Intel y AMD.[18][19]​ Sin embargo, los compiladores Intel han sido acusados de producir código sub-óptimo con propósitos mercenarios. En 2009, un desarrollador había escrito en un blog al respecto:[20]

El compilador Intel y distintas bibliotecas de funciones de Intel tienen rendimiento sub-óptimo en procesadores de AMD y VIA. El motivo es que el compilador o biblioteca puede hacer múltiples versiones de una porción de código, cada una de las cuales está optimizada para un determinado procesador y conjunto de instrucciones, por ejemplo SSE2, SSE3, etc. El sistema incluye una función que detecta sobre qué tipo de CPU se está ejecutando y escoge la ruta de código óptima para esa CPU. Esto es conocido como un despachador de CPU. Sin embargo, el despachador de CPU de Intel no sólo comprueba cuál conjunto de instrucciones es soportado por la CPU, también comprueba la cadena del ID del fabricante. Si esta cadena es "GenuineIntel" entonces el despachador usa la ruta de código óptimo. Si la CPU no es de Intel, en muchos casos, se ejecutará la versión de código más lenta posible, incluso si la CPU es completamente compatible con una mejor versión.

Este despachamiento de CPU específico a un fabricante disminuye el desempeño en procesadores no-Intel de software construido con un compilador Intel o una biblioteca de funciones de Intel - posiblemente sin el conocimiento del programador. Esto ha conducido a estudios de desempeño errados.[20]​ En noviembre de 2009 se acordó una batalla legal entre AMD e Intel sobre este y otros asuntos.[21]​ A finales de 2010, AMD interpuso una investigación anti-monopolio contra Intel.[22]

El acuerdo de la FTC incluyó una disposición de revelación en donde Intel debe:[23]

...publicar con claridad que su compilador discrimina en contra de procesadores no-intel (tales como diseños de AMD), a través de la no utilización de sus características y de la producción de código inferior.

Referencias

  1. A. J. C. Bik, The Software Vectorization Handbook (Intel Press, Hillsboro, OR, 2004), ISBN 0-9743649-2-4.
  2. http://www.ncsa.uiuc.edu/UserInfo/Resources/Software/Intel/Compilers/8.1/ug/lin1063.htm (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  3. The pitfalls of verifying floating-point computations, by David Monniaux, also printed in ACM Transactions on programming languages and systems (TOPLAS), May 2008; section 4.3.2 discusses nonstandard optimizations.
  4. http://software.intel.com/en-us/articles/intel-c-composer-xe-2011-release-notes/
  5. http://www.intel.com/cd/software/products/asmo-na/eng/compilers/clin/219333.htm (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  6. http://www.intel.com/cd/software/products/asmo-na/eng/compilers/cwin/219335.htm (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  7. . Archivado desde el original el 19 de enero de 2015. Consultado el 10 de septiembre de 2009. 
  8. Intel C++ Compiler 8.1 for Windows* Release Notes
  9. Slashdot | Intel C/C++ Compiler 8.0 Released
  10. Slashdot | New Intel Compiler Released
  11. Slashdot | Intel Releases V6.0 Compiler Suite
  12. PRESS KIT - Intel Developer Forum
  13. . Archivado desde el original el 8 de agosto de 2009. 
  14. http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/win/compiler_c/index.htm
  15. [1]
  16. http://download.intel.com/pressroom/legal/AMD_settlement_agreement.pdf
  17. http://newsroom.intel.com/community/intel_newsroom/blog/2010/08/04/intel-and-us-federal-trade-commission-reach-tentative-settlement
  18. . Archivado desde el original el 3 de febrero de 2012. Consultado el 2 de diciembre de 2011. 

Véase también

Enlaces externos

  • LinuxDNA


  •   Datos: Q1340825

intel, compiler, redirige, aquí, para, international, confederaction, labour, véase, confederación, internacional, trabajo, también, conocido, como, conjunto, compiladores, para, lenguajes, desarrollado, intel, compiladores, están, disponibles, para, sistemas,. ICL redirige aqui Para la International Confederaction of Labour vease Confederacion Internacional del Trabajo Intel C Compiler tambien conocido como ICC o ICL es un conjunto de compiladores para los lenguajes C y C desarrollado por Intel Los compiladores estan disponibles para los Sistemas Operativos Linux Microsoft Windows y Mac OS X Intel C CompilerInformacion generalTipo de programaCompiladorDesarrolladorIntelLicenciaSoftware no libreVersionesUltima version estable12 1 08 de septiembre de 2011 9 anos 10 meses y 28 dias EnlacesSitio web oficial editar datos en Wikidata Estos compiladores pueden funcionar sobre procesadores IA 32 Intel 64 Itanium 2 y otros procesadores ajenos a la marca pero compatibles como los de AMD Los desarrolladores eso si deben comprobar los requisitos del sistema El Intel C Compiler para IA 32 e Intel 64 dispone de una vectorizacion automatica que puede generar instrucciones SSE SSE2 SSE3 y SSE4 SIMD las variantes de Intel Wireless MMX y MMX 2 para sistemas embebidos 1 Desde su introduccion el Compilador de Intel de C para IA 32 ha aumentado considerablemente la adopcion de SSE2 en el desarrollo de aplicaciones para Windows cita requerida El Intel C Compiler soporta tanto OpenMP 3 0 como paralelizacion automatica para el multiprocesamiento simetrico Con el complemento Cluster OpenMP el compilador tambien puede generar automaticamente llamadas de Interfaz de Paso de Mensajes para el multiprocesamiento de la memoria distribuida desde las directivas de OpenMP ICC pertenece a la familia de compiladores de los Frontend de Edison Design Group como SGI MIPSpro Comeau C Portland Group y otros mas El compilador es ampliamente utilizado por la SPEC CPU para pruebas de rendimiento de las arquitecturas IA 32 x86 64 e Itanium 2 ICC puede presentarse de cuatro maneras diferentes Dentro de Intel Parallel Studio como paquete en Intel C Compiler Professional Edition en Intel Compiler Suite y en Intel Cluster Toolkit Compiler Edition En el sitio Intel Software Products se proporciona mucha mas informacion y recursos Indice 1 Optimizaciones 2 Lenguajes 3 Arquitecturas 4 Versiones 5 Prototipos 6 Documentacion 7 Depuracion 8 Criticas 9 Referencias 10 Vease tambien 11 Enlaces externosOptimizaciones EditarIntel afina este compilador optimizandolo para plataformas de hardware minimizando estancamientos y produciendo asi un codigo que se ejecuta en un numero menor de ciclos El compilador C de Intel soporta tres tecnicas de alto nivel por separado para optimizar los programas compilados optimizacion interprocedimiento o interprocedural optimization IPO optimizacion guiada por perfil o profile guided optimization PGO 2 y optimizacion de alto nivel o high level optimizations HLO Tambien soporta tecnicas y herramientas que agregan paralelismo en las aplicaciones Optimizacion guiada por perfil o Profile guided optimization en su version original se refiere a un modo de optimizacion donde el compilador es capaz de acceder a los datos desde una ejecucion de ejemplo del programa a traves de una entrada de datos representativa Los datos indicaran que areas del programa se ejecutan con mayor frecuencia y que areas son ejecutadas con menor frecuencia Todas las optimizaciones se benefician de la realimentacion feedback guiada por perfil porque dependen menos de la heuristica al tomar decisiones de compilacion Optimizaciones de alto nivel son aquellas que se realizan en una version del programa que representa mas exactamente el codigo fuente Esto incluye bucles de intercambio fusion de bucles desenvoltura de bucles distribucion de bucles prelectura de datos y mas 3 Estas optimizaciones suelen ser muy agresivas y pueden llevar un considerable tiempo de compilacion Interprocedural optimization applies typical compiler optimizations such as constant propagation but using a broader scope that may include multiple procedures multiple files or the entire program 4 Los compiladores incluyen una extension de depuracion en paralelo Bloques de Construccion de Hilos de Intel Intel Threading Building Blocks soporte para la funcion lambda y una herramienta de comprobacion de recursos para usar con el codigo en hilos El compilador de Intel ha sido criticado por aplicar por defecto optimizaciones de coma flotante no permitidas en el estandar de C y que requieren flags especiales o especificos con otros compiladores como el conocido GCC 5 Lenguajes Editar Este articulo o seccion necesita la atencion de un experto en la materia Por favor ayuda a encontrarlo o mejora esta pagina si puedes mira la discusion La suite de compiladores de Intel tiene frontends para C C y Fortran Las versiones mas tempranas de ICC que usan versiones anteriores al compilador GCC 3 x para Linux usan el esquema de coloreado de sintaxis de codigo de Dinkumware con el proposito de proveer una implementacion mas ajustada al estandar de C que GCC en sus versiones 2 x Esto hace que su ABI incompatible con ambas versiones de GCC Intel suprimio las bibliotecas de Dinkumware en la version 10 0 la cual se lanzo en junio de 2007 Desde entonces el compilador ha sido y sigue siendo compatible con GCC 3 2 y versiones posteriores Arquitecturas EditarIA 32 x86 64 Intel 64 and AMD64 IA 64 y o Itanium Versiones EditarLas siguientes versiones del Intel C Compiler han sido publicadas Version del compilador Fecha de publicacion Principales nuevas caracteristicasIntel C Composer XE 2011 Update 6 y posteriores compiler 12 1 8 de septiembre de 2011 Extensiones del lenguaje Intel Cilk Plus actualizadas para soportar la especificacion del mismo en su version 1 1 y disponible ahora en Mac OS X Windows y Linux Intel Threading Building Blocks actualizada a la version 4 0 bloques Apple soportados en Mac OS X mejorado el soporte para C 11 incluyendo soporte para plantillas Variadic soporte para OpenMP 3 1 6 Intel C Composer XE 2011 hasta Update 5 compiler 12 0 7 de noviembre de 2010 Extensiones del lenguaje Intel Cilk Plus Auto Paralelismo guiado soporte de C 0x mejorado 6 Intel C Compiler 11 1 23 de junio de 2009 Soporte para el ultimo Intel SSE SSE4 2 instrucciones AVX y AES Extension de compilacion paralela Mejor integracion con Microsoft Visual Studio Eclipse CDT 5 0 y Mac XCode Intel C Compiler 11 0 6 de noviembre de 2008 Soporte inicial para C 0x 2 enlace roto disponible en Internet Archive vease el historial la primera version y la ultima Integracion con VS2008 en Windows OpenMP 3 0 Comprobacion en el codigo fuente de memoria estatica diagnosticos paralelos Intel C Compiler 10 1 7 de noviembre de 2007 Nueva compatibilidad con la biblioteca de ejecucion OpenMP OpenMP RTL si usas la nueva OpenMP RTL puedes mezclar y unir bibliotecas y objetos construidos con Visual C Para usar las nuevas bibliotecas tienes que usar la nueva opcion para compilar escribiendo como sigue Qopenmp Qopenmp lib compat en Windows y openmp openmp lib compat en Linux Esta version de ICC soporta mas intrinsecos de Visual Studio 2005 Para VS2008 el soporte se reduce a la linea de comandos La integracion con el IDE aun no esta soportada Intel C Compiler 10 0 5 de junio de 2007 7 Mejorado el paralelizador y el vectorizador Streaming SIMD Extensions 4 SSE4 nueva y mejorada optimizacion de informes para transformaciones avanzadas de bucles nueva implementacion de manejo de excepciones optimizada Intel C Compiler 9 0 14 de junio de 2005 8 Arquitectura AMD64 para Windows optimizacion SSP pre computacion especulativa basada en software mejorada la optimizacion de informes de bucles 9 10 Intel C Compiler 8 1 Septiembre de 2004 Arquitectura AMD64 para Linux 11 12 Intel C Compiler 8 0 15 de diciembre de 2003 13 Cabeceras precompiladas herramientas de cobertura de codigo Intel C Compiler 7 1 Marzo de 2003 Soporte parcial para Intel Pentium 4 con Streaming SIMD Extensions 3 SSE3 Intel C Compiler 7 0 25 de noviembre de 2002 14 Intel C Compiler 6 0 24 de abril de 2002 15 Ahora disponible para Windows y Linux El compilador para Linux provee mas alta compatibilidad con GCC incluyendo el proximo GCC 3 1 C ABI compatibilidad binaria y soporta muchas GNU ismos extensiones del lenguaje C que soporta GCC pero que no estan estandarizadas en la sintaxis La version 6 0 de ICC ha mejorado el soporte para las extensiones del lenguaje GNU C y ahora es capaz de construir el nucleo Linux con menores tasas de trabajo para las arquitecturas IA 32 e Itanium Prototipos EditarAdemas las siguientes ediciones prototipo estan disponibles Version de Compilador Fecha de publicacion Principales nuevas caracteristicasIntel Concurrent Collections for C C 0 3 Septiembre de 2008 Intel Concurrent Collections for C C provee un mecanismo para construir programas basados en C y que se ejecutan en paralelo Esto permite a los desarrolladores ignorar los problemas del paralelismo como puede ser al construir hilos en bajo nivel o en la planificacion y distribucion de computaciones El modelo permite a los desarrolladores especificar pasos computacionales en alto nivel incluyendo entradas y salidas inputs y outputs sin imponer necesariamente un orden en su ejecucion El codigo dentro de estos pasos computacionales se escribe usando como referencia el estandar de construccion propio del lenguaje C Los datos son locales en pasos computacionales o son explicitamente producidos y consumidos por ellos Este prototipo de software soporta multiples estilos de paralelismo como puede ser de datos de tareas o segmentacion en paralelo pipeline Intel STM Compiler Prototype Edition 17 de septiembre de 2007 16 Version prototipo del compilador de Intel que implementa soporte para Software de Memoria Transaccional STM El compilador STM de Intel soporta Linux y Windows y produce codigo de 32 bit para arquitecturas de procesadores x86 Intel y AMD Intel dijo que cree que la disponibilidad de algun prototipo de compilador permite una exploracion sin precedentes por parte de los desarrolladores de software en C C que apunta a una tecnica prometedora de hacer que la programacion multi nucleo resulte mas facil El compilador STM requiere la instalacion previa del compilador de Intel Documentacion EditarEsta documentacion puede encontrarse en Intel Software Technical Documentation site Windows Linux Comentarios Od O0 Sin optimizacion O1 O1 Optimizar en tamano O2 O2 Optimizar en velocidad y activar algunas optimizaciones O3 O3 Activa todas las optimizaciones como en el codigo O2 ademas de optimizaciones de bucles intensivas QxO xO Activa las optimizaciones de las instrucciones SSE3 SSE2 y SSE para CPUs distintas a Intel 17 fast fast Shorthand metodo rapido En Windows esto equivale a O3 Qipo xT no prec div en Linux es O3 ipo static xHOST no prec div Notese que el flag de la optimizacion especifica del procesador xHOST sera optimizado para el mismo procesador Este el unico flag de fast el cual puede ser anulado Qprof gen prof gen Compila el programa y lo instrumenta en armonia con el perfil de ejecucion Qprof use prof use Debe usarse solamente despues de ejecutar un programa que previamente ha sido compilado usando prof gen Usa la informacion del perfil durante cada paso en el proceso de compilacion Depuracion EditarEl compilador de Intel provee informacion de depuracion que es estandar para los depuradores comunes DWARF 2 en Linux similar a gdb y COFF para Windows Los flags para compilar con la informacion de depuracion son Zi en Windows y g en Linux Intel tambien provee su propio debugger llamado idb el cual puede ser ejecutado tanto en dbx como en gdb en modo de comandos compatible Aunque que el compilador de Intel puede generar una salida de profiling compatible con gprof Intel tambien provee un nivel en kernel un perfilador estadistico de sistema completo como producto separado llamado VTune VTune ofrece una GUI de facil manejo integrada en Visual Studio para Windows Eclipse para Linux tan buena como la linea de comandos Las versiones 11 x del compilador introducen la Extension de Depuracion en Paralelo Parallel Debugger Extension la cual provee tecnicas de depuracion para aplicaciones con hilos de trabajo Puede ser usada con otros compiladores compatibles como Microsoft Visual C en Windows que esta Visual Studio 2005 2008 y 2010 y gcc en Linux Criticas EditarIntel y terceros han publicado resultados de estudios de rendimiento a fin de corroborar los anuncios de liderazgo en desempeno sobre otros compiladores y librerias comerciales de codigo abierto y de AMD por encima de procesadores Intel y no Intel Intel y AMD han documentado indicadores de uso en compiladores Intel para obtener rendimiento optimo en procesadores Intel y AMD 18 19 Sin embargo los compiladores Intel han sido acusados de producir codigo sub optimo con propositos mercenarios En 2009 un desarrollador habia escrito en un blog al respecto 20 El compilador Intel y distintas bibliotecas de funciones de Intel tienen rendimiento sub optimo en procesadores de AMD y VIA El motivo es que el compilador o biblioteca puede hacer multiples versiones de una porcion de codigo cada una de las cuales esta optimizada para un determinado procesador y conjunto de instrucciones por ejemplo SSE2 SSE3 etc El sistema incluye una funcion que detecta sobre que tipo de CPU se esta ejecutando y escoge la ruta de codigo optima para esa CPU Esto es conocido como un despachador de CPU Sin embargo el despachador de CPU de Intel no solo comprueba cual conjunto de instrucciones es soportado por la CPU tambien comprueba la cadena del ID del fabricante Si esta cadena es GenuineIntel entonces el despachador usa la ruta de codigo optimo Si la CPU no es de Intel en muchos casos se ejecutara la version de codigo mas lenta posible incluso si la CPU es completamente compatible con una mejor version Este despachamiento de CPU especifico a un fabricante disminuye el desempeno en procesadores no Intel de software construido con un compilador Intel o una biblioteca de funciones de Intel posiblemente sin el conocimiento del programador Esto ha conducido a estudios de desempeno errados 20 En noviembre de 2009 se acordo una batalla legal entre AMD e Intel sobre este y otros asuntos 21 A finales de 2010 AMD interpuso una investigacion anti monopolio contra Intel 22 El acuerdo de la FTC incluyo una disposicion de revelacion en donde Intel debe 23 publicar con claridad que su compilador discrimina en contra de procesadores no intel tales como disenos de AMD a traves de la no utilizacion de sus caracteristicas y de la produccion de codigo inferior Referencias EditarEsta obra contiene una traduccion derivada de Intel C Compiler de la Wikipedia en ingles publicada por sus editores bajo la Licencia de documentacion libre de GNU y la Licencia Creative Commons Atribucion CompartirIgual 3 0 Unported A J C Bik The Software Vectorization Handbook Intel Press Hillsboro OR 2004 ISBN 0 9743649 2 4 Profile guided Optimizations Overview http www ncsa uiuc edu UserInfo Resources Software Intel Compilers 8 1 ug lin1063 htm enlace roto disponible en Internet Archive vease el historial la primera version y la ultima Intel C Compiler 10 1 for Linux The pitfalls of verifying floating point computations by David Monniaux also printed in ACM Transactions on programming languages and systems TOPLAS May 2008 section 4 3 2 discusses nonstandard optimizations a b http software intel com en us articles intel c composer xe 2011 release notes New Intel Products Simplify and Speed Software Development for Multi Core Processors New Intel Software Tools Unlock Potential of Multi Core Platforms http www intel com cd software products asmo na eng compilers clin 219333 htm enlace roto disponible en Internet Archive vease el historial la primera version y la ultima http www intel com cd software products asmo na eng compilers cwin 219335 htm enlace roto disponible en Internet Archive vease el historial la primera version y la ultima Intel C Compiler 8 1 for Linux Release Notes Archivado desde el original el 19 de enero de 2015 Consultado el 10 de septiembre de 2009 Intel C Compiler 8 1 for Windows Release Notes Slashdot Intel C C Compiler 8 0 Released Slashdot New Intel Compiler Released Slashdot Intel Releases V6 0 Compiler Suite PRESS KIT Intel Developer Forum Intel R C Compiler 10 1 for Windows Release Notes Archivado desde el original el 8 de agosto de 2009 http software intel com sites products documentation hpc compilerpro en us cpp win compiler c index htm https web archive org web 20110322061401 http developer amd com Assets CompilerOptQuickRef 61004100 pdf a b 1 http download intel com pressroom legal AMD settlement agreement pdf http newsroom intel com community intel newsroom blog 2010 08 04 intel and us federal trade commission reach tentative settlement FTC Intel Reach Settlement Intel Banned From Anticompetitive Practices Archivado desde el original el 3 de febrero de 2012 Consultado el 2 de diciembre de 2011 Vease tambien EditarNucleo LinuxEnlaces externos EditarIntel Compilers LinuxDNA Datos Q1340825Obtenido de https es wikipedia org w index php title Intel C 2B 2B Compiler amp oldid 135176109, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos