Saltar al contenido principal

¿Qué es la computación en clústeres?

La computación en clústeres es el proceso de utilizar varios nodos de computación, denominados clústeres, para aumentar la potencia de procesamiento a fin de resolver problemas complejos. Los casos de uso complejos, como la investigación de fármacos, el análisis de proteínas y el entrenamiento de modelos de IA, requieren el procesamiento paralelo de millones de puntos de datos para tareas complejas de clasificación y predicción. La tecnología de computación en clústeres coordina varios nodos de computación, cada uno con sus propias CPU, GPU y memoria interna, para que trabajen juntos en la misma tarea de procesamiento de datos. Las aplicaciones de la computación en clústeres se ejecutan como si estuvieran en una sola máquina y desconocen las complejidades subyacentes del sistema.

¿Cómo ha evolucionado la tecnología de computación en clústeres?

Los clústeres de computación se inventaron en la década de 1960 para proporcionar capacidad de procesamiento, memoria y almacenamiento en paralelo en varios ordenadores. Los primeros clústeres consistían en ordenadores personales, estaciones de trabajo y servidores. Cada equipo estaba conectado a una red de área local (LAN), lo que permitía a los usuarios acceder a los recursos como si estuvieran usando un solo equipo.

A lo largo de los años, las tecnologías que permiten la computación en clústeres han evolucionado, lo que ha dado lugar a casos de uso más diversos, como la computación de alto rendimiento (HPC). La computación de alto rendimiento utiliza varios procesadores conectados, posiblemente cientos de miles, para proporcionar una enorme potencia de computación en paralelo. Las organizaciones utilizan la HPC para soportar cargas de trabajo en aplicaciones que consumen muchos recursos, como el análisis de datos, la investigación científica, el machine learning y el procesamiento visual.

Computación en clústeres en la nube

Tradicionalmente, la configuración de clústeres de ordenadores requiere instalar y configurar manualmente el equipo, el sistema operativo, las capacidades de red y los mecanismos de distribución de recursos. Además, una configuración local supone una carga financiera para las organizaciones, ya que escalar el clúster requiere invertir en más hardware de servidor.

En la actualidad, muchos proveedores de nube ofrecen clústeres de computación de alto rendimiento (HPC) gestionados en los que las organizaciones pueden implementar fácilmente sus cargas de trabajo. En lugar de configurar miles de ordenadores conectados localmente, puede acceder a una potencia ilimitada de procesamiento en la nube con AWS HPC.

AWS HPC permite a los equipos de software innovar y escalar las cargas de trabajo con uso intensivo de cómputos con los servicios de computación en clústeres disponibles. Por ejemplo, Hypersonix utiliza la computación de alto rendimiento para ejecutar simulaciones de dinámica de fluidos a alta velocidad en las que participan millones de células en la nube de AWS.

¿Cuáles son los casos de uso de la computación en clústeres?

A continuación, compartimos las aplicaciones típicas de las tecnologías de computación en clústeres.

Análisis de macrodatos

La computación en clústeres puede acelerar el análisis de datos al distribuir las tareas analíticas en varios equipos en paralelo. Por ejemplo, puede ejecutar cálculos complejos como Montecarlo, genómica o análisis de sentimientos con clústeres de computación en la nube diseñados para admitir cargas de trabajo de HPC.

Inteligencia artificial y machine learning

Las aplicaciones de inteligencia artificial y machine learning (AI/ML) consumen una enorme potencia de procesamiento al entrenar y procesar datos. Con una infraestructura de computación en clústeres diseñada específicamente, los científicos de datos pueden acelerar el tiempo de obtención de resultados. Por ejemplo, puede ejecutar su carga de trabajo de inteligencia artificial y machine learning en clústeres de IA en la nube con tecnología de AWS Trainium, un chip informático diseñado para acelerar la investigación sobre IA. 

Renderizado 3D

La computación en clústeres permite la representación en clústeres, un proceso en el que varios ordenadores interconectados sincronizan imágenes o vídeos en varias pantallas. También puede usar el renderizado en clústeres para admitir la ingeniería asistida por computadora, la realidad virtual y otras aplicaciones que requieren una gran potencia de procesamiento de gráficos.

Simulaciones

Las organizaciones utilizan clústeres de computación para simular los posibles resultados de los datos a fin de guiar las decisiones empresariales.  Los múltiples ordenadores, cuando están interconectados, permiten un flujo de trabajo interactivo en el que los expertos humanos pueden extraer, revisar y refinar los resultados de los modelos subyacentes. Por ejemplo, puede ejecutar un análisis de riesgo financiero alimentando las cargas de trabajo de machine learning subyacentes con recursos de ordenadores conectados. 

¿Cómo funciona la computación en clústeres?

La computación en clústeres conecta dos o más computadoras a través de una red para que funcionen de manera cohesiva como un solo sistema. Por lo general, la configuración de un clúster consiste en nodos de computación, un nodo líder, un equilibrador de carga y un mecanismo de latido. Cuando el nodo líder recibe una solicitud, pasa la tarea a los nodos informáticos. Según la forma en que los ingenieros configuren el clúster, cada nodo puede realizar la tarea por separado o simultáneamente. A continuación explicamos cada componente.

 

Nodos de computación

Los nodos de computación son servidores (o instancias en la nube) que funcionan en tareas distribuidas. A menudo, comparten las mismas especificaciones de CPU, GPU, memoria, almacenamiento, sistema operativo y otras especificaciones informáticas. A esto lo llamamos configuración homogénea. En ocasiones, se puede utilizar una configuración heterogénea, en la que algunos nodos de clúster tienen especificaciones informáticas diferentes.

