Intel Fortran Compiler , como parte del kit de herramientas Intel OneAPI HPC, es un grupo de compiladores Fortran de Intel para Windows , macOS y Linux .
Descripción general
Los compiladores generan código para procesadores IA-32 e Intel 64 y ciertos procesadores que no son Intel pero que son compatibles, como ciertos procesadores AMD . Una versión específica del compilador (11.1) sigue estando disponible para el desarrollo de aplicaciones basadas en Linux para procesadores IA-64 ( Itanium 2 ). En Windows, se conoce como Intel Visual Fortran. [2] En macOS y Linux, se conoce como Intel Fortran. En 2020, el compilador existente pasó a llamarse "Intel Fortran Compiler Classic" (ifort) y se introdujo un nuevo compilador Intel Fortran para oneAPI (ifx) que admite la descarga de GPU.
La versión 2021 del compilador Classic agrega compatibilidad total con Fortran a través del estándar 2018, OpenMP* 4.5 completo y Open MP 5.1 inicial solo para CPU. El compilador beta 2021 se centra en OpenMP para la descarga de GPU. Cuando se utiliza con el kit de herramientas Intel OneAPI HPC (consulte la "Descripción del empaquetado" a continuación), el compilador también puede generar automáticamente llamadas de interfaz de paso de mensajes para el multiprocesamiento de memoria distribuida a partir de directivas OpenMP.
Para obtener más información sobre los estándares de Fortran, hay varios recursos disponibles, como la entrada de Fortran en Wikipedia o la página wiki de Fortran.
El paquete Intel Fortran incluía Intel Array Visualizer, una herramienta de visualización para formatos científicos como FITS y netCDF , que puede producir gráficos xy, gráficos de contorno y gráficos de imágenes, y guardarlos en otros formatos. [3] [4]
Optimizaciones
Los compiladores Intel están optimizados [5] para sistemas informáticos que utilizan procesadores compatibles con arquitecturas Intel. Están diseñados para minimizar los bloqueos y producir código que se ejecute en la menor cantidad posible de ciclos. Los compiladores Intel Fortran admiten tres técnicas de alto nivel independientes para optimizar el programa compilado: optimización interprocedimental (IPO), optimización guiada por perfiles (PGO) y otras optimizaciones de alto nivel (HLO).
La optimización interprocedimental aplica optimizaciones típicas del compilador (como la propagación constante) pero utiliza un alcance más amplio que puede incluir múltiples procedimientos, múltiples archivos o el programa completo. [6]
En cuanto a la optimización guiada por perfiles , el compilador genera un conjunto de datos de información relacionada con el rendimiento a partir del uso de la aplicación con cargas de trabajo representativas, que luego analiza para encontrar qué partes de la aplicación se ejecutan con mayor y menor frecuencia. El compilador utiliza estos datos para organizar la ejecución de la aplicación con el fin de optimizar el rendimiento en función de cómo se utiliza realmente la aplicación. Esto contrasta con la IPO, que optimiza las aplicaciones según el flujo lógico de la aplicación independientemente de las cargas de trabajo. Los dos se pueden combinar para proporcionar optimizaciones basadas en la carga de trabajo dentro de las cuales se optimiza el flujo lógico. Por lo tanto, todas las optimizaciones pueden beneficiarse de la retroalimentación guiada por perfiles porque dependen menos de la heurística al tomar decisiones de compilación.
Las optimizaciones de alto nivel son optimizaciones realizadas en una versión del programa que representa de forma más precisa el código fuente. Esto incluye el intercambio de bucles , la fusión de bucles , el desenrollado de bucles , la distribución de bucles , la precarga de datos y más. [7]
Soporte de estándares
El compilador Intel Fortran Classic es totalmente compatible con Fortran hasta el estándar 2018. El compilador Intel Fortran (Beta) es totalmente compatible con Fortran 77/90/95 y tiene compatibilidad parcial con el estándar Fortran 2003.
Arquitecturas
- IA-32
- x86-64 ( Intel 64 y AMD64 )
- Coprocesador Intel Xeon Phi
- IA-64 ( Itanium 2)
- X y arquitectura
Descripción del embalaje
Los compiladores están disponibles de forma independiente en Intel y en los repositorios APT y Yum. También están disponibles en el kit de herramientas Intel oneAPI HPC, que incluye otras herramientas de compilación, como bibliotecas, y herramientas de análisis para la comprobación de errores y el análisis del rendimiento. Los contenedores con los compiladores están en Docker Hub.
Historia desde 2003
Depuración
El compilador Intel proporciona 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 indicadores para compilar con información de depuración son /Zi en Windows y -g en Linux. La depuración se realiza en Windows mediante el depurador de Visual Studio y en Linux mediante gdb.
Si bien el compilador Intel puede generar una salida de perfilado compatible con gprof , Intel también proporciona un perfilador estadístico a nivel de kernel y de todo el sistema como un producto independiente llamado VTune . VTune cuenta con una interfaz gráfica de usuario fácil de usar (integrada en Visual Studio para Windows, Eclipse para Linux) así como una interfaz de línea de comandos. Además del perfilador VTune, existe Intel Advisor , que se especializa en la optimización de vectorización y herramientas para el diseño de subprocesos y la creación de prototipos.
Intel también ofrece una herramienta para la detección de errores de memoria y subprocesos llamada Intel Inspector XE. En lo que respecta a los errores de memoria, ayuda a detectar fugas de memoria , corrupción de memoria, asignación/desasignación de desajustes de API y uso inconsistente de la API de memoria. En lo que respecta a los errores de subprocesos, ayuda a detectar carreras de datos (tanto en montón como en pila), interbloqueos y errores de API de subprocesos y sincronización.
Véase también
- Primitivas de rendimiento integradas (IPP) de Intel
- Biblioteca de análisis de datos oneAPI (oneDAL)
- Biblioteca de núcleo matemático Intel oneAPI (oneMKL)
- Bloques de creación de subprocesos de oneAPI (oneTBB)
- Perfilador VTune
- Compilador Intel C++
- Intel Developer Zone (Intel DZ; soporte y discusión)
- Estudio paralelo Intel XE
Referencias
- ^ ab "Notas de la versión del compilador Intel® Fortran para oneAPI". Intel . Consultado el 28 de diciembre de 2020 .
- ^ "Intel Visual Fortran Compiler Professional Edition para Windows". cnet.com .
- ^ Readey, John (27 de octubre de 2004). Intel Array Visualizer. HDF Workshop VIII . Consultado el 6 de mayo de 2023 .
- ^ "Intel Array Visualizer". Intel Developer Zone . 7 de marzo de 2016. Archivado desde el original el 7 de marzo de 2016 . Consultado el 6 de mayo de 2023 .
- ^ "Intel (Fortran, C y C++)". NERSC.gov .
- ^ Documentación del compilador de Intel. Seleccione el compilador Fortran que prefiera y busque Optimización guiada por perfiles. http://software.intel.com/en-us/intel-software-technical-documentation
- ^ El libro de recetas de optimización de software: recetas de alto rendimiento para plataformas IA-32, Richard Gerber, Aart JC Bik, Kevin B. Smith y Xinmin Tian, Intel Press, 2006
- ^ "Intel Visual Fortran 15 ya disponible".
- ^ "Características del lenguaje Fortran y OpenMP* implementadas en el compilador Fortran de Intel®". Compilador Fortran de Intel®. Intel . Consultado el 27 de diciembre de 2021 .
- ^ "El próximo capítulo del compilador Intel® Fortran 2023". community.intel.com . 2022-12-21 . Consultado el 2023-02-13 .
- ^ "DISPONIBLE AHORA! Intel Software Developer Tools 2024.0". community.intel.com . 2022-12-21 . Consultado el 2024-09-10 .
Enlaces externos
- Sitio web oficial