


Un clúster de computadoras es un grupo de computadoras autónomas que trabajan juntas para ser vistas como un solo sistema. [ 1 ] A diferencia de las computadoras en malla , en los clústeres de computadoras cada nodo está configurado para realizar la misma tarea, controlada y programada por software. La manifestación más reciente de la computación en clúster es la computación en la nube .
Los componentes de un clúster suelen estar conectados entre sí mediante redes de área local rápidas , y cada nodo (ordenador utilizado como servidor) ejecuta su propia instancia de un sistema operativo . [ 1 ] En la mayoría de los casos, todos los nodos utilizan el mismo hardware [ 2 ] y el mismo sistema operativo, aunque en algunas configuraciones (por ejemplo, utilizando Open Source Cluster Application Resources (OSCAR)), se pueden utilizar sistemas operativos diferentes en cada ordenador, o bien hardware diferente. [ 3 ]
Los clústeres se suelen implementar para mejorar el rendimiento y la disponibilidad con respecto a los de un solo ordenador, [ 1 ] siendo generalmente mucho más rentables que los ordenadores individuales de velocidad o disponibilidad comparables. [ 4 ]
Los clústeres informáticos surgieron como resultado de la convergencia de varias tendencias informáticas, incluyendo la disponibilidad de microprocesadores de bajo costo, redes de alta velocidad y software para computación distribuida de alto rendimiento . Tienen una amplia gama de aplicabilidad e implementación, desde pequeños clústeres empresariales con un puñado de nodos hasta algunas de las supercomputadoras más rápidas del mundo, como la Sequoia de IBM . [ 5 ] Antes de la llegada de los clústeres, se empleaban mainframes tolerantes a fallos de una sola unidad con redundancia modular ; pero el menor costo inicial de los clústeres y la mayor velocidad de la infraestructura de red han favorecido su adopción. A diferencia de los mainframes de alta confiabilidad, los clústeres son más económicos de escalar, pero también presentan una mayor complejidad en el manejo de errores, ya que en los clústeres los modos de error no son opacos para los programas en ejecución. [ 6 ]
Conceptos básicos

El deseo de obtener mayor potencia de cálculo y mejor fiabilidad mediante la combinación de varios ordenadores comerciales de bajo coste ha dado lugar a una variedad de arquitecturas y configuraciones.
El enfoque de agrupación de computadoras generalmente (aunque no siempre) conecta varios nodos de computación fácilmente disponibles (por ejemplo, computadoras personales utilizadas como servidores) a través de una red de área local rápida . [ 7 ] Las actividades de los nodos de computación son orquestadas por el "middleware de agrupación", una capa de software que se sitúa sobre los nodos y permite a los usuarios tratar el clúster como una unidad de computación cohesiva, por ejemplo, a través de un concepto de imagen de sistema único . [ 7 ]
La agrupación de computadoras se basa en un enfoque de gestión centralizada que pone los nodos a disposición como servidores compartidos orquestados. Se distingue de otros enfoques como la computación peer-to-peer o la computación en malla, que también utilizan muchos nodos, pero con una naturaleza mucho más distribuida . [ 7 ]
Un clúster de computadoras puede ser un sistema simple de dos nodos que simplemente conecta dos computadoras personales, o puede ser una supercomputadora muy rápida . Un enfoque básico para construir un clúster es el de un clúster Beowulf , que puede construirse con unas pocas computadoras personales para producir una alternativa rentable a la computación de alto rendimiento tradicional. Un proyecto inicial que demostró la viabilidad del concepto fue la supercomputadora Stone de 133 nodos . [ 8 ] Los desarrolladores utilizaron Linux , el kit de herramientas de Máquina Virtual Paralela y la biblioteca de Interfaz de Paso de Mensajes para lograr un alto rendimiento a un costo relativamente bajo. [ 9 ]
Aunque un clúster puede consistir en tan solo unos pocos ordenadores personales conectados por una red sencilla, la arquitectura de clúster también puede utilizarse para alcanzar niveles de rendimiento muy elevados. La lista semestral de la organización TOP500 de los 500 superordenadores más rápidos suele incluir muchos clústeres; por ejemplo, la máquina más rápida del mundo en 2011 fue el ordenador K, que cuenta con una arquitectura de clúster de memoria distribuida . [ 10 ]
Historia
Greg Pfister ha afirmado que los clústeres no fueron inventados por ningún proveedor específico, sino por clientes que no podían realizar todo su trabajo en una sola computadora o necesitaban una copia de seguridad. [ 11 ] Pfister estima la fecha en algún momento de la década de 1960. La base de ingeniería formal de la computación en clúster como medio para realizar trabajo paralelo de cualquier tipo fue posiblemente inventada por Gene Amdahl de IBM , quien en 1967 publicó lo que se ha llegado a considerar el artículo fundamental sobre procesamiento paralelo: la Ley de Amdahl .

