¿Cómo supercargar el Edge Computing con un clúster?

El uso de clústers de computadoras es un paradigma de cómputo muy poderoso para lograr cargas de trabajo bastante grandes y para implementar aplicaciones muy específicas, como un algoritmo de inteligencia artificial. Pero ¿Qué pasaría si en lugar de centralizarlo, aplicáramos el cómputo con clúster más cerca del punto final de aplicación? En esta entrada veremos como podemos implementar Edge Computing con un clúster de dimensiones reducidas y qué efectos tiene en el proyecto final.

¿Qué es el Edge Computing con clusters?

Como mencionamos en la introducción, un clúster de computadoras busca aumentar las capacidades de cómputo de un servidor convencional. Por definición, un clúster es un grupo de computadoras que trabajan en conjunto. Ahora ese mismo concepto puede llevarse al Edge Computing tomando la ubicación del clúster. Si colocamos un grupo de computadoras que lleven a cabo una serie de cálculos computacionales sin tener que llevarlos a un servidor central podemos disminuir la latencia y la carga de la red.

Los avances en computadoras de una sola tarjeta permiten que este enfoque sea una realidad. Por ejemplo, los módulos de cómputo de Raspberry Pi o los módulos NVIDIA Jetson Nano permiten implementar un clúster computacional en un espacio reducido, en vez de usar un gabinete en un cuarto completo.

Jetson Mate Board con módulos de Jetson Nano insertados. Vía: NVIDIA

¿Cómo funciona un clúster?

Por ahora sabemos que un clúster consiste en un grupo de computadoras trabajando en conjunto, a las que cada una se les conoce como nodo. En cada clúster hay usualmente un nodo maestro seguido de múltiples nodos esclavos (o nodos de trabajo). Todos ellos están conectados y se comunican entre si; típicamente trabajan con el mismo sistema operativo.

Arquitectura básica de un clúster. Vía: Seeedstudio

Cuando un clúster recibe una tarea, como almacenar y procesar una serie de datos, el nodo maestro se vuelve el responsable de delegar dicha tarea a los nodos esclavos. El modo en que la carga de trabajo se distribuye entre los nodos es lo que distingue a un clúster de otro. Algunos, por ejemplo, se enfocan en proveer el mejor desempeño posible, mientras que otros se diseñan para funcionar a prueba de fallos.

¿Cuáles son los usos y beneficios?

Existen tres tipos principales de clústers que debes conocer, cada uno con un propósito específico y ventajas. Estos clústers son:

  • De alta disponibilidad – Se asegura de que las aplicaciones estén disponibles de forma constante, enrutando las solicitudes a otro nodo en caso de que el otro falle.
  • De balance de carga – Distribuye las cargas de trabajo de forma equitativa entre los diferentes nodos para llevar a cabo grandes volúmenes de trabajo.
  • Alto desempeño – Múltiples nodos esclavo se usan en paralelo para incrementar el poder de cómputo para desempeñar tareas demandantes

Algunas de las ventajas más notables al implementar este tipo de sistemas enfocados al Edge Computing son:

  • Sistemas robustos que proveen una alta confiabilidad. También conllevan un mantenimiento menos frecuente, ya que se dispone de diversos nodos para asegurar un funcionamiento continuo
  • Flexibilidad y compatibilidad con un amplio rango de aplicaciones. Se puede encontrar un clúster de alto desempeño para aplicaciones de machine learning o uno de alta disponibilidad con enfoque de IoT.
  • Gran capacidad de cómputo la característica más significativa de los clústers. Como la mayoria de los dispositivos Edge Computing tienen recursos limitados, el uso de estos sistemas permite expandir las posibilidades de desarrollo.

Recomendaciones de hardware

TuringPi

El Turing Pi permite usar hasta 7 módulos de cómputo 3 de Raspberry Pi. Uno de ellos funcionando como nodo maestro y los seis restantes como nodos de trabajo. La siguiente versión del TuringPi implementará la siguiente versión del compute module, por lo que tendrá más capacidad de cómputo

NVIDIA Jetson Mate con los Jetson Nano Modules

Los módulos de cómputo de NVIDIA permiten implementar cargas de trabajo exhaustivas, ya que poseen GPUs avanzados que las hacen adecuadas para estas tareas. La Jetson Nano carrier board permite unir la capacidad de estos módulos en una tarjeta para desarrollar proyectos demandantes.

Conclusiones:

El uso de clústers de dimensiones reducidas permite explotar las posibilidades del Edge Computing con una capacidad de procesamiento aumentada. Algunos de las opciones de hardware disponibles se obtienen por parte de Raspberry Pi o de NVIDIA. El planteamiento de un nuevo paradigma de cómputo permitirá transformar la forma en que desarrollamos e implementamos nuevas aplicaciones.

Referencias:

How NVIDIA Jetson Clusters Supercharge GPU Edge Computing

Cluster Computing on the Edge – What, Why & How to Get Started

Cluster de Compute Modules 3 de Raspberry Pi llamado TuringPi. Vía. TuringPi.com