Consumo energético de operaciones colectivas MPI en plataformas multicores

Versión para impresiónVersión en PDF
Investigadores: 
  • Álvaro Cortés Fácila y Juan Carlos Díaz Martín del grupo GIM (Grupo de Ingeniería de Medios) del DACC (Departamento de Arquitectura de Computadores y Comunicaciones) de la Universidad de Extremadura.
Descripción: 

En los últimos años, el interés por el ahorro energético se ha extendido, llegando incluso al ámbito de la computación. Las aplicaciones que requieren paralelismo utilizan, habitualmente, una gran cantidad de nodos de computación, recursos (memoria RAM) e incluso de dispositivos de comunicación (buses internos, redes, etc). Así, ha surgido interés en estudiar cómo optimizar el uso de los recursos, minimizando al mismo tiempo el impacto energético de las aplicaciones.

MPI es el estándar de comunicación en la programación paralela en supercomputadores. Del conjunto de operaciones disponibles en MPI, el de operaciones colectivas es el más utilizado por las aplicaciones científicas. Por lo tanto, una buena estrategia para aumentar el rendimiento de las aplicaciones científicas es mejorar las prestaciones de dichas operaciones. Lo mismo ocurre con el consumo energético asociado a una cierta aplicación. Para cada operación colectiva de MPI, existen varios esquemas de implementación. El objetivo del proyecto es determinar qué esquemas de implementación de dichas operaciones son más eficientes energéticamente en una máquina multicore.

Metodología: 

El ámbito del estudio se restringirá a Open MPI, que es una de las implementaciones más conocidas y usadas de MPI. Las operaciones colectivas bajo estudio serán: MPI_bcast, MPI_alltoall y MPI_allgather. En Open MPI, estas operaciones colectivas tienen 4 esquemas diferentes de implementación, las cuales describen distintas formas de realizar las comunicaciones intermedias. Se pretende estudiar el impacto energético de estos esquemas. Para realizar este estudio, se propone el uso del benchmark IMB muy utilizado en la comunidad científica para testear implementaciones de MPI.

Las pruebas se realizarán en el supercomputador LUSITANIA que cuenta con 128 cores por nodo. El benchmark IMB se configurará para iterar sobre el número de cores en potencia de dos (1, 2,…, 128), para diferentes tamaños de mensajes a intercambiar (0, 1, 2, 4,…, 64MB), para los tres tipos de operaciones colectivas y para cada esquema de implementación de las mismas. El seguimiento del consumo eléctrico se realizará mediante una pinza amperimétrica monitorizada remotamente. Debido a que sólo se dispone de un instrumento de monitorización y de las particularidades del sistema de alimentación eléctrico del supercomputador, el número de cores a monitorizar se restringe de 128 a 64.

Objetivos alcanzados: 
  • Se ha desarrollado un servicio que permite la monitorización remota de las mediciones de la pinza amperimétrica, facilitando así la visualización del consumo eléctrico con este instrumento de medición en tiempo real.
  • Se ha observado que una operación colectiva tiene asociado un consumo energético mayor mientras más procesos tenga asociados a dicha comunicación. Además, un mayor tamaño de mensaje implica un mayor consumo eléctrico.
  • Utilizar un esquema de implementación u otro no supone diferencias significativas en cuanto al consumo eléctrico relativo. Una operación menos eficiente energéticamente tiende a terminar antes debido a que hace un uso más intensivo del hardware; mientras que una operación más eficiente en términos energéticos, tiende a consumir más tiempo para completarse. Así, el consumo eléctrico total se compensa entre los diferentes esquemas.
  • Se ha observado que las operaciones colectivas que son más eficientes en tiempo, también lo son en términos de consumo energético global. El consumo global viene determinado por la suma del consumo relativo más el consumo base (necesario para que la máquina funcione).