Depuración, generación de perfiles y análisis de aplicaciones paralelas
Publicación del inglés original: viernes, 7 de agosto de 2009 a las 11:46 PM PST por Somasegar
Cuando se introduce un modelo de programación, los desarrolladores necesitan soporte de herramientas sólidas para aprenderlo, escribir, depurar y optimizar su código para hacer uso de él. Esto es especialmente cierto para la programación paralela, que agrega un conjunto de nuevas variables a la ecuación.
Visual Studio 2010 ha realizado grandes progresos en la experiencia de depuración paralela. Muchas características también están disponibles como complementos para Visual Studio 2008. Aquí tiene un breve paseo por la programación paralela, su depuración y las características de diagnóstico disponibles en Visual Studio 2008 y en Visual Studio 2010.
Depuración
Aunque Visual Studio 2005 tenía un depurador integrado simple para programas MPI, no se proporcionó una completa experiencia “F5”. El nuevo complemento de de Visual Studio 2008 (en inglés), que también está integrado en Visual Studio 2010, permite seleccionar un nodo principal del clúster, cuántos núcleos desea, y presionar F5 para depurar el programa MPI.
Junto con el gran trabajo que ha realizado el equipo del depurador, Allinea, líder en tecnologías de depuración paralela, ha adaptado su entorno a Visual Studio. El complemento Allinea (en inglés) permite la depuración de MPI específicas aún más eficaz, incluido el rango basado en cambio de contexto, paso group-wise, pausa y ejecución, vista de la pila de ejecución paralela y laminación. A continuación puede ver el entorno de depuración de MPI ’s Allinea:
Depuración de Arquitectura orientada a servicios (Service Oriented Architecture - SOA)
Uno de los nuevos modelos de programación introducidos en Windows HPC Server 2008 fue SOA en clúster, basada en WCF con la programación avanzada y equilibrio de carga proporcionado por el scheduler/broker de HPC. Hasta ahora, la depuración de SOA en clúster estaba limitada al estilo de depuración básico de WCF y .NET sin integración de clúster. En Visual Studio. 2010, un complemento para clústeres SOA activa la ficha Configuración de SOA, lo que permite elegir un nodo principal, nodos de depuración y servicios, implementar las bibliotecas de tiempo de ejecución y limpieza automática. Aquí se puede ver el nuevo depurador SOA en Visual Studio 2010:
Generación de perfiles
Los perfiles integrados compatibles con MPI no estaban disponibles en Windows Server HPC 1.0. Con Windows HPC Server 2008, herramientas como XPerf han habilitado perfiles de MPI, así como generación de perfiles y solución de problemas a nivel de sistema. Pero incluso XPerf no sabía mucho sobre los detalles del tráfico de mensajes MPI y no existían visores de tráfico de mensajes. Desde entonces, Vampir (en inglés), el Visor de tráfico de mensajes MPI principal, se ha trasladado a Windows y está totalmente integrado con ETW. Vampir permite solucionar problemas de orden de mensaje y retrasos. Diversas herramientas HPC de código abierto están disponibles, como JumpShot (en inglés), un visor gratuito de mensaje MPI basado en Java.
A menudo, el generador de perfiles integrado en VS puede ofrecer una perspectiva de los problemas de rendimiento. En Visual Studio. 2010, esta capacidad se ha integrado completamente con el programador de trabajo HPC para ayudar a analizar el comportamiento de un rango o nodo determinado de MPI. El Analizador de Visual Studio MPI muestra información de perfil a nivel de línea, incluida una vista de temperatura de ejecución, side-by-side con vista de origen:
El generador de perfiles también muestra un informe comparativo entre varias ejecuciones para que pueda ver fácilmente el efecto de sus cambios.
Análisis del tiempo de ejecución MPI
A veces más allá de los depuradores y generadores de perfiles, necesita herramientas de análisis especializado para ayudarle con las complejidades de programas paralelos de gran escala. HLRS/ZIH en Stuttgart, un instituto líder en Alemania, ha trasladado Marmot (en inglés), su herramienta de análisis MPI dedicado, a Visual Studio 2008. Marmot puede utilizarse para comprobar la validez de parámetros pasados a llamadas MPI y detectar interbloqueos y administración incorrecta de los recursos. A continuación puede ver Marmot en acción:
De Printf a creación de perfiles integrados y depuración
En un mundo donde depuración estilo printf era lo normal no hace mucho tiempo, lo último en herramientas de depuración y generación de perfiles han dado un paso importante hacia delante.
En Visual Studio, puede depurar y generar perfiles para código nativo así como aplicaciones de MPI y SOA de clúster de alto rendimiento que escalan desde cientos a miles de núcleos. Para obtener una vista realmente holística de la aplicación en el contexto de todo el sistema se pueden utilizar XPerf y ETW. También puede utilizar eficazmente las nuevas herramientas de generación de perfiles y depuración de varios núcleos que se han introducido en Visual Studio 2010 en un clúster de nivel de nodo.
Visual Studio se está convirtiendo en un entorno enriquecido y productivo para escribir programas paralelos de todo tipos. Para obtener más información acerca de modelos de programación de HPC de Windows, visite el Centro de recursos de desarrolladores de Windows HPC Server (en inglés). Puede encontrar un conjunto de ejemplos que utilizan distintos modelos de programación paralelas en el sitio de CodePlex Parallel Dwarfs (en inglés).
¡Namaste!