Encontrar cuellos de botella en programas de interfaz de paso de mensajes mediante un análisis escalable de la ruta crítica
Autores: Korkhov, Vladimir; Gankevich, Ivan; Gavrikov, Anton; Mingazova, Maria; Petriakov, Ivan; Tereshchenko, Dmitrii; Shatalin, Artem; Slobodskoy, Vitaly
Idioma: Inglés
Editor: MDPI
Año: 2023
Acceso abierto
Artículo científico
Categoría
Ingeniería y Tecnología
Subcategoría
Ingeniería de Software
Palabras clave
Cuellos de botella
Desequilibrio
Programas paralelos
Análisis de rendimiento
Camino crítico
Algoritmos
Licencia
CC BY-SA – Atribución – Compartir Igual
Consultas: 35
Citaciones: Sin citaciones
Los cuellos de botella y desequilibrios en programas paralelos pueden afectar significativamente el rendimiento de la ejecución en paralelo. Encontrar estos cuellos de botella es un problema clave en el análisis de rendimiento de los programas MPI, especialmente a gran escala. Una de las formas de descubrir los cuellos de botella es analizar el camino crítico del programa paralelo: el camino de ejecución más largo en el grafo de actividad del programa. Hay varios métodos para encontrar el camino crítico; sin embargo, la mayoría de ellos experimentan una caída de rendimiento al escalar. En este documento, analizamos varios métodos de búsqueda del camino crítico basados en algoritmos clásicos de Dijkstra y Delta-stepping junto con el algoritmo propuesto basado en ordenamiento topológico. Se presentan los algoritmos correspondientes para cada enfoque, incluidas mejoras adicionales para aumentar el rendimiento. Se analizan y discuten la implementación de los algoritmos y el rendimiento resultante para varias aplicaciones de referencia (NAS Parallel Benchmarks, CP2K, OpenFOAM, LAMMPS y MiniFE).
Descripción
Los cuellos de botella y desequilibrios en programas paralelos pueden afectar significativamente el rendimiento de la ejecución en paralelo. Encontrar estos cuellos de botella es un problema clave en el análisis de rendimiento de los programas MPI, especialmente a gran escala. Una de las formas de descubrir los cuellos de botella es analizar el camino crítico del programa paralelo: el camino de ejecución más largo en el grafo de actividad del programa. Hay varios métodos para encontrar el camino crítico; sin embargo, la mayoría de ellos experimentan una caída de rendimiento al escalar. En este documento, analizamos varios métodos de búsqueda del camino crítico basados en algoritmos clásicos de Dijkstra y Delta-stepping junto con el algoritmo propuesto basado en ordenamiento topológico. Se presentan los algoritmos correspondientes para cada enfoque, incluidas mejoras adicionales para aumentar el rendimiento. Se analizan y discuten la implementación de los algoritmos y el rendimiento resultante para varias aplicaciones de referencia (NAS Parallel Benchmarks, CP2K, OpenFOAM, LAMMPS y MiniFE).