Nodo líder

Un nodo líder es una computadora asignada para coordinar el funcionamiento conjunto de otros nodos de computación. El nodo líder recibe las solicitudes entrantes y distribuye las tareas a los diferentes nodos a su cargo. Si el nodo líder falla, otro nodo ocupará su lugar mediante un proceso de elección, normalmente por consenso de los nodos restantes.

Equilibrador de carga

El equilibrador de carga es un dispositivo de red que distribuye el tráfico entrante a los nodos de computación apropiados. Realiza un seguimiento de las actividades de la red, el uso de los recursos y el intercambio de datos entre los nodos de clúster. En la computación en clústeres, el equilibrador de carga evita que los nodos de computación se vean abrumados por un aumento repentino de solicitudes. A veces, el nodo líder actúa como un equilibrador de carga a través de una herramienta de software de equilibrio de carga dedicada.

Mecanismo del latido

El mecanismo de latido monitorea todos los nodos de computación en el clúster para garantizar que estén operativos. Cuando un nodo no responde, el mecanismo de latido alerta al nodo líder y redistribuye la tarea a otros nodos funcionales. 

¿Cuáles son los tipos de computación en clústeres?

Las organizaciones pueden configurar clústeres de computación para respaldar diversos objetivos empresariales, operativos y de rendimiento.

Clústeres de equilibrio de carga

Los clústeres de equilibrio de carga permiten la estabilidad operativa al coordinar automáticamente la administración de los recursos. Cuando el clúster recibe una solicitud, distribuye la tarea de manera uniforme entre todos los nodos disponibles. Esto evita que cualquier nodo individual se sobrecargue. Por ejemplo, las empresas alojan sitios web de comercio electrónico en clústeres de equilibrio de carga para adaptarse a los picos de tráfico estacionales. Como todos los nodos actúan de forma colaborativa en respuesta a la solicitud, los usuarios disfrutan de un rendimiento constante a pesar del alto volumen de tráfico.

Clústeres de alta disponibilidad

Los clústeres de alta disponibilidad (HA) garantizan la disponibilidad de los servicios mediante el mantenimiento de nodos redundantes. Cuando un solo nodo falla, el equilibrador de carga redistribuye el tráfico a los nodos de respaldo, lo que garantiza la continuidad del servicio en todo momento. Con frecuencia, se incluye un equilibrador de carga redundante en la configuración para evitar un único punto de falla. De esta forma, todo el clúster puede recuperarse rápidamente si sus componentes fallan.

Puede configurar los clústeres de alta disponibilidad de dos maneras.

Configuraciones activo-activas

Todos los nodos están operativos, tanto si se les asigna una tarea como si no. Sin embargo, si fallan, el equilibrador de cargas redistribuirá la tarea entre los nodos en buen estado.

Configuraciones activo-pasivas.

Algunos nodos permanecen inactivos durante las operaciones normales. Solo se activan cuando falla un nodo.

Clústeres de alto rendimiento

Los clústeres de alto rendimiento combinan varios ordenadores o superordenadores para resolver tareas computacionales complejas a una alta velocidad de procesamiento. En lugar de procesar de forma secuencial, los clústeres de alto rendimiento procesan los datos en paralelo, lo que beneficia a las aplicaciones que consumen muchos recursos, como la minería de datos. Además, los nodos de computación pueden intercambiar datos a medida que trabajan para lograr un objetivo común. 

¿Cuál es el papel de la computación en clústeres en la IA?

Las cargas de trabajo de IA requieren enormes recursos informáticos, almacenamiento y conexiones de red de baja latencia. Anteriormente, las organizaciones implementaban cargas de trabajo de IA en centros de datos locales. Sin embargo, a medida que las aplicaciones de IA se vuelven más complejas, requieren más potencia informática y espacio de almacenamiento. Cuando se reutiliza para cargas de trabajo de IA, la computación en clústeres crea una enorme red de superordenadores en los que pueden ejecutarse las cargas de trabajo de IA. En lugar de CPU, los superordenadores funcionan con GPU y TPU para satisfacer las altas demandas computacionales. Estas arquitecturas de clústeres, también denominadas superclústeres de IA, permiten a las organizaciones crear, implementar y escalar el aprendizaje profundo, los sistemas autónomos, el análisis de macrodatos y otras aplicaciones de IA.

¿Cómo puede AWS cumplir con sus requisitos de computación en clústeres?

AWS Parallel Computing Service (AWS PCS) es un servicio administrado que utiliza Slurm para ejecutar y escalar cargas de trabajo de computación de alto rendimiento (HPC) en AWS. Puede usar AWS PCS para:

  • Simplificar las operaciones de su clúster mediante las capacidades de administración y observabilidad integradas.
  • Crear clústeres informáticos que integren la computación, el almacenamiento, las redes y la visualización de AWS.
  • Ejecutar simulaciones o crear modelos científicos y de ingeniería.

Elastic Fabric Adapter (EFA) es una interfaz de red para nodos informáticos que se ejecutan en instancias de Amazon EC2. Su interfaz personalizada mejora el rendimiento de las comunicaciones entre instancias, lo cual es fundamental para escalar las aplicaciones de computación en clústeres.

AWS ParallelCluster es una herramienta de administración de clústeres de código abierto que facilita la implementación y la administración de los clústeres de Amazon EC2. Puede utilizar una sencilla interfaz gráfica de usuario (GUI) o un archivo de texto para modelar y aprovisionar todos los recursos necesarios para sus aplicaciones de HPC de forma segura y automatizada.

Para comenzar a trabajar con la computación en clústeres en AWS, cree una cuenta gratuita hoy mismo.