Un clúster Beowulf es un conjunto de ordenadores que normalmente son idénticos y de uso general conectados en red en una pequeña red de área local con bibliotecas y programas instalados que permiten compartir el procesamiento entre ellos. El resultado es un clúster de computación paralela de alto rendimiento a partir de hardware de ordenador personal económico .
Beowulf originalmente se refería a una computadora específica construida en 1994 por Thomas Sterling y Donald Becker en la NASA . [1] Le pusieron el nombre del antiguo poema épico inglés , Beowulf . [2]
Ningún software en particular define un clúster como Beowulf. Normalmente, solo se utiliza software libre y de código abierto , tanto para ahorrar costos como para permitir la personalización. La mayoría de los clústeres Beowulf ejecutan un sistema operativo similar a Unix , como BSD , Linux o Solaris . Las bibliotecas de procesamiento paralelo más utilizadas incluyen Message Passing Interface (MPI) y Parallel Virtual Machine (PVM). Ambas permiten al programador dividir una tarea entre un grupo de computadoras en red y recopilar los resultados del procesamiento. Algunos ejemplos de software MPI incluyen Open MPI o MPICH . Hay implementaciones MPI adicionales disponibles.
Los sistemas Beowulf funcionan en todo el mundo, principalmente en apoyo de la computación científica . Desde 2017, todos los sistemas de la lista Top500 de las supercomputadoras más rápidas del mundo han utilizado métodos de software Beowulf y un sistema operativo Linux . Sin embargo, en este nivel, la mayoría no son simplemente conjuntos de hardware comercial; a menudo se requiere un trabajo de diseño personalizado para los nodos (a menudo servidores blade ), la red y los sistemas de refrigeración.
Una descripción del clúster Beowulf, del manual original, publicado por Jacek Radajewski y Douglas Eadline en el marco del Proyecto de Documentación de Linux en 1998: [3]
Beowulf es una arquitectura multi-computadora que puede ser utilizada para cálculos paralelos . Es un sistema que usualmente consiste en un nodo servidor, y uno o más nodos cliente conectados vía Ethernet o alguna otra red. Es un sistema construido usando componentes de hardware de consumo, como cualquier PC capaz de correr un sistema operativo tipo Unix , con adaptadores Ethernet estándar, y switches. No contiene ningún componente de hardware personalizado y es trivialmente reproducible. Beowulf también usa software de consumo como el sistema operativo FreeBSD, Linux o Solaris, Parallel Virtual Machine ( PVM ) y Message Passing Interface ( MPI ). El nodo servidor controla todo el cluster y sirve archivos a los nodos cliente. También es la consola del cluster y la puerta de enlace al mundo exterior. Grandes máquinas Beowulf pueden tener más de un nodo servidor, y posiblemente otros nodos dedicados a tareas particulares, por ejemplo consolas o estaciones de monitoreo. En la mayoría de los casos, los nodos cliente en un sistema Beowulf son tontos, cuanto más tontos, mejor. Los nodos están configurados y controlados por el nodo servidor y solo hacen lo que se les indica. En una configuración de cliente sin disco, un nodo cliente ni siquiera conoce su dirección IP o nombre hasta que el servidor se lo indica.
Una de las principales diferencias entre Beowulf y un Cluster of Workstations (COW) es que Beowulf se comporta más como una sola máquina que como muchas estaciones de trabajo. En la mayoría de los casos, los nodos cliente no tienen teclados ni monitores, y solo se puede acceder a ellos a través de un inicio de sesión remoto o posiblemente mediante una terminal serial. Los nodos Beowulf pueden considerarse como un paquete de CPU + memoria que se puede conectar al cluster, al igual que se puede conectar una CPU o un módulo de memoria a una placa base.
Beowulf no es un paquete de software especial, una nueva topología de red o el último hack del kernel. Beowulf es una tecnología de agrupamiento de ordenadores para formar una supercomputadora virtual paralela. Aunque existen muchos paquetes de software como modificaciones del kernel, bibliotecas PVM y MPI y herramientas de configuración que hacen que la arquitectura Beowulf sea más rápida, más fácil de configurar y mucho más utilizable, se puede construir una máquina de clase Beowulf utilizando una distribución estándar de Linux sin ningún software adicional. Si tienes dos ordenadores en red que comparten al menos el
/home
sistema de archivos a través de NFS y confían entre sí para ejecutar shells remotos ( rsh ), entonces se podría argumentar que tienes una máquina Beowulf simple de dos nodos.
A partir de 2014 , [actualizar]varias distribuciones de Linux y al menos una BSD están diseñadas para crear clústeres Beowulf. Entre ellas se incluyen:
Los siguientes ya no reciben mantenimiento:
Se puede configurar un clúster utilizando CD de arranque de Knoppix en combinación con OpenMosix . Los equipos se conectarán automáticamente entre sí, sin necesidad de configuraciones complejas, para formar un clúster Beowulf utilizando todas las CPU y la RAM del clúster. Un clúster Beowulf es escalable a una cantidad casi ilimitada de equipos, limitada únicamente por la sobrecarga de la red.
El aprovisionamiento de sistemas operativos y otro software para un clúster Beowulf se puede automatizar mediante software, como Open Source Cluster Application Resources . OSCAR se instala sobre una instalación estándar de una distribución Linux compatible en el nodo principal de un clúster.