stringtranslate.com

Paso de mensajes en clústeres de computadoras

Técnicos que trabajan en un clúster formado por muchas computadoras que trabajan juntas enviando mensajes a través de una red.

El paso de mensajes es un elemento inherente a todos los clústeres de computadoras . Todos los clústeres de computadoras, desde los Beowulfs caseros hasta algunas de las supercomputadoras más rápidas del mundo, dependen del paso de mensajes para coordinar las actividades de los muchos nodos que abarcan. [1] [2] El paso de mensajes en clústeres de computadoras construidos con servidores y conmutadores básicos es utilizado por prácticamente todos los servicios de Internet. [1]

Recientemente, se ha extendido el uso de clústeres de computadoras con más de mil nodos. A medida que aumenta el número de nodos en un clúster, el rápido crecimiento de la complejidad del subsistema de comunicación hace que los retrasos en el paso de mensajes a través de la interconexión sean un problema de rendimiento grave en la ejecución de programas paralelos . [3]

Se pueden utilizar herramientas específicas para simular, visualizar y comprender el rendimiento del paso de mensajes en clústeres de computadoras. Antes de ensamblar un clúster de computadoras grande, un simulador basado en trazas puede utilizar una pequeña cantidad de nodos para ayudar a predecir el rendimiento del paso de mensajes en configuraciones más grandes. Después de ejecutar pruebas en una pequeña cantidad de nodos, el simulador lee los archivos de registro de ejecución y transferencia de mensajes y simula el rendimiento del subsistema de mensajería cuando se intercambian muchos más mensajes entre una cantidad mucho mayor de nodos. [4] [5]

Mensajes y cálculos

Enfoques para el paso de mensajes

Históricamente, los dos enfoques típicos para la comunicación entre nodos de clúster han sido PVM, la máquina virtual paralela y MPI, la interfaz de paso de mensajes . [6] Sin embargo, MPI ahora ha surgido como el estándar de facto para el paso de mensajes en clústeres de computadoras. [7]

PVM es anterior a MPI y fue desarrollado en el Laboratorio Nacional de Oak Ridge alrededor de 1989. Proporciona un conjunto de bibliotecas de software que permiten que un nodo informático actúe como una "máquina virtual paralela". Proporciona un entorno de tiempo de ejecución para el paso de mensajes, la gestión de tareas y recursos y la notificación de fallos, y debe instalarse directamente en cada nodo del clúster. PVM puede ser utilizado por programas de usuario escritos en C , C++ o Fortran , etc. [6] [8]

A diferencia de PVM, que tiene una implementación concreta, MPI es una especificación en lugar de un conjunto específico de bibliotecas. La especificación surgió a principios de la década de 1990 a partir de discusiones entre 40 organizaciones, y el esfuerzo inicial fue apoyado por ARPA y la National Science Foundation . El diseño de MPI se basó en varias características disponibles en los sistemas comerciales de la época. Las especificaciones MPI dieron lugar a implementaciones específicas. Las implementaciones MPI suelen utilizar conexiones TCP/IP y socket. [6] MPI es ahora un modelo de comunicaciones ampliamente disponible que permite escribir programas paralelos en lenguajes como C , Fortran, Python , etc. [8] La especificación MPI se ha implementado en sistemas como MPICH y Open MPI . [8] [9]

Pruebas, evaluación y optimización

El clúster de computadoras Apple Xserve de Virginia Tech

Los clústeres de computadoras utilizan una serie de estrategias para gestionar la distribución del procesamiento en varios nodos y la sobrecarga de comunicación resultante. Algunos clústeres de computadoras, como Tianhe-I, utilizan procesadores diferentes para el paso de mensajes que los que se utilizan para realizar los cálculos. Tiahnhe-I utiliza más de dos mil procesadores FeiTeng-1000 para mejorar el funcionamiento de su sistema propietario de paso de mensajes, mientras que los cálculos se realizan mediante procesadores Xeon y Nvidia Tesla . [10] [11]

Un enfoque para reducir la sobrecarga de comunicación es el uso de vecindarios locales (también llamados locales ) para tareas específicas. Aquí las tareas computacionales se asignan a "vecindarios" específicos en el clúster, para aumentar la eficiencia mediante el uso de procesadores que están más cerca entre sí. [3] Sin embargo, dado que en muchos casos la topología real de los nodos del clúster de computadoras y sus interconexiones pueden no ser conocidas por los desarrolladores de aplicaciones, intentar ajustar el rendimiento a nivel del programa de aplicación es bastante difícil. [3]