La historia de los primeros clústeres informáticos está más o menos directamente ligada a la historia de las primeras redes, ya que una de las principales motivaciones para el desarrollo de una red era conectar recursos informáticos, creando de facto un clúster informático.
El primer sistema de producción diseñado como un clúster fue el Burroughs B5700 a mediados de la década de 1960. Esto permitía conectar hasta cuatro computadoras, cada una con uno o dos procesadores, a un subsistema de almacenamiento en disco común para distribuir la carga de trabajo. A diferencia de los sistemas multiprocesador estándar, cada computadora podía reiniciarse sin interrumpir el funcionamiento general.
A principios y mediados de la década de 1970, el General Electric Mark II adoptó una tecnología de clúster de alta fiabilidad, en la que hasta ocho sistemas de procesamiento (cada uno con su propia copia del sistema operativo) tenían acceso a múltiples sistemas de archivos con bloqueo a nivel de archivo. [ 12 ]

El primer ordenador de clúster comercial débilmente acoplado con gestión integrada de todo el sistema y bloqueo de archivos a nivel de registro fue el Tandem NonStop (un producto comercial de alta disponibilidad de 1976) [ 13 ] [ 14 ] [ 1 ] seguido de cerca por el sistema "Attached Resource Computer" (ARC) de Datapoint Corporation , desarrollado en 1977, y que utilizaba ARCnet como interfaz de clúster. En 1984, AT&T lanzó sus ordenadores de la serie B3 que incluían un sistema de computación en clúster tolerante a fallos de dos procesadores. [ 15 ] La agrupación en clústeres propiamente dicha no despegó realmente hasta que Digital Equipment Corporation lanzó su producto VAXcluster en 1984 para el sistema operativo VMS que, a diferencia de los fabricantes anteriores, utilizó el término "clúster" en su marketing. Los productos Tandem NonStop, ARC y VAXcluster no solo admitían la computación paralela , sino también sistemas de archivos compartidos y dispositivos periféricos . La idea era proporcionar las ventajas del procesamiento paralelo, manteniendo al mismo tiempo la fiabilidad y la unicidad de los datos. Otro clúster comercial destacable fue el IBM S/390 Parallel Sysplex (alrededor de 1994, principalmente para uso empresarial).
En ese mismo lapso de tiempo, mientras que los clústeres de computadoras usaban el paralelismo fuera de la computadora en una red comercial, las supercomputadoras comenzaron a usarlo dentro de la misma computadora. Tras el éxito de la CDC 6600 en 1964, la Cray 1 se lanzó en 1976 e introdujo el paralelismo interno a través del procesamiento vectorial . [ 16 ] Si bien las primeras supercomputadoras excluían los clústeres y dependían de la memoria compartida , con el tiempo algunas de las supercomputadoras más rápidas (por ejemplo, la computadora K ) dependieron de arquitecturas de clúster.
Los clústeres se utilizaban para la mayoría de las transacciones de cajeros automáticos, tarjetas de crédito, llamadas de emergencia al 911, bolsas de valores, los mayores almacenes de datos y más en la década de 1990, si no antes. [ 1 ]
Atributos de los clústeres

