performance - mala - el costo de la no calidad ensayo
Herramientas para medir los costos de comunicaciĆ³n de MPI (1)
Sí, hay muchas de esas herramientas. MPI define una interfaz de herramientas que permite a otras bibliotecas interponerse en sus llamadas a funciones MPI, y hacer recuentos, tiempos, etc.
Una herramienta de generación de perfiles MPI muy pequeña es mpiP ; brinda un resumen muy breve de la actividad de MPI en su código.
La biblioteca de IPM es bastante fácil de construir y le proporciona muchos recuentos y tiempos de MPI, y da como resultado un buen archivo HTML. Mencionas PAPI; IPM también integrará contadores PAPI si están disponibles. Usamos esto regularmente en nuestro centro, y creo que esto haría lo que quisieras. Si ha creado su programa con bibliotecas dinámicas para MPI, ni siquiera necesita volver a compilar para usarlo (mpiP tiene la misma propiedad).
Jumpshot , que viene con MPICH2 pero se puede construir con cualquier MPI, en realidad muestra en una línea de tiempo cuánto tiempo tomó cada operación de MPI.
OpenSpeedshop ofrece mediciones de rendimiento muy detalladas de su código, destacando especialmente las líneas "caras"; también tiene un modo de rastreo de MPI que identificará los tiempos de MPI por línea de código. Puede ser complicado de instalar.
En la parte comercial del espectro, están Vampir de TU Dresden e Intel Trace Analyzer and Collector (ITAC). Vampir colecciona rastros de nivel de fuente, MPI y OpenMP usando la biblioteca de código abierto VampirTrace que también se integra con PAPI para proporcionar un seguimiento detallado de eventos y contadores. Las huellas de VampirTrace están en formato Open Trace que podrían leer otras herramientas además de Vampir.
ITAC es parte de Intel Cluster Studio XE . Está diseñado principalmente para trabajar con Intel MPI y compartir el mismo código ancestral con Vampir, proporciona más o menos la misma funcionalidad. Una de sus características agradables es el corrector de corrección de MPI automático en tiempo de ejecución incluido.
Allinea MAP es un generador de perfiles MPI de Allinea que proporciona análisis de rendimiento con un explorador fuente integrado que muestra el costo de comunicación / cálculo junto con las líneas individuales del código fuente. También muestra gráficos de alto nivel de la información de rendimiento, incluida la memoria, las instrucciones de la CPU y la comunicación.
Pero hay otras herramientas de nivel superior que no solo dan informes, sino que ofrecen consejos. "Perfexpert" de TACC es una herramienta basada en línea de comandos que toma una serie de medidas y ofrece algunos consejos de ajuste de rendimiento. Scalasca de Jülich, recompila su código con una gran cantidad de instrumentación a nivel de fuente y puede señalar desequilibrios de carga, particularmente colectivos MPI caros, etc. También se puede integrar con Vampir para un análisis de trazas detallado.
Estoy usando MPI y quiero medir los costos de comunicación, de modo que pueda compararlos con los costos de ''procesamiento'', por ejemplo, ¿cuánto tiempo necesito para dispersar una lista a través de n procesos y luego compararla con la cantidad tiempo que necesito ordenarlo
¿Alguien sabe alguna herramienta para medir los costos de comunicación? (la dispersión, por ejemplo)
¿Hay algo para hacer mediciones en los costos de comunicación MPI como, por ejemplo, PAPI para analizar el rendimiento del código?
¡Gracias por adelantado!