====== Clusters ====== {{ :cluster1.jpeg?300|}} Un **cluster** ((Extraído de la tesina: Análisis del Uso de un Cluster de Raspberry Pi para Cómputo de Altas Prestaciones- Autor: Lic. Pablo Sebastián Rodríguez Eguren. UNLP)) es un tipo de sistema de procesamiento paralelo compuesto por un conjunto de componentes de hardware estándares interconectadas vía algún tipo de red, las cuales cooperan configurando un recurso que se ve como ''único e integrado'', más allá de la distribución física de sus componentes. Cada uno de los componentes que conforman un cluster se denomina nodo y son los encargados de llevar adelante el procesamiento. La construcción de los nodos de un clúster es relativamente fácil y económica debido a su flexibilidad: pueden tener todos la misma configuración de hardware y sistema operativo (clúster homogéneo), o tener diferente hardware y/o sistema operativo (clúster heterogéneo). Esta característica constituye un elemento importante en el análisis del rendimiento que se puede obtener de un clúster como máquina paralela. Para que los nodos se comuniquen entre sí, es necesario proveerlos de un medio de interconexión mediante algún tipo de red de alta velocidad, por ejemplo, una red LAN. Sin embargo, no basta sólo con interconectar nodos para que un cluster funcione como tal, sino que es necesario proveer al mismo de un sistema de administración de cluster, el cual se encargue de interactuar con el usuario y las aplicaciones que se ejecuten en él. Éste tipo de sistemas ofrece una manera rentable de mejorar el rendimiento (velocidad, disponibilidad, rendimiento, etc.) comparado con supercomputadoras de similares características. A continuación se detallan los tipos de cluster según sus características. * **Cluster de alto rendimiento (High Performance Clusters)**: se caracterizan por ejecutar tareas que requieren de gran capacidad computacional, grandes cantidades de memoria, o ambos a la vez. El realizar estas tareas puede comprometer los recursos del cluster por periodos de tiempo indeterminados. * **Cluster de alta disponibilidad (High Availability)**: el objetivo principal de estos cluster se centra en la disponibilidad y la conabilidad. Los clusters que pertenecen a estar categoría intentan brindar la máxima disponibilidad de los servicios que ofrecen. La conabilidad es provista mediante software que detecta fallos y permite recuperarse frente a los mismos, mientras que por medio de hardware se previene tener un único punto de fallos. * **Cluster de alta eficiencia (High Throughout)**: son clusters cuyo objetivo de diseño se centra en ejecutar la mayor cantidad de tareas en el menor tiempo posible. Para poder llevar adelante esto debe existir independencia de datos entre las tareas individuales. El retardo entre los nodos del cluster no es considerado un gran problema. Si bien cada tipo de cluster visto tiene sus características representativas, todos tienen un objetivo común: obtener un alto rendimiento a un bajo costo. Si a esto se le suma que pueden escalarse fácilmente, esto explica porqué el uso de clusters es hoy una de las posibilidades de cómputo paralelo/distribuido más elegidas. \\ {{ :procparalelo.png?300 |}} \\ {{youtube>t0oa5rCPfyA?medium}} \\ [[so|Volver]]