Los clústeres de computadoras pueden configurarse para diversos fines, desde necesidades empresariales generales, como el soporte de servicios web, hasta cálculos científicos que requieren una gran capacidad de procesamiento. En ambos casos, el clúster puede utilizar un enfoque de alta disponibilidad . Cabe destacar que las características descritas a continuación no son excluyentes y que un clúster de computadoras también puede utilizar un enfoque de alta disponibilidad, etc.
Los clústeres de " balanceo de carga " son configuraciones en las que los nodos del clúster comparten la carga de trabajo computacional para proporcionar un mejor rendimiento general. Por ejemplo, un clúster de servidores web puede asignar diferentes consultas a diferentes nodos, de modo que se optimice el tiempo de respuesta general. [ 17 ] Sin embargo, los enfoques de balanceo de carga pueden diferir significativamente entre aplicaciones; por ejemplo, un clúster de alto rendimiento utilizado para cálculos científicos balancearía la carga con diferentes algoritmos de un clúster de servidores web que simplemente podría usar un método round-robin simple asignando cada nueva solicitud a un nodo diferente. [ 17 ]
Los clústeres de computadoras se utilizan para tareas que requieren mucha computación, en lugar de para gestionar operaciones orientadas a E/S, como servicios web o bases de datos. [ 18 ] Por ejemplo, un clúster de computadoras podría soportar simulaciones computacionales de accidentes de vehículos o del clima. Los clústeres de computadoras con un acoplamiento muy estrecho están diseñados para trabajos que pueden aproximarse a la " supercomputación ".
Los clústeres de alta disponibilidad (también conocidos como clústeres de conmutación por error o clústeres HA) mejoran la disponibilidad del enfoque de clúster. Funcionan mediante nodos redundantes que se utilizan para proporcionar servicio cuando fallan los componentes del sistema. Las implementaciones de clústeres HA buscan utilizar la redundancia de los componentes del clúster para eliminar los puntos únicos de fallo . Existen implementaciones comerciales de clústeres de alta disponibilidad para muchos sistemas operativos. El proyecto Linux-HA es un paquete de software libre de alta disponibilidad de uso común para el sistema operativo Linux .
La escalabilidad se mejora añadiendo sistemas a un clúster, que es la base principal del paralelismo masivo . A diferencia de los sistemas multiprocesador simétricos, donde la escalabilidad disminuye a medida que se añaden más procesadores (y, por lo tanto, se vuelve más costosa o no suficientemente escalable), en algunos casos, la escalabilidad puede mantenerse en un sistema de clúster débilmente acoplado. Esta escalabilidad puede requerir middleware o base de datos compatibles con clústeres para funcionar correctamente. [ 1 ]
Beneficios
Los clústeres se diseñan principalmente pensando en el rendimiento, pero las instalaciones se basan en muchos otros factores. La tolerancia a fallos ( la capacidad de un sistema para seguir funcionando a pesar del mal funcionamiento de un nodo ) permite la escalabilidad y, en situaciones de alto rendimiento, posibilita una baja frecuencia de mantenimiento, la consolidación de recursos (por ejemplo, RAID ) y la gestión centralizada. Entre las ventajas se incluyen la recuperación de datos en caso de desastre y el procesamiento paralelo de datos, así como una alta capacidad de procesamiento. [ 19 ] [ 20 ]
En términos de escalabilidad, los clústeres ofrecen esta ventaja gracias a su capacidad para añadir nodos [ 1 ] horizontalmente. Esto significa que se pueden agregar más computadoras al clúster para mejorar su rendimiento, redundancia y tolerancia a fallos. Esta puede ser una solución económica para un clúster de alto rendimiento en comparación con el escalado de un solo nodo. Esta propiedad de los clústeres permite que un mayor número de computadoras de menor rendimiento ejecuten cargas computacionales más grandes.
Al agregar un nuevo nodo a un clúster, la confiabilidad aumenta porque no es necesario apagar todo el clúster. Se puede apagar un solo nodo para realizar tareas de mantenimiento, mientras que el resto del clúster asume la carga de ese nodo individual.
Si se agrupa un gran número de ordenadores, esto facilita el uso de sistemas de archivos distribuidos y RAID , ya que ambos pueden aumentar la fiabilidad y la velocidad del clúster.
Diseño y configuración