Dado que MPI se ha convertido en el estándar de facto en clústeres de computadoras, el aumento en la cantidad de nodos de clúster ha dado como resultado una investigación continua para mejorar la eficiencia y la escalabilidad de las bibliotecas MPI. Estos esfuerzos han incluido investigaciones para reducir el uso de memoria de las bibliotecas MPI. [7]

Desde sus inicios, MPI ha proporcionado funciones para la elaboración de perfiles de rendimiento a través del "sistema de elaboración de perfiles" PMPI. [12] El uso del prefijo PMIPI permite la observación de los puntos de entrada y salida de los mensajes. Sin embargo, dada la naturaleza de alto nivel de este perfil, este tipo de información sólo proporciona una visión del comportamiento real del sistema de comunicación. La necesidad de más información dio lugar al desarrollo del sistema MPI-Peruse. Peruse proporciona un perfil más detallado al permitir que las aplicaciones accedan a los cambios de estado dentro de la biblioteca MPI. Esto se consigue registrando devoluciones de llamadas con Peruse y luego invocándolas como activadores a medida que se producen los eventos de los mensajes. [13] Peruse puede trabajar con el sistema de visualización PARAVER. PARAVER tiene dos componentes, un componente de seguimiento y un componente visual para analizar los seguimientos, las estadísticas relacionadas con eventos específicos, etc. [14] PARAVER puede utilizar formatos de seguimiento de otros sistemas o realizar su propio seguimiento. Funciona a nivel de tarea, a nivel de subproceso y en un formato híbrido. Los rastros suelen incluir tanta información que suelen resultar abrumadores. Por ello, PARAVER los resume para permitir que los usuarios los visualicen y analicen. [13] [14] [15]

Análisis de rendimiento

Cuando se desarrolla un sistema paralelo a gran escala, a menudo a nivel de supercomputadora , es esencial poder experimentar con múltiples configuraciones y simular el rendimiento. Existen varios enfoques para modelar la eficiencia del paso de mensajes en este escenario, que van desde modelos analíticos hasta simulación basada en trazas, y algunos enfoques se basan en el uso de entornos de prueba basados ​​en "comunicaciones artificiales" para realizar pruebas sintéticas del rendimiento del paso de mensajes. [3] Los sistemas como BIGSIM brindan estas facilidades al permitir la simulación del rendimiento en varias topologías de nodos , estrategias de paso de mensajes y programación. [4]

Enfoques analíticos

A nivel analítico, es necesario modelar el tiempo de comunicación T en términos de un conjunto de subcomponentes como la latencia de inicio , el ancho de banda asintótico y el número de procesadores. Un modelo bien conocido es el modelo de Hockney que simplemente se basa en la comunicación punto a punto , utilizando T = L + (M / R) donde M es el tamaño del mensaje, L es la latencia de inicio y R es el ancho de banda asintótico en MB/s. [16]

Xu y Hwang generalizaron el modelo de Hockney para incluir la cantidad de procesadores, de modo que tanto la latencia como el ancho de banda asintótico sean funciones de la cantidad de procesadores. [16] [17] Luego, Gunawan y Cai generalizaron esto aún más al introducir el tamaño de caché y separaron los mensajes en función de sus tamaños, obteniendo dos modelos separados, uno para los mensajes por debajo del tamaño de caché y otro para los que lo superan. [16]

Simulación de rendimiento

El superordenador en clúster IBM Roadrunner

Se pueden utilizar herramientas específicas para simular y comprender el rendimiento del paso de mensajes en clústeres de computadoras. Por ejemplo, CLUSTERSIM utiliza un entorno visual basado en Java para la simulación de eventos discretos . En este enfoque, los nodos calculados y la topología de la red se modelan visualmente. Los trabajos y su duración y complejidad se representan con distribuciones de probabilidad específicas que permiten proponer y experimentar con varios algoritmos de programación de trabajos paralelos. De este modo, la sobrecarga de comunicación para el paso de mensajes MPI se puede simular y comprender mejor en el contexto de la ejecución de trabajos paralelos a gran escala. [18]

Otras herramientas de simulación incluyen MPI-sim y BIGSIM. [19] MPI-Sim es un simulador impulsado por ejecución que requiere programas C o C++ para funcionar. [18] [19] ClusterSim, por otro lado, utiliza un sistema de modelado híbrido de alto nivel independiente del lenguaje de programación utilizado para la ejecución del programa. [18]

