Un grupo de computadoras es un conjunto de computadoras que trabajan juntas para que puedan verse como un solo sistema. A diferencia de las computadoras grid , los clústeres de computadoras tienen cada nodo configurado para realizar la misma tarea, controlada y programada por software.
Los componentes de un clúster generalmente están conectados entre sí a través de redes de área local rápidas , y cada nodo (computadora utilizada como servidor) ejecuta su propia instancia de un sistema operativo . En la mayoría de las circunstancias, todos los nodos usan el mismo hardware [1] [se necesita una mejor fuente ] y el mismo sistema operativo, aunque en algunas configuraciones (por ejemplo, usando Open Source Cluster Application Resources (OSCAR)), se pueden usar diferentes sistemas operativos en cada computadora, o hardware diferente. [2]
Por lo general, los clústeres se implementan para mejorar el rendimiento y la disponibilidad en comparación con el de una sola computadora, mientras que por lo general son mucho más rentables que las computadoras individuales de velocidad o disponibilidad comparables. [3]
Los clústeres de computadoras surgieron como resultado de la convergencia de una serie de tendencias de computación, incluida la disponibilidad de microprocesadores de bajo costo, redes de alta velocidad y software para computación distribuida de alto rendimiento . [ cita requerida ] Tienen una amplia gama de aplicabilidad y despliegue, que van desde clústeres de pequeñas empresas con un puñado de nodos hasta algunas de las supercomputadoras más rápidas del mundo, como la Sequoia de IBM . [4] Antes de la llegada de los clústeres, se empleaban mainframes tolerantes a fallas de una sola unidad con redundancia modular ; pero el menor costo inicial de los clústeres y la mayor velocidad de la estructura de la red han favorecido la adopción de clústeres. En contraste con los clústeres de mainframes de alta confiabilidad, los clústeres son más baratos de escalar horizontalmente, pero también tienen 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. [5]
Conceptos básicos
El deseo de obtener más potencia de cómputo y una mejor confiabilidad mediante la organización de una serie de computadoras comerciales de bajo costo ha dado lugar a una variedad de arquitecturas y configuraciones.
El enfoque de agrupamiento de computadoras generalmente (pero 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 . [6] Las actividades de los nodos de computación están orquestadas por "clustering middleware", una capa de software que se asienta sobre los nodos y permite a los usuarios tratar el cluster como una unidad de computación cohesiva, por ejemplo, a través de un concepto de imagen de sistema único . [6]
La agrupación en clústeres de computadoras se basa en un enfoque de administración centralizada que hace que los nodos estén disponibles como servidores compartidos orquestados. Es distinto de otros enfoques, como el de igual a igual o la computación en cuadrícula, que también utilizan muchos nodos, pero con una naturaleza mucho más distribuida . [6]
Un grupo de computadoras puede ser un sistema simple de dos nodos que solo 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 de Beowulf que puede construirse con algunas computadoras personales para producir una alternativa rentable a la computación tradicional de alto rendimiento . Uno de los primeros proyectos que mostró la viabilidad del concepto fue la computadora Stone Souper de 133 nodos . [7] Los desarrolladores utilizaron Linux , el kit de herramientas de la máquina virtual paralela y la biblioteca de interfaz de paso de mensajes para lograr un alto rendimiento a un costo relativamente bajo. [8]
Aunque un clúster puede constar de unas pocas computadoras personales conectadas por una red simple, la arquitectura del clúster también se puede utilizar para lograr niveles muy altos de rendimiento. La lista semestral de la organización TOP500 de las 500 supercomputadoras más rápidas a menudo incluye muchos clústeres, por ejemplo, la máquina más rápida del mundo en 2011 fue la computadora K, que tiene una arquitectura de clúster de memoria distribuida . [9]
Historia
Greg Pfister ha declarado que los clústeres no fueron inventados por ningún proveedor específico, sino por clientes que no podían encajar todo su trabajo en una computadora o necesitaban una copia de seguridad. [10] 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 un medio para hacer trabajo paralelo de cualquier tipo fue posiblemente inventada por Gene Amdahl de IBM , quien en 1967 publicó lo que ha llegado a ser considerado como el artículo fundamental sobre el procesamiento paralelo: la Ley de Amdahl .
La historia de los primeros clústeres de computadoras 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 fue vincular los recursos informáticos, creando un clúster de computadoras de facto.
El primer sistema de producción diseñado como grupo fue el Burroughs B5700 a mediados de la década de 1960. Esto permitió que hasta cuatro computadoras, cada una con uno o dos procesadores, estuvieran estrechamente acopladas 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 se puede reiniciar sin interrumpir el funcionamiento general.
El primer producto comercial de agrupación en clústeres débilmente acoplado fue el sistema "Attached Resource Computer" (ARC) de Datapoint Corporation , desarrollado en 1977 y que utiliza ARCnet como interfaz de clúster. La agrupación en clúster en sí no despegó realmente hasta que Digital Equipment Corporation lanzó su producto VAXcluster en 1984 para el sistema operativo VAX / VMS (ahora llamado OpenVMS). Los productos ARC y VAXcluster no solo admitían computación en paralelo, sino también sistemas de archivos compartidos y dispositivos periféricos . La idea era proporcionar las ventajas del procesamiento en paralelo, manteniendo la confiabilidad y singularidad de los datos. Otros dos clústeres comerciales tempranos dignos de mención fueron el Tandem Himalayan (un producto de alta disponibilidad de alrededor de 1994) y el IBM S / 390 Parallel Sysplex (también alrededor de 1994, principalmente para uso comercial).
Dentro del mismo período de tiempo, mientras que los grupos de computadoras usaban el paralelismo fuera de la computadora en una red de productos básicos, las supercomputadoras comenzaron a usarlos dentro de la misma computadora. Tras el éxito del CDC 6600 en 1964, el Cray 1 se entregó en 1976 e introdujo el paralelismo interno a través del procesamiento vectorial . [11] 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 ) se basaban en arquitecturas de clústeres.
Atributos de los clústeres
Los clústeres de computadoras se pueden configurar para diferentes propósitos que van desde necesidades comerciales de propósito general, como soporte de servicios web, hasta cálculos científicos intensivos en computación. En cualquier caso, el clúster puede utilizar un enfoque de alta disponibilidad . Tenga en cuenta que los atributos que se describen a continuación no son exclusivos y que un "clúster de computadoras" también puede utilizar un enfoque de alta disponibilidad, etc.
Los clústeres de " equilibrio 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, por lo que se optimizará el tiempo de respuesta general. [12] Sin embargo, los enfoques para el equilibrio de carga pueden diferir significativamente entre las aplicaciones, por ejemplo, un clúster de alto rendimiento utilizado para cálculos científicos equilibraría la carga con diferentes algoritmos de un clúster de servidor web que puede usar un método simple de operación por turnos asignando cada nueva solicitud a un nodo diferente. [12]
Los clústeres de computadoras se utilizan con fines de computación intensiva, en lugar de manejar operaciones orientadas a E / S , como servicios web o bases de datos. [13] Por ejemplo, un grupo de computadoras podría soportar simulaciones computacionales de choques de vehículos o clima. Los clústeres de computadoras muy estrechamente acoplados están diseñados para trabajos que pueden acercarse 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. Operan al tener nodos redundantes , que luego se utilizan para brindar servicio cuando fallan los componentes del sistema. Las implementaciones de clúster HA intentan utilizar la redundancia de los componentes del clúster para eliminar puntos únicos de falla . Existen implementaciones comerciales de clústeres de alta disponibilidad para muchos sistemas operativos. El proyecto Linux-HA es un paquete HA de software libre de uso común para el sistema operativo Linux .
Beneficios
Los clústeres se diseñan principalmente teniendo en cuenta el rendimiento, pero las instalaciones se basan en muchos otros factores. La tolerancia a fallas ( la capacidad de un sistema para continuar trabajando con un nodo que funciona mal ) permite escalabilidad y, en situaciones de alto rendimiento, baja frecuencia de rutinas de mantenimiento, consolidación de recursos (por ejemplo, RAID ) y administración centralizada. Las ventajas incluyen permitir la recuperación de datos en caso de desastre y proporcionar procesamiento de datos en paralelo y alta capacidad de procesamiento. [14] [15]
En términos de escalabilidad, los clústeres proporcionan esto en su capacidad de agregar nodos horizontalmente. Esto significa que se pueden agregar más computadoras al clúster para mejorar su rendimiento, redundancia y tolerancia a fallas. Esta puede ser una solución económica para un clúster de mayor rendimiento en comparación con la ampliación de un solo nodo en el clúster. Esta propiedad de los clústeres de computadoras puede permitir 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 eliminar todo el clúster. Un solo nodo se puede quitar para mantenimiento, mientras que el resto del clúster asume la carga de ese nodo individual.
Si tiene una gran cantidad de equipos agrupados, esto se presta al uso de sistemas de archivos distribuidos y RAID , los cuales pueden aumentar la confiabilidad y la velocidad de un grupo.
Diseño y configuración
Uno de los problemas al diseñar un clúster es qué tan estrechamente acoplados pueden estar los nodos individuales. Por ejemplo, un solo trabajo de computadora puede requerir una comunicación frecuente entre los nodos: esto implica que el clúster comparte una red dedicada, está densamente ubicado y probablemente tenga nodos homogéneos. El otro extremo es donde un trabajo de computadora usa uno o pocos nodos y necesita poca o ninguna comunicación entre nodos, acercándose a la computación en cuadrícula .
En un clúster de 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 se encarga de la programación y administración de los esclavos. [13] En una implementación típica, el Maestro tiene dos interfaces de red, una que se comunica con la red privada de Beowulf para los esclavos y la otra para la red de propósito general de la organización. [13] Las computadoras esclavas suelen tener su propia versión del mismo sistema operativo y memoria local y espacio en disco. Sin embargo, la red esclava privada también puede tener un servidor de archivos grande y compartido que almacena datos persistentes globales, a los que acceden los esclavos según sea necesario. [13]
Un clúster DEGIMA de 144 nodos de propósito especial está sintonizado 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. [dieciséis]
Debido al aumento de la potencia informática de cada generación de consolas de juegos , ha surgido un uso novedoso en el que se reutilizan en clústeres de informática de alto rendimiento (HPC). Algunos ejemplos de grupos de consolas de juegos son los grupos de Sony PlayStation y los grupos de Microsoft Xbox . Otro ejemplo de producto de juegos de consumo es la estación de trabajo Nvidia Tesla Personal Supercomputer , que utiliza varios chips de procesador de aceleración de gráficos. Además de las consolas de juegos, también se pueden usar tarjetas gráficas de alta gama. El uso de tarjetas gráficas (o más bien sus GPU) para realizar cálculos para la computación en cuadrícula es mucho más económico que el uso de CPU, a pesar de ser menos preciso. Sin embargo, cuando se utilizan valores de doble precisión, se vuelven tan precisos para trabajar como las CPU y aún son mucho menos costosos (costo de compra). [2]
Históricamente, los clústeres de computadoras se han ejecutado en computadoras físicas separadas con el mismo sistema operativo . Con el advenimiento de la virtualización , los nodos del clúster pueden ejecutarse en computadoras físicas separadas con diferentes sistemas operativos que están pintados arriba con una capa virtual para tener un aspecto similar. [17] [ cita requerida ] [ aclaración necesaria ] El clúster también puede virtualizarse en varias configuraciones a medida que se realiza el mantenimiento; una implementación de ejemplo es Xen como administrador de virtualización con Linux-HA . [17]
Intercambio de datos y comunicación
Compartir datos
A medida que aparecieron los grupos de computadoras durante la década de 1980, también lo hicieron las supercomputadoras . Uno de los elementos que distinguía a las tres clases en ese momento era que las primeras supercomputadoras dependían de la memoria compartida . Hasta la fecha, los clústeres no suelen utilizar memoria compartida físicamente, mientras que 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 de computadoras modernos. [ cita requerida ] Algunos ejemplos incluyen IBM General Parallel File System , Cluster Shared Volumes de Microsoft o Oracle Cluster File System .
Transmisión y comunicación de mensajes
Dos enfoques ampliamente utilizados para la comunicación entre los nodos del clúster son MPI ( interfaz de paso de mensajes ) y PVM ( máquina virtual paralela ). [18]
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 describen el nodo como una "máquina virtual paralela". PVM 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. PVM puede ser utilizado por programas de usuario escritos en C, C ++ o Fortran, etc. [18] [19]
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 de nuevo, el diseño de MPI se basó en varias características disponibles en los sistemas comerciales de la época. Las especificaciones MPI dieron lugar entonces a implementaciones específicas. Las implementaciones de MPI suelen utilizar TCP / IP y conexiones de socket. [18] MPI es ahora un modelo de comunicaciones ampliamente disponible que permite escribir programas paralelos en lenguajes como C , Fortran , Python , etc. [19] Así, a diferencia de PVM que proporciona una implementación concreta, MPI es una especificación que ha sido implementado en sistemas como MPICH y Open MPI . [19] [20]
Gestión de clústeres
Uno de los desafíos en el uso de un clúster de computadoras es el costo de administrarlo, que a veces puede ser tan alto como el costo de administrar N máquinas independientes, si el clúster tiene N nodos. [21] En algunos casos, esto proporciona una ventaja a las arquitecturas de memoria compartida con menores costos de administración. [21] Esto también ha hecho populares las máquinas virtuales , debido a la facilidad de administración. [21]
Programación de tareas
Cuando un gran clúster de múltiples usuarios necesita acceder a grandes cantidades de datos, la programación de tareas se convierte en un desafío. En un clúster CPU-GPU heterogéneo 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 núcleos de CPU y dispositivos GPU presenta desafíos importantes. [22] Esta es un área de investigación en curso; Se han propuesto y estudiado algoritmos que combinan y amplían MapReduce y Hadoop . [22]
Gestión de fallos de nodo
Cuando falla un nodo en un clúster, se pueden emplear estrategias como " cercado " para mantener el resto del sistema operativo. [23] [24] La cerca es el proceso de aislar un nodo o proteger los recursos compartidos cuando un nodo parece estar funcionando mal. Hay dos clases de métodos de cercado; uno deshabilita un nodo en sí y el otro no permite el acceso a recursos como discos compartidos. [23]
El método STONITH significa "Disparar al otro nodo en la cabeza", lo que significa que el nodo sospechoso está desactivado o apagado. Por ejemplo, las cercas eléctricas utilizan un controlador de energía para apagar un nodo que no funciona. [23]
El enfoque de cercado de recursos no permite el acceso a los recursos sin apagar el nodo. Esto puede incluir cercado de reserva persistente a través de SCSI3 , cercado de canal de fibra para deshabilitar el puerto de canal de fibra o cercado de dispositivo de bloqueo de red global (GNBD) para deshabilitar el acceso al servidor GNBD.
Desarrollo y administración de software
Programación paralela
Los clústeres de equilibrio de carga, como los servidores web, utilizan arquitecturas de clúster para admitir una gran cantidad de usuarios y, por lo general, cada solicitud de usuario se enruta a un nodo específico, logrando un paralelismo de tareas sin cooperación de múltiples nodos, dado que el objetivo principal del sistema es proporcionar un usuario rápido. acceso a datos compartidos. Sin embargo, los "clústeres de computadoras" que realizan cálculos complejos para un pequeño número de usuarios necesitan aprovechar las capacidades de procesamiento paralelo del clúster y dividir "el mismo cálculo" entre varios nodos. [25]
La paralelización automática de programas sigue siendo un desafío técnico, pero los modelos de programación paralela se pueden utilizar para lograr un mayor grado de paralelismo mediante la ejecución simultánea de partes separadas de un programa en diferentes procesadores. [25] [26]
Depuración y seguimiento
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 Foro de depuración de alto rendimiento (HPDF), que dio como resultado las especificaciones de HPD. [19] [27] Luego se desarrollaron herramientas como TotalView para depurar implementaciones paralelas en clústeres de computadoras que utilizan la interfaz de paso de mensajes (MPI) o la máquina virtual paralela (PVM) para el paso de mensajes.
El sistema de la Universidad de California, Berkeley Network of Workstations (NOW) 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. [19]
Los puntos de control de la aplicación se pueden utilizar para restaurar un estado determinado del sistema cuando un nodo falla durante un cálculo largo de varios nodos. [28] Esto es esencial en clústeres grandes, dado que a medida que aumenta el número de nodos, también lo hace la probabilidad de falla del nodo bajo cargas computacionales pesadas. Los puntos de verificación pueden restaurar el sistema a un estado estable para que el procesamiento se pueda reanudar sin necesidad de volver a calcular los resultados. [28]
Implementaciones
El mundo de Linux admite varios software de clúster; para la agrupación de aplicaciones, hay distcc y MPICH . Linux Virtual Server , Linux-HA : clústeres basados en directores que permiten que las solicitudes entrantes de servicios se distribuyan en varios nodos del clúster. MOSIX , LinuxPMI , Kerrighed , OpenSSI son grupos en toda regla integrados en el kernel que proporcionan para la migración automática proceso entre los nodos homogéneos. OpenSSI , openMosix y Kerrighed son implementaciones de imágenes de un solo sistema .
El clúster de computadoras de Microsoft Windows Server 2003 basado en la plataforma Windows Server proporciona piezas para Computación de alto rendimiento como el Programador de trabajos, la biblioteca MSMPI y las 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 grupos de supercomputadoras más grandes (consulte la lista top500).
Otros enfoques
Aunque la mayoría de los clústeres de computadoras son accesorios permanentes, se han realizado intentos de computación flash mob para construir clústeres de corta duración para cálculos específicos. Sin embargo, los sistemas informáticos voluntarios a gran escala , como los sistemas basados en BOINC , han tenido más seguidores.
Ver también
Conceptos básicos
Computación distribuída
| Sistemas específicos
Granjas de ordenadores
|
Referencias
- ^ "Cluster vs grid computing" . Desbordamiento de pila .
- ^ Bader, David ; Pennington, Robert (mayo de 2001). "Cluster Computing: Aplicaciones" . Facultad de Computación de Georgia Tech . Archivado desde el original el 21 de diciembre de 2007 . Consultado el 28 de febrero de 2017 .
- ^ "Superordenador de armas nucleares reclama récord mundial de velocidad para Estados Unidos" . El Telégrafo. 18 de junio de 2012 . Consultado el 18 de junio de 2012 .
- ^ Gray, Jim; Rueter, Andreas (1993). Procesamiento de transacciones: conceptos y técnicas . Editores Morgan Kaufmann. ISBN 978-1558601901.
- ^ a b c Sistemas de información basados en redes: Primera conferencia internacional, NBIS 2007 . pag. 375. ISBN 3-540-74572-6.
- ^ William W. Hargrove, Forrest M. Hoffman y Thomas Sterling (16 de agosto de 2001). "La supercomputadora hágalo usted mismo" . Scientific American . 265 (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" . Revista Linux . Archivado desde el original el 18 de octubre de 2011 . Consultado 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 de Diseño y Electrónica de Baja Potencia (ISLPED). págs. 371–372. doi : 10.1109 / ISLPED.2011.5993668 .
- ^ Pfister, Gregory (1998). En busca de racimos (2ª ed.). Upper Saddle River, Nueva Jersey: Prentice Hall PTR. pag. 36 . ISBN 978-0-13-899709-0.
- ^ Hill, Mark Donald; Jouppi, Norman Paul ; Sohi, Gurindar (1999). Lecturas en arquitectura informática . págs. 41–48. ISBN 978-1-55860-539-8.
- ^ a b Sloan, Joseph D. (2004). Clústeres de Linux de alto rendimiento . ISBN 978-0-596-00570-2.
- ^ a b c d Daydé, Michel; Dongarra, Jack (2005). Computación de alto rendimiento para la ciencia computacional - VECPAR 2004 . págs. 120-121. ISBN 978-3-540-25424-9.
- ^ "IBM Cluster System: Beneficios" . IBM . Archivado desde el 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 desde el original el 22 de abril de 2016 . Consultado el 8 de septiembre de 2014 .
- ^ Hamada, Tsuyoshi; et al. (2009). "Un novedoso algoritmo paralelo de recorridos múltiples para el código de árbol de Barnes-Hut en GPU, hacia una simulación de N-body 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 .
- ^ a b Mauer, Ryan (12 de enero de 2006). "Virtualización Xen y agrupación en clústeres de Linux, parte 1" . Revista de Linux . Consultado el 2 de junio de 2017 .
- ^ a b c Milicchio, Franco; Gehrke, Wolfgang Alexander (2007). Servicios distribuidos con OpenAFS: para empresas y educación . págs. 339–341. ISBN 9783540366348.
- ^ a b c d e Prabhu, RSE (2008). Computación Grid y Cluster . págs. 109–112. ISBN 978-8120334281.
- ^ Gropp, William; Lusk, Ewing; Skjellum, Anthony (1996). "Una implementación portátil 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 .
- ^ a b c Patterson, David A .; Hennessy, John L. (2011). Organización y Diseño de Computadores . págs. 641–642. ISBN 978-0-12-374750-1.
- ^ a b K. Shirahata; et al. (30 de noviembre - 3 de diciembre de 2010). Programación de tareas de mapas híbridos para clústeres heterogéneos basados en GPU . Tecnología y ciencia de la computación en la nube (CloudCom). págs. 733–740. doi : 10.1109 / CloudCom.2010.55 . ISBN 978-1-4244-9405-7.
- ^ a b c "Alan Robertson Resource esgrima utilizando STONITH" (PDF) . Centro de investigación de IBM Linux, 2010 . Archivado desde el original (PDF) el 2021-01-05. CS1 maint: parámetro desalentado ( enlace )
- ^ Vargas, Enrique; Bianco, Joseph; Deeths, David (2001). Entorno de Sun Cluster: Sun Cluster 2.2 . Prentice Hall Professional. pag. 58. ISBN 9780130418708.
- ^ a b Aho, Alfred V .; Blum, Edward K. (2011). Ciencias de la computación: el hardware, el software y el corazón . págs. 156-166. ISBN 978-1-4614-1167-3.
- ^ Rauber, Thomas; Rünger, Gudula (2010). Programación en paralelo: para sistemas multinúcleo y de clúster . 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 la informática de alto rendimiento" . Programación científica . Amsterdam , Países Bajos : IOS Press. 8 (2): 95–108. doi : 10.1155 / 2000/971291 . ISSN 1058-9244 .
- ^ a b Sloot, Peter, ed. (2003). Ciencias Computacionales: ICCS 2003: Conferencia Internacional . págs. 291-292. ISBN 3-540-40195-4.
Otras lecturas
- Baker, Mark; et al. (11 de enero de 2001). "Libro blanco de Cluster Computing". arXiv : cs / 0004014 .
- Marcus, Evan; Stern, Hal (14 de febrero de 2000). Planos de alta disponibilidad: diseño de sistemas distribuidos resistentes . John Wiley e hijos. 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 . 1 . Nueva Jersey, Estados Unidos: Prentice Hall. ISBN 978-0-13-013784-5.
- Buyya, Rajkumar, ed. (1999). Computación en clúster de alto rendimiento: arquitecturas y sistemas . 2 . Nueva Jersey, Estados Unidos: Prentice Hall. ISBN 978-0-13-013785-2.
enlaces externos
- Comité Técnico de Computación Escalable de IEEE (TCSC)
- Tecnología de clúster escalable confiable, IBM [ enlace muerto permanente ]
- Wiki de Tivoli System Automation
- 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