Uno de los problemas al diseñar un clúster es el grado de interconexión entre los nodos individuales. Por ejemplo, una sola tarea informática puede requerir comunicación frecuente entre nodos: esto implica que el clúster comparte una red dedicada, está densamente agrupado y probablemente cuenta con nodos homogéneos. El otro extremo se da cuando una tarea informática utiliza uno o pocos nodos y necesita poca o ninguna comunicación entre ellos, acercándose a la computación en malla .
En un clúster Beowulf , los programas de aplicación nunca ven los nodos computacionales (también llamados computadoras esclavas), sino que solo interactúan con el "Maestro", que es una computadora específica que gestiona la planificación y administración de las esclavas. [ 18 ] En una implementación típica, el Maestro tiene dos interfaces de red: una que se comunica con la red privada Beowulf para las esclavas y otra para la red de propósito general de la organización. [ 18 ] Las computadoras esclavas suelen tener su propia versión del mismo sistema operativo, memoria local y espacio en disco. Sin embargo, la red privada de esclavas también puede tener un servidor de archivos compartido de gran tamaño que almacena datos persistentes globales, a los que las esclavas acceden según sea necesario. [ 18 ]
Un clúster DEGIMA de 144 nodos de propósito especial está optimizado para ejecutar simulaciones astrofísicas de N cuerpos utilizando el código de árbol paralelo Multiple-Walk, en lugar de cálculos científicos de propósito general. [ 21 ]
Debido a la creciente potencia de cálculo de cada generación de consolas de videojuegos , ha surgido un nuevo uso en el que se reutilizan como clústeres de computación de alto rendimiento (HPC). Algunos ejemplos de clústeres de consolas de videojuegos son los clústeres de Sony PlayStation y Microsoft Xbox . Otro ejemplo de producto de consumo es la estación de trabajo Nvidia Tesla Personal Supercomputer , que utiliza múltiples chips de procesadores aceleradores de gráficos. Además de las consolas de videojuegos, también se pueden utilizar tarjetas gráficas de gama alta. El uso de tarjetas gráficas (o más bien sus GPU) para realizar cálculos en computación en malla es mucho más económico que el uso de CPU, a pesar de ser menos preciso. Sin embargo, al utilizar valores de doble precisión, alcanzan la misma precisión que las CPU y siguen siendo mucho menos costosos (costo de compra). [ 3 ]
Históricamente, los clústeres de computadoras se han ejecutado en computadoras físicas separadas con el mismo sistema operativo . Con la llegada de la virtualización , los nodos del clúster pueden ejecutarse en computadoras físicas separadas con sistemas operativos diferentes, que se representan mediante una capa virtual para que parezcan similares. [ 22 ] El clúster también puede virtualizarse en diversas configuraciones a medida que se realiza el mantenimiento; un ejemplo de implementación es Xen como gestor de virtualización con Linux-HA . [ 22 ]
Intercambio y comunicación de datos
Intercambio de datos

