Evaluación de AzequiaMPI
![Printer-friendly version Printer-friendly version](https://www.cenits.es/sites/all/modules/print/icons/print_icon.png)
![Versión en PDF Versión en PDF](https://www.cenits.es/sites/all/modules/print/print_pdf/icons/pdf_icon.png)
- Juan Carlos Díaz Martín del grupo GIM (Grupo de Ingeniería de Medios) del DISIT (Departamento de Ingeniería de Sistemas Informáticos y Telemáticos) y del DACC (Departamento de Arquitectura de Computadores y Comunicaciones) de la Universidad de Extremadura.
- MPI es el estándar de hecho en la programación de supercomputadores. Las implementaciones actuales del estándar no consiguen escalar adecuadamente en arquitecturas basadas en clusters multicore o NUMA. Las aplicaciones deben ser construidas de forma que exploten el paralelismo en dos niveles: memoria distribuida mediante MPI, y memoria compartida mediante hilos (Open MP o Pthreads), en lo que se denomina sistema híbrido.
- AzequiaMPI es la primera implementación completa del estándar MPI-1 basada en hilos y explota nativamente este tipo de sistemas. El objetivo fundamental del proyecto es evaluar la implementación actual en cuanto a rendimiento, escalabilidad y soporte para aplicaciones científicas. Para ello se compararán los resultados con otras implementaciones bien conocidas como MPICH2, Intel MPI o HP-MPI, y se mejorará, en lo posible, su comportamiento en grandes supercomputadores de memoria compartida.
AzequiaMPI puede considerarse como una herramienta orientada a la construcción de aplicaciones distribuidas o paralelas en base a paso de mensajes, cuya evaluación y mejora será realizada en este proyecto. La evaluación consistirá en la ejecución de varias aplicaciones de medida de rendimiento (benchmarks); en el estudio de los resultados ofrecidos por ésta y otras implementaciones de paso de mensajes o PGAs; y en la aplicación de mejoras a la arquitectura objetivo y a otras más genéricas en base a la escalabilidad y los algoritmos internos de la biblioteca como, por ejemplo, las operaciones colectivas.
- Se ha desarrollado una nueva implementación de AzequiaMPI basada en una estructura de datos lock-free para explotar con más eficiencia las arquitecturas de memoria compartida el estándar MPI. Se está en proceso de evaluación de la implementación y contraste con el resto de implementaciones del estándar.
- Se ha iniciado el estudio de disminución de consumo energético de las diferentas implementaciones del estándar MPI. Esperamos que las implementaciones basadas en bloqueo como AzequiaMPI mejoren las implementaciones actuales.
- Se ha conseguido compilar y ejecutar una nueva implementación del estándar MPI-1.3 desarrollada en la Universidad de Extremadura denominada AzequiaMPI. Tiene dos modos de ejecución, una bloqueante (AzequiaMPI-BLK) y otra no bloqueante (AzequiaMPI-LFQ).
- Se ha podido ejecutar benchmarks bien conocidos como HP-Linpack bajo la versión no bloqueante. El interés de ésta es que el procesador puede dedicarse a ejecutar otra aplicación MPI cuando la aplicación en curso está a la espera de recibir un mensaje. Otra posibilidad radica en detener el procesador para ahorrar energía.
- Juan Antonio Rico Gallego, Juan Carlos Díaz Martín. τ-Lop: Modeling performance of shared memory MPI. Parallel Computing. Volume 46, July 2015, Pages 14–31. DOI: 10.1016/j.parco.2015.02.006
- Juan-Antonio Rico-Gallego, Juan-Carlos Díaz-Martín, Alexey L. Lastovetsky. Extending τ-Lop to model concurrent MPI communications in multicore clusters. Future Generation Computer Systems, Volume 61, August 2016, Pages 66-82, ISSN 0167-739X, http://dx.doi.org/10.1016/j.future.2016.02.021.
- Juan-Antonio Rico-Gallego, Juan Carlos Díaz Martín, Alexey L. Lastovetsky: Modeling Contention and Mapping Effects in Multi-core Clusters. Euro-Par Workshops 2015: 197-208.