Rocks GPU Clusters - En Español

Presentando Rocks GPU clusters!


Esté artículo en Inglés.


Esta semana me gustaría hablar sobre Rocks y lo bueno que es para la construcción. No sólo es bueno para los clústeres computacionales o endpoints, sino que también es una forma altamente escalable y extensible para implementar, administrar y actualizar clústeres manejables.

Como tal vez ya se sepa, algunas de las computadoras más rápidas del mundo son ordenadores de clúster. Comencemos por dar una breve definición de lo que es un clúster: Un clúster es un sistema informático que comprende dos o más equipos ("nodos") conectados con una red de alta velocidad. Por lo tanto, en otras palabras, los equipos de clúster pueden lograr una mayor disponibilidad, fiabilidad y escalabilidad de lo que es posible con una computadora individual. Con la creciente adopción de GPUs en computación de alto rendimiento (HPC), las GPU NVIDIA se están convirtiendo en parte de algunos de los superordenadores y clusters más potentes del mundo.

En este punto la pregunta puede ser cómo Rocks puede realmente ayudar con esto. Lo veremos a continuación.

¿Qué es eso de Rocks?

Rocks es una distribución de código abierto de Linux (ahora basada en CentOS) que utiliza un sistema de scripts basados ​​en Python y una base de datos MySQL para administrar un clúster de nodos. Como se mencionó antes, permite a los usuarios finales crear fácilmente clusters computacionales, endpoints y paredes de visualización de mosaico. Esto significa que incluye muchas herramientas (como MPI) que no forman parte de CentOS, sino que son componentes integrales que convierten un grupo de ordenadores en un clúster. Gracias a su extensibilidad, las instalaciones se pueden personalizar con paquetes de software adicionales en el tiempo de instalación mediante el uso de CD especiales suministrados por el usuario (denominados "Roll CDs"). Estos "rolls" amplían el sistema integrándose de forma transparente y automática en los mecanismos de gestión y empaquetamiento utilizados por el software base. Esto simplifica enormemente la instalación y configuración de un gran número de equipos. Dado que el sistema está diseñado para gestionar todos los aspectos de la administración de clústeres, cientos de investigadores y entusiastas de todo el mundo han utilizado Rocks para desplegar su propio clúster. Puede obtener la última versión y obtener más información sobre la distribución, puede accederse al siguiente enlace: http://www.rocksclusters.org. La distribución mantiene el software de administración de clúster de Rocks independientemente de la instalación de Linux elegida.

El punto de partida para cualquier clúster de Rocks es la instalación inicial, el nodo principal. Normalmente utiliza un sistema de plantillas escrito en XML para generar dinámicamente scripts de instalación de RHEL / CentOS kickstart para tipos de nodo de clúster y gestiona DHCP, DNS y PXE.

Una nota para nuestros amigos de sys-admins: Es importante tener en cuenta que ninguno de los típicos archivos DHCP, DNS, PXE o Kickstart debe ser administrado editando directamente los archivos correspondientes. Rocks tiene la capacidad de agregar entradas manuales utilizando un sistema de archivos ".local".

GPU Clu… ¿qué?

Sí, hay múltiples razones motivadoras para construir un clúster de investigación basado en GPU. Algunos de estas son:

  • Tener una idea de los sistemas de producción y las estimaciones de rendimiento

  • Portar sus aplicaciones a GPUs y computación distribuida (usando MPI CUDA-aware, por ejemplo)

  • Ajustar el equilibrio de carga de GPU y CPU para su aplicación

  • Utilizar el clúster como plataforma de desarrollo

  • La experiencia temprana significa una mayor preparación

  • La inversión es relativamente pequeña para un prototipo de cluster de investigación

Pero como con todo en este universo binario, comience con lo muy básico (estilo Yoda) que es elegir el hardware adecuado para la tarea. El proceso puede dividirse en dos pasos para una comprensión más fácil de lo que compone un nodo.

  1. Detalles del hardware del nodo. Esta es la especificación de la máquina (nodo) para su clúster. Cada nodo tiene los siguientes componentes:

  2. Procesador de CPU de cualquier proveedor (AMD, Intel, ...)

  3. Una placa base con las siguientes conexiones PCI-Express:

    • 2x conexiones PCIe x16 de tercera generación (para GPUs Tesla, por ejemplo)

    • 1x PCIe x8 ancha (si elige utilizar una tarjeta HCI Infiniband)

  4. 2 puertos de red disponibles

  5. Un mínimo de 16-24 GB de RAM DDR3. (Es bueno tener más memoria RAM en el sistema)

  6. Unidad de alimentación (SMPS) con una amplia potencia. La fuente de alimentación total necesaria incluye la potencia absorbida por la CPU, GPUs y otros componentes del sistema

  7. Almacenamiento secundario (HDD / SSD preferiblemente) basado en sus necesidades (pero totalmente recomendado sin embargo)

  8. Las tarjetas GPU deben ser lo suficientemente anchas para cubrir dos ranuras PCI-e físicamente adyacentes, así que asegúrese de que las ranuras PCIe x16 y x8 estén físicamente separadas en la placa base para que pueda caber un mínimo de 2 GPU PCI-e x16 y 1 Tarjeta de red PCIe x8.

  9. Elija el factor de forma adecuado para las GPUs. Una vez que se deciden las especificaciones de su máquina, también debe decidirse el modelo de GPUs para su sistema. El factor de forma de las GPUs es una consideración importante. NVIDIA, por ejemplo, tiene algunas GPU estupendas basadas en la microarquitectura Kepler que son bastante asequibles, tienen un rendimiento excepcional y son muy eficientes en energía.

Conclusión

Los clústers GPU se están volviendo muy populares y actualmente lo suficientemente asequibles para que, entusiastas como yo, construyan el suyo propio. A pesar de que puede parecer mucho trabajo, una vez que se estableció el objetivo de construir uno, es una tarea muy agradable y gratificante. En un próximo artículo voy a ofrecer un tutorial más detallado, paso a paso sobre cómo construir uno desde cero, así que permanece atento y ¡hasta el siguiente!



Article by: Matias Radzinski at Bixlabs, Uruguay