A medida que surgían los clústeres de computadoras durante la década de 1980, también lo hacían las supercomputadoras . Uno de los elementos que distinguía a las tres clases en aquel entonces era que las primeras supercomputadoras dependían de memoria compartida . Los clústeres no suelen usar memoria compartida física, y muchas arquitecturas de supercomputadoras también la han abandonado.
Sin embargo, el uso de un sistema de archivos en clúster es esencial en los clústeres informáticos modernos. Algunos ejemplos son el IBM General Parallel File System , los Cluster Shared Volumes de Microsoft o el Oracle Cluster File System .
Transmisión de mensajes y comunicación
Dos enfoques ampliamente utilizados para la comunicación entre nodos de clúster son MPI ( Message Passing Interface ) y PVM ( Parallel Virtual Machine ). [ 23 ]
PVM se desarrolló en el Laboratorio Nacional de Oak Ridge alrededor de 1989, antes de que MPI estuviera disponible. PVM debe instalarse directamente en cada nodo del clúster y proporciona un conjunto de bibliotecas de software que configuran el nodo como una "máquina virtual paralela". PVM proporciona un entorno de ejecución para el paso de mensajes, la gestión de tareas y recursos, y la notificación de fallos. PVM puede ser utilizado por programas de usuario escritos en C, C++ o Fortran, etc. [ 23 ] [ 24 ]
MPI surgió a principios de la década de 1990 a partir de discusiones entre 40 organizaciones. El esfuerzo inicial fue apoyado por ARPA y la National Science Foundation . En lugar de comenzar desde cero, el diseño de MPI se basó en varias características disponibles en los sistemas comerciales de la época. Las especificaciones de MPI dieron lugar a implementaciones específicas. Las implementaciones de MPI suelen usar conexiones TCP/IP y sockets. [ 23 ] MPI es ahora un modelo de comunicación ampliamente disponible que permite escribir programas paralelos en lenguajes como C , Fortran , Python , etc. [ 24 ] Por lo tanto, a diferencia de PVM, que proporciona una implementación concreta, MPI es una especificación que se ha implementado en sistemas como MPICH y Open MPI . [ 24 ] [ 25 ]
Gestión de clústeres

