profiling fortran mpi profiler

profiling - Buen perfilador para Fortran y MPI



profiler (6)

gprof es un buen generador de perfiles para Fortran y otros compiladores basados ​​en GNU.

¿Qué generador de perfiles usas para la base de código Fortran con MPI? gprof no parece estar funcionando correctamente. Sun Studio Analyzer solo devuelve los tiempos para las llamadas al sistema C / C ++ y no aparece ninguna de las funciones fortran.


Allinea MAP es un generador de perfiles que es simple y directo, pero muy poderoso.

Está diseñado para mostrar los problemas de rendimiento en las aplicaciones Fortran, C y C ++ MPI, y requiere muy poco esfuerzo para comenzar y obtener un perfil.

Es gráfico, y tiene un navegador de código fuente integrado que muestra el rendimiento contra líneas de código, y es capaz de analizar el mal comportamiento de MPI, equilibrio de trabajo deficiente o vectorización deficiente.

Soy uno de los miembros del equipo detrás del producto, por lo que soy un poco parcial. Es comercial: hay licencias de evaluación disponibles en el sitio web.


Cuando el interlocutor dice "gprof no parece estar funcionando correctamente", tal vez se está refiriendo al hecho de que los procesos de N MPI pueden dañar el archivo gmon.out. En ese caso, la variable de entorno GMON_OUT_PREFIX (no documentada) podría hacer que gprof sea más útil:

$ export GMON_OUT_PREFIX=gmon.out $ mpiexec -np 4 cpi


Hay una serie de herramientas de análisis de rendimiento especializadas para Programas Paralelos / MPI, tales como:

  • Score-P , que funciona con diferentes herramientas de análisis, por ejemplo, Cube , Vampir
  • HPCToolkit solo utiliza muestreo, por lo que no tiene que volver a compilar su aplicación
  • Tau

Al principio, pueden no ser tan simples de usar, fáciles de usar, pero proporcionan mucha más ayuda para investigar el rendimiento de las aplicaciones paralelas.


Me gustaría agregar dos perfiladores más: (1) mpiP es un generador de perfiles ligero y puede producir resultados de texto, pero solo mide funciones MPI. (2) Scalasca : esto produce una salida sofisticada que puede indicar desequilibrios de sincronización (último emisor / receptor tardío) también (a diferencia de TAU que no apunta a desequilibrios de sincronización).


Puede usar el analizador Intel Trace para crear un perfil de comunicación MPI e Intel VTune para obtener un perfil de una única tarea MPI. Ambos software fueron ampliamente documentados en el sitio web de Intel.