A diferencia de MPI-Sim, BIGSIM es un sistema basado en trazas que simula basándose en los registros de ejecuciones guardados en archivos por un programa emulador independiente. [5] [19] BIGSIM incluye un emulador y un simulador. El emulador ejecuta aplicaciones en un pequeño número de nodos y almacena los resultados, de modo que el simulador puede usarlos y simular actividades en un número mucho mayor de nodos. [5] El emulador almacena información de bloques de ejecución secuencial (SEB) para múltiples procesadores en archivos de registro, y cada SEB registra los mensajes enviados, sus fuentes y destinos, dependencias, tiempos, etc. El simulador lee los archivos de registro y los simula, y puede marcar mensajes adicionales que luego también se almacenan como SEB. [4] [5] De este modo, el simulador puede proporcionar una vista del rendimiento de aplicaciones muy grandes, basándose en los rastros de ejecución proporcionados por el emulador en un número mucho menor de nodos, antes de que toda la máquina esté disponible o configurada. [5]

Véase también

Referencias

  1. ^ ab Organización y diseño de computadoras por David A. Patterson y John L. Hennessy 2011 ISBN  0123747503 página 641 [1]
  2. ^ Beowulf Cluster Computing With Windows de Thomas Lawrence Sterling 2001 ISBN 0262692759 MIT Press páginas 7–9 
  3. ^ abcd Avances recientes en la interfaz de paso de mensajes por Yiannis Cotronis, Anthony Danalis, Dimitris Nikolopoulos y Jack Dongarra 2011 ISBN 3642244483 páginas 160–162 
  4. ^ abc Computación a petaescala: algoritmos y aplicaciones por David A. Bader 2007 ISBN 1584889098 páginas 435–435 
  5. ^ abcde Lenguajes y compiladores para computación paralela editado por Keith Cooper, John Mellor-Crummey y Vivek Sarkar 2011 ISBN 3642195946 páginas 202–203 
  6. ^ abc Servicios distribuidos con OpenAFS: para empresas y educación por Franco Milicchio, Wolfgang Alexander Gehrke 2007, pp. 339-341
  7. ^ ab Avances recientes en máquinas virtuales paralelas e interfaces de paso de mensajes por Matti Ropo, Jan Westerholm y Jack Dongarra 2009 ISBN 3642037690 página 231 
  8. ^ abc Computación en red y en clúster por J. Prabhu 2008 ISBN 8120334280 páginas 109–112 
  9. ^ Gropp, William; Lusk, Ewing; Skjellum, Anthony (1996). "Una implementación portátil y de alto rendimiento de la interfaz de paso de mensajes MPI". Computación paralela . doi :10.1016/0167-8191(96)00024-5.
  10. ^ La supercomputadora TianHe-1A: su hardware y software, por Xue-Jun Yang, Xiang-Ke Liao y otros, en Journal of Computer Science and Technology , volumen 26, número 3, mayo de 2011, páginas 344–351 «Copia archivada». Archivado desde el original el 21 de junio de 2011. Consultado el 8 de febrero de 2012 .{{cite web}}: CS1 maint: copia archivada como título ( enlace )
  11. ^ EE.UU. afirma que China está construyendo una supercomputadora "enteramente autóctona" , por Patrick Thibodeau Computerworld , 4 de noviembre de 2010 [2]
  12. ^¿ Qué es PMPI?
  13. ^ ab Avances recientes en máquinas virtuales paralelas e interfaces de paso de mensajes por Bernd Mohr, Jesper Larsson Träff, Joachim Worringen y Jack Dongarra 2006 ISBN 354039110X página 347 
  14. ^ ab PARAVER: Una herramienta para visualizar y analizar código paralelo por Vincent Pillet et al, Actas de la conferencia sobre desarrollos de Transputer y Occam, 1995, páginas 17–31
  15. ^ Ciencia Computacional-- Iccs 2003 editado por Peter MA Sloot, David Abramson, Alexander V. Bogdanov y Jack J. Dongarra ISBN 3540401970 página 183 
  16. ^ abc Modelado de la sobrecarga de paso de mensajes por CY Chou et al. en Advances in Grid and Pervasive Computing: First International Conference, GPC 2006 editado por Yeh-Ching Chung y José E. Moreira ISBN 3540338098 páginas 299–307 
  17. ^ Computación de alto rendimiento y redes editado por Peter Sloot, Marian Bubak y Bob Hertzberge 1998 ISBN 3540644431 página 935 
  18. ^ abc High Performance Computational Science and Engineering editado por Michael K. Ng, Andrei Doncescu, Laurence T. Yang y Tau Leng, 2005 ISBN 0387240489 páginas 59–63 
  19. ^ abc Avances en informática, medio ambiente, ecoinformática y educación editado por Song Lin y Xiong Huang 2011 ISBN 3642233236 página 16