Uno de los desafíos en el uso de un clúster de computadoras es el costo de su administración, que en ocasiones puede ser tan alto como el costo de administrar N máquinas independientes, si el clúster tiene N nodos. [ 26 ] En algunos casos, esto proporciona una ventaja a las arquitecturas de memoria compartida con menores costos de administración. [ 26 ] Esto también ha popularizado las máquinas virtuales , debido a la facilidad de administración. [ 26 ]
Programación de tareas
Cuando un clúster multiusuario de gran tamaño necesita acceder a grandes cantidades de datos, la planificación de tareas se convierte en un desafío. En un clúster heterogéneo de CPU-GPU con un entorno de aplicación complejo, el rendimiento de cada trabajo depende de las características del clúster subyacente. Por lo tanto, asignar tareas a los núcleos de CPU y a los dispositivos GPU presenta desafíos importantes. [ 27 ] Esta es un área de investigación en curso; se han propuesto y estudiado algoritmos que combinan y extienden MapReduce y Hadoop . [ 27 ]
Gestión de fallos de nodos
Cuando falla un nodo en un clúster, se pueden emplear estrategias como el " fencing " para mantener operativo el resto del sistema. [ 28 ] [ 29 ] El fencing es el proceso de aislar un nodo o proteger los recursos compartidos cuando un nodo parece estar funcionando mal. Existen dos clases de métodos de fencing: uno desactiva el nodo en sí y el otro impide el acceso a recursos como discos compartidos. [ 28 ]
El método STONITH significa "Disparar al otro nodo en la cabeza", lo que implica que el nodo sospechoso se desactiva o se apaga. Por ejemplo, el sistema de protección contra sobretensiones utiliza un controlador de potencia para apagar un nodo inoperable. [ 28 ]
El método de restricción de recursos impide el acceso a los recursos sin apagar el nodo. Esto puede incluir la restricción de reserva persistente a través de SCSI3 , la restricción de canal de fibra para deshabilitar el puerto de canal de fibra o la restricción del dispositivo de bloque de red global (GNBD) para deshabilitar el acceso al servidor GNBD.
Desarrollo y administración de software
Programación paralela
Los clústeres de balanceo de carga, como los servidores web, utilizan arquitecturas de clúster para dar soporte a un gran número de usuarios. Normalmente, cada solicitud de usuario se enruta a un nodo específico, logrando el paralelismo de tareas sin cooperación entre múltiples nodos, dado que el objetivo principal del sistema es proporcionar acceso rápido a los usuarios a datos compartidos. Sin embargo, los clústeres informáticos que realizan cálculos complejos para un número reducido de usuarios necesitan aprovechar las capacidades de procesamiento paralelo del clúster y distribuir el mismo cálculo entre varios nodos. [ 30 ]
La paralelización automática de programas sigue siendo un desafío técnico, pero los modelos de programación paralela pueden utilizarse para lograr un mayor grado de paralelismo mediante la ejecución simultánea de partes separadas de un programa en diferentes procesadores. [ 30 ] [ 31 ]
Depuración y monitorización
El desarrollo y la depuración de programas paralelos en un clúster requieren primitivas de lenguaje paralelo y herramientas adecuadas como las analizadas por el High Performance Debugging Forum (HPDF), que dieron lugar a las especificaciones HPD. [ 24 ] [ 32 ] Posteriormente se desarrollaron herramientas como TotalView para depurar implementaciones paralelas en clústeres de computadoras que utilizan Message Passing Interface (MPI) o Parallel Virtual Machine (PVM) para el paso de mensajes.
El sistema NOW ( Red de Estaciones de Trabajo ) de la Universidad de California, Berkeley, recopila datos de clústeres y los almacena en una base de datos, mientras que un sistema como PARMON, desarrollado en India, permite observar y gestionar visualmente grandes clústeres. [ 24 ]
El punto de control de la aplicación se puede utilizar para restaurar un estado determinado del sistema cuando un nodo falla durante un cálculo prolongado en varios nodos. [ 33 ] Esto es esencial en clústeres grandes, dado que a medida que aumenta el número de nodos, también aumenta la probabilidad de fallo de los nodos bajo cargas computacionales elevadas. El punto de control puede restaurar el sistema a un estado estable para que el procesamiento pueda reanudarse sin necesidad de recalcular los resultados. [ 33 ]
Implementaciones
El mundo Linux admite diversos programas de clúster; para la agrupación de aplicaciones, existen distcc y MPICH . Linux Virtual Server y Linux-HA son clústeres basados en directores que permiten distribuir las solicitudes de servicios entrantes entre varios nodos del clúster. MOSIX , LinuxPMI , Kerrighed y OpenSSI son clústeres completos integrados en el kernel que permiten la migración automática de procesos entre nodos homogéneos. OpenSSI , openMosix y Kerrighed son implementaciones de imágenes de sistema único .
El software Microsoft Windows Cluster Server [ 1 ] , basado en la plataforma Windows Server , lanzado originalmente en 1997/98, proporciona soporte para clústeres para computación de alto rendimiento, incluyendo el programador de trabajos, la biblioteca MSMPI y herramientas de administración.
gLite es un conjunto de tecnologías de middleware creadas por el proyecto Enabling Grids for E-sciencE (EGEE).
Slurm también se utiliza para programar y administrar algunos de los clústeres de supercomputadoras más grandes (ver la lista top500).
Otros enfoques
Aunque la mayoría de los clústeres informáticos son instalaciones permanentes, se han realizado intentos de computación flash mob para crear clústeres efímeros para cálculos específicos. Sin embargo, los sistemas de computación voluntaria a gran escala , como los basados en BOINC , han tenido más adeptos.
Véase también
Referencias
- 1 2 3 4 5 6 7 8 Keefauver, Tim (junio de 1997). Baran, Nicholas (ed.). "La era venidera de la agrupación". Windows NT Systems . 1 (4). San Francisco, California: Miller Freeman Incorporated: 31– 38. ISSN 1091-0212 .
- ↑ "Computación en clúster vs computación en malla" . Stack Overflow .
- ↑ Bader, David ; Pennington, Robert (mayo de 2001). "Computación en clúster: aplicaciones" . Facultad de Informática de Georgia Tech . Archivado del original el 21 de diciembre de 2007. Consultado el 28 de febrero de 2017 .
- ↑ "Supercomputadora de armas nucleares recupera el récord mundial de velocidad para EE . UU." . The Telegraph. 18 de junio de 2012. Archivado del original el 12 de enero de 2022. Consultado el 18 de junio de 2012 .
- ↑ Gray, Jim; Rueter, Andreas (1993). Procesamiento de transacciones : conceptos y técnicas . Morgan Kaufmann Publishers. ISBN 978-1558601901.
- 1 2 3 Enokido, Tomoya; Barolli, Leonhard; Takizawa, Makoto (23 de agosto de 2007). Sistemas de información basados en redes: Primera Conferencia Internacional, NBIS 2007. pág. 375. ISBN 978-3-540-74572-3.
- ↑ William W. Hargrove, Forrest M. Hoffman y Thomas Sterling (16 de agosto de 2001). "La supercomputadora para armar uno mismo" . Scientific American . Vol. 265, n.° 2, págs. 72-79 . Consultado el 18 de octubre de 2011 .
- ↑ Hargrove, William W.; Hoffman, Forrest M. (1999). "Computación en clúster: Linux llevado al extremo" . Linux Magazine . Archivado del original el 18 de octubre de 2011. Recuperado el 18 de octubre de 2011 .
- ↑ Yokokawa, Mitsuo; et al. (1–3 de agosto de 2011). La computadora K: proyecto japonés de desarrollo de supercomputadoras de próxima generación . Simposio Internacional sobre Electrónica y Diseño de Bajo Consumo (ISLPED). pp. 371–372 . doi : 10.1109/ISLPED.2011.5993668 .
- ↑ Pfister, Gregory (1998). En busca de cúmulos (2.ª ed.). Upper Saddle River, Nueva Jersey: Prentice Hall PTR. pág . 36. ISBN 978-0-13-899709-0.
- ↑ Kim, Won (29 de marzo de 1984). "Sistemas de alta disponibilidad para aplicaciones de bases de datos" . ACM Computing Surveys . 16 (1): 71– 98. doi : 10.1145/861.866 . ISSN 0360-0300 . Recuperado el 26 de agosto de 2025 .
- ↑ Katzman, James A. (1982). «Capítulo 29, El Tandem 16: Un sistema informático tolerante a fallos». En Siewiorek, Donald P. (ed.). Estructura de computadoras: Principios y ejemplos . EE. UU.: McGraw-Hill Book Company. págs. 470–485 .
- ↑ "Historia de TANDEM COMPUTERS, INC. – FundingUniverse" . www.fundinguniverse.com . Consultado el 1 de marzo de 2023 .
- ↑ Pollack, Andrew (28 de marzo de 1984). "AT&T ofrece sus computadoras" . The New York Times . Sección D, pág. 1.
- ↑ Hill, Mark Donald; Jouppi, Norman Paul ; Sohi, Gurindar (1999). Lecturas sobre arquitectura de computadoras . Gulf Professional. págs. 41–48 . ISBN 978-1-55860-539-8.
- 1 2 Sloan, Joseph D. (2004). High Performance Linux Clusters . O'Reilly Media, Inc. ISBN 978-0-596-00570-2.
- 1 2 3 4 Daydé, Michel; Dongarra, Jack (2005). High Performance Computing for Computational Science – VECPAR 2004. Springer. pp. 120–121 . ISBN 978-3-540-25424-9.
- ↑ "Sistema de clúster de IBM : Beneficios" . IBM . Archivado del original el 29 de abril de 2016. Consultado el 8 de septiembre de 2014 .
- ↑ "Evaluación de los beneficios de la agrupación en clústeres" . Microsoft . 28 de marzo de 2003. Archivado del original el 22 de abril de 2016. Consultado el 8 de septiembre de 2014 .
- ↑ Hamada, Tsuyoshi; et al. (2009). "Un nuevo algoritmo paralelo de múltiples recorridos para el código de árbol de Barnes-Hut en GPU: hacia una simulación de N cuerpos rentable y de alto rendimiento". Ciencias de la Computación - Investigación y Desarrollo . 24 ( 1– 2): 21– 31. doi : 10.1007/s00450-009-0089-1 . S2CID 31071570 .
- 1 2 Mauer, Ryan (12 de enero de 2006). "Virtualización Xen y clústeres Linux, parte 1" . Linux Journal . Recuperado el 2 de junio de 2017 .
- 1 2 3 Milicchio, Franco; Gehrke, Wolfgang Alexander (2007). Servicios distribuidos con OpenAFS: para empresas y educación . Saltador. págs. 339–341 . ISBN 9783540366348.
- 1 2 3 4 5 Prabhu, CSR (2008). Computación en cuadrícula y clúster . PHI Learning Pvt. págs. 109–112 . ISBN 978-8120334281.
- ↑ 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 . 22 (6): 789– 828. CiteSeerX 10.1.1.102.9485 . doi : 10.1016/0167-8191(96)00024-5 .
- 1 2 3 Patterson, David A.; Hennessy, John L. (2011). Organización y diseño de computadoras . Elsevier. págs. 641–642 . ISBN 978-0-12-374750-1.
- 1 2 Shirahata, K.; et al. (30 de noviembre – 3 de diciembre de 2010). Planificación híbrida de tareas de mapas para clústeres heterogéneos basados en GPU . Cloud Computing Technology and Science (CloudCom). págs. 733–740 . doi : 10.1109/CloudCom.2010.55 . ISBN 978-1-4244-9405-7.
- 1 2 3 "Alan Robertson Resource fencing using STONITH" (PDF) . IBM Linux Research Center, 2010. Archivado del original (PDF) el 5 de enero de 2021.
- ↑ Vargas, Enrique; Bianco, Joseph; Deeths, David (2001). Entorno del cúmulo solar: Cúmulo solar 2.2 . Prentice Hall Professional. pág. 58. ISBN 9780130418708.
- 1 2 Aho, Alfred V.; Blum, Edward K. (2011). Ciencias de la Computación: El Hardware, el Software y su Cohesión . Springer. págs. 156–166 . ISBN 978-1-4614-1167-3.
- ↑ Rauber, Thomas; Rünger, Gudula (2010). Programación paralela: para sistemas multinúcleo y en clúster . Springer. págs. 94–95 . ISBN 978-3-642-04817-3.
- ↑ Francioni, Joan M.; Pancake, Cherri M. (abril de 2000). "Un estándar de depuración para computación de alto rendimiento" . Scientific Programming . 8 (2). Ámsterdam , Países Bajos : IOS Press: 95–108 . doi : 10.1155/2000/971291 . ISSN 1058-9244 .
- 1 2 Sloot, Peter, ed. (2003). Ciencia Computacional: ICCS 2003: Conferencia Internacional . págs. 291–292 . ISBN 3-540-40195-4.
Lecturas adicionales
- Baker, Mark; et al. (11 de enero de 2001). "Documento técnico sobre computación en clúster". arXiv : cs/0004014 .
- Marcus, Evan; Stern, Hal (14 de febrero de 2000). Planos para alta disponibilidad: Diseño de sistemas distribuidos resilientes . John Wiley & Sons. ISBN 978-0-471-35601-1.
- Pfister, Greg (1998). En busca de clústeres . Prentice Hall. ISBN 978-0-13-899709-0.
- Buyya, Rajkumar, ed. (1999). Computación en clúster de alto rendimiento: arquitecturas y sistemas . Vol. 1. Nueva Jersey, EE. UU.: Prentice Hall. ISBN 978-0-13-013784-5.
- Buyya, Rajkumar, ed. (1999). Computación en clúster de alto rendimiento: arquitecturas y sistemas . Vol. 2. Nueva Jersey, EE. UU.: Prentice Hall. ISBN 978-0-13-013785-2.
Enlaces externos
- Comité Técnico de Computación Escalable (TCSC) del IEEE
- Tecnología de clústeres escalable y confiable, IBM
- Wiki de automatización del sistema Tivoli
- Gestión de clústeres a gran escala en Google con Borg , abril de 2015, por Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune y John Wilkes
- computación en clúster
- Computación paralela
- Computación concurrente
- Supercomputadoras
- redes de área local
- Clases de computadoras
- Sistemas informáticos tolerantes a fallos
- Hardware de servidor