Ya sea que usted esté trabajando con clústeres HPC, nubes remotas, estaciones de trabajo local, o cualquier combinación de esos ambientes, Intel Parallel Studio XE es un caballo de batalla a su disposición – con compiladores, librerías y herramientas que le ayudarán a mejorar su productividad y el rendimiento de sus aplicaciones. E Intel continúa innovando con la versión más reciente de Intel Parallel Studio XE. Además de añadir soporte para las más recientes novedades de hardware y estándares de lenguajes de programación, diversas nuevas características se orientan a las tecnologías en crecimiento y los nuevos entornos.
NOVEDADES EN INTEL PARALLEL STUDIO XE
Hardware
Las herramientas incluidas en Intel Parallel Studio XE ofrecen soporte para las más recientes tecnologías de hardware, incluyendo los procesadores Intel Xeon Phi y la familia de procesadores escalables Intel Xeon. La posibilidad de aprovechar los más de 60 núcleos (más de 200 hilos) de los procesadores Intel Xeon Phi y las más recientes instrucciones vectorizadas de Intel® AVX-512 en dichas plataformas mueve el rendimiento de sus aplicaciones hacia el futuro – y la más reciente versión de la suite de herramientas le ayuda a llegar allí.
Compiladores
Los compiladores de Intel para C/C++ y Fortran han sido actualizados para muchos de los más recientes estándares sin sacrificar el rendimiento. El compilador de Intel de C/C++ ofrece soporte completo para C 11 y C++ 14, así como soporte inicial para C++ 17. El compilador de Fortran ofrece soporte completo para Fortran 2008 y soporte inicial para Fortran 2015. Además, para ayudarle a aprovechar la creciente cantidad de núcleos y registros vectoriales, esta nueva versión añade la librería Parallel Standard Template Library (Parallel STL) para la ejecución paralela y vectorial de la STL de C++ y soporte para la especificación temporal de OpenMP 5.0. Utilizar el compilador de Intel es frecuentemente tan sencillo como cambiar unas cuantas variables en un archivo Makefile o integrarlo con su entorno de desarrollo, como Microsoft Visual Studio o XCode. Pruebe una evaluación gratuita para comprobar cuánto puede incrementar el rendimiento de su aplicación.
Python de alto rendimiento
La más reciente versión de Intel Distribution for Python mejora la velocidad de muchas librerías comunes y algoritmos, especialmente en el análisis de datos (Figura 1). Las nuevas optimizaciones en los paquetes SciPy y NumPy ofrecen incrementos de velocidad para scikit-learn, una de las librerías de aprendizaje de ordenador más populares. Esta distribución de Intel para Python aprovecha además la librería Intel Data Analytics Acceleration Library (Intel DAAL) a través de la interfaz pyDAAL. Para algunos algoritmos de scikit-learn se han alcanzado ganancias de rendimiento de hasta 140X.
La nueva versión además incluye un paquete para OpenCV acelerado mediante el uso de Intel Integrated Performance Primitives. OpenCV es una librería muy popular, que se utiliza frecuentemente para aplicaciones de visión por ordenador en numerosas disciplinas.
Rendimiento de Python como porcentaje de C++/Intel DAAL en procesadores Intel Xeon (un valor más alto es mejor).
Librerías de rendimiento
Intel Parallel Studio XE ofrece desde siempre diversas librerías diseñadas para facilitar la creación de software de alto rendimiento. La más reciente versión extiende esa motivación mediante algoritmos y usabilidad mejorados en todos los ámbitos.
Intel MKL implementa algunas de las más comunes rutinas matemáticas en versiones altamente optimizadas y puestas a punto manualmente para aprovechar las características más recientes de los procesadores. Se han realizado varias mejoras a las operaciones empaquetadas y en lote, permitiendo que los usuarios ejecuten grandes grupos de cálculos de álgebra lineal de una manera eficiente. [Nota del Editor: La API para operaciones en lote (Batch API) se discute en el artículo “Introducing Batch GEMM Operations”, alojado en Intel Developer Zone. La API para operaciones empaquetadas (Packed API) fue presentada en el artículo “Reduciendo la sobrecarga del empaquetado en la multiplicación de matrices” en el ejemplar 27 de The Parallel Universe]. Intel MKL se encarga del agrupamiento y la paralelización por detrás del telón. Adicionalmente, esta versión añade 24 nuevas funciones matemáticas vectoriales, ofreciendo un rango más alto de rutinas altamente optimizadas entre las que elegir.
Intel IPP ofrece bloques básicos de bajo nivel optimizados para el rendimiento para aplicaciones de procesamiento de imágenes, señales y datos (compresión/descompresión y criptografía). La más reciente versión de Intel IPP ha mejorado sensiblemente otra vez muchos algoritmos sensibles al rendimiento, incluyendo la adición de instrucciones vectoriales de SSE4.2 y AVX2 para la compresión de datos LZO (Lempel–Ziv–Oberhumer). Además, se ha eliminado la dependencia que el paquete de criptografía tenía de la librería principal, facilitando así el aprovechamiento de los potentes algoritmos de criptografía incluidos en Intel IPP.
Los desarrolladores que necesitan paralelizar sus aplicaciones C++ conocen Intel TBB desde hace años. Esta librería de código fuente abierto ha sido mejorada una y otra vez, y ahora Intel TBB se utiliza en la implementación de Intel de la librería Parallel STL.
Herramientas de análisis
Las ediciones Profesional y Clúster de Intel Parallel Studio XE incluyen diversas herramientas para ayudarle a analizar, poner a punto y depurar aplicaciones en ecosistemas de hardware y software cada vez más complejos.
Ya esté usted buscando aumentar el rendimiento a través del paralelismo o la vectorización, Intel Advisor le puede ayudar. ¿En qué funciones y bucles debe usted concentrarse para las optimizaciones? ¿Qué está impidiendo que el compilador vectorice su código? ¿Cuánto mejorará su rendimiento si aplica los cambios recomendados? Intel Advisor ha sido diseñado para responder a preguntas como ésas. La versión de 2018 de Intel Advisor incluye la potente característica conocida como “análisis desde arriba” (Roofline Analysis) para detectar los cuellos de botella de memoria, y específicamente los bucles que sufren debido a una pobre vectorización o a la localidad de memoria (Figura 2).
Utilice Intel Advisor para determinar fácilmente cuándo y cómo su código puede beneficiarse de los avances más recientes en tecnologías como AVX-512 y las arquitecturas altamente paralelas de Intel Xeon y Xeon Phi.
Intel VTune Amplifier es una potente herramienta de análisis con asistencia experta incorporada para ayudarle a entender y mejorar el rendimiento de su aplicación. Adicionalmente, ahora incluye Performance Snapshot (Figura 3), y un script rápido y fácil de usar que ofrece una vista de alto nivel de del uso del hardware disponible (CPU, FPU y memoria) por parte de una aplicación. Ya esté usted paralelizando mediante MPI, OpenMP o ambas, el tiempo consumido dentro de esas librerías o el tiempo consumido esperando a que finalice el trabajo paralelo pueden fácilmente degradar el rendimiento.
Adicionalmente, permitir que las unidades de punto flotante estén ociosas o que las CPU se estanquen esperando por accesos a memoria puede hacer que se desaprovechen muchas oportunidades de mejorar el rendimiento. Utilice Performance Snapshot para recuperar esos ciclos perdidos.
Intel VTune Amplifier también está añadiendo nuevas características para permitir que los usuarios aprovechen nuevas tecnologías como los contenedores y la computación en la nube. Ahora es posible perfilar aplicaciones que se ejecutan en contenedores Docker o Mesos, o adjuntar un análisis de rendimiento de Intel VTune Amplifier a un servicio o demonio de Java.
”Análisis desde arriba” de Intel Advisor
Performance Snapshot de Intel VTune Amplifier
La optimización del rendimiento de las aplicaciones es tan importante como siempre, pero todo ello será para nada si la aplicación deja de funcionar correctamente. Intel Inspector verifica automáticamente su aplicación en busca de errores de hilos o de memoria en la medida en que ésta se ejecuta. Tales problemas son difíciles de diagnosticar y pueden no ser detectados mediante pruebas estándar que podrían apoyarse en resultados incorrectos. Sin embargo, los algoritmos incorporados en Intel Inspector pueden detectar problemas que pudieran causar un problema en el futuro, tales como goteos (leaks) de memoria y condiciones de carrera (race conditions) no-deterministas. Se han añadido modelos de bloqueo más avanzados en esta versión, y como Intel Inspector no requiere ninguna re-compilación especial, solo es cuestión de unos cuantos clics de ratón lanzar un perfilado y ver qué problemas podrían estar ocultos en su código.
HERRAMIENTAS PARA CLÚSTERES
La computación basada en clústeres anteriormente estaba confinada a una audiencia bastante limitada que necesitaba acceso remoto a clústeres grandes y frecuentemente controlados estrictamente. Ahora, con la ubicuidad de los recursos de computación en la nube y procesadores como Intel Xeon Phi (con suficientes núcleos para actuar como un clúster de un solo nodo), la computación para clústeres está expandiendo su alcance. Intel siempre ha estado presente en este campo, y las herramientas de la edición Clúster de Intel Parallel Studio XE reflejan esa experiencia.
La versión más reciente de Intel MPI Library incluye optimizaciones significativas para el arranque y finalización de las aplicaciones, mejorando la productividad y escalabilidad.
Intel Trace Analyzer and Collector ahora soporta OpenSHMEM, una especificación que está despertando un interés significativo entre la comunidad que promueve un espacio de direcciones global particionado (Partitioned Global Address Space, PGAS).
Una reciente adición a la suite de herramientas es Intel Cluster Checker, que utiliza un sistema experto embebido en el software para diagnosticar problemas de clústeres y proponer remedios accionables. [Nota del Editor: Intel Cluster Checker se discute con mayor detalle en el artículo ¿Está saludable su clúster? en este mismo ejemplar].
Intel Cluster Checker realiza pruebas para identificar problemas en la funcionalidad del clúster, el rendimiento y la uniformidad, incluyendo pruebas relacionadas con el hardware y software más recientes de Intel. La herramienta es útil para los administradores de sistemas que necesite comprobar frecuentemente el estado de los clústeres. Ahora la API correspondiente ofrece a los desarrolladores acceso a esos diagnósticos y puede ofrecer un análisis personalizado de acuerdo a sus necesidades.
Dejar un comentario
¿Quieres unirte a la conversación?¡Siéntete libre de contribuir!