Cabecera personalizada

El blog de Mikel Niño
Emprendimiento digital, startups, Big Data Analytics y nuevos modelos de negocio

Enfoques alternativos a MapReduce para el procesamiento de Big Data

La estrategia en la que se basa el modelo MapReduce para procesar cantidades masivas de datos podría resumirse en la conocida idea de “la unión hace la fuerza”: aprovechar las capacidades hasta cierto punto “modestas” de un gran número de máquinas que, junto a una eficiente gestión de su trabajo en paralelo gracias al framework que proporcionan las implementaciones de MapReduce sobre un sistema de ficheros distribuidos, presentan una combinación potente y al mismo tiempo flexible para poder escalar en su capacidad de procesamiento de datos. Sin embargo no todo es MapReduce en el mundo de los datos masivos, y existen otras estrategias diferentes para este mismo fin.

El enfoque que sigue el modelo MapReduce para poder escalar en capacidad de procesamiento de datos recibe el nombre de “escalado en horizontal” (conocido en ocasiones también como “scale out”). Dicho nombre hace referencia a una posible visualización de ese conjunto de máquinas unas al lado de otras (“en horizontal”, como suelen representarse gráficamente) y sumando sus capacidades de procesamiento. El enfoque opuesto se denomina “escalado en vertical” (“scale up”) y está basado en el uso de una “supermáquina” donde se incrementan al máximo sus capacidades de cómputo.

Un ejemplo de esta estrategia alternativa es el llamado “cómputo de alto rendimiento” (High-Performance Computing, HPC), cuyo origen data de varias décadas atrás y que hasta el reciente desarrollo de las tecnologías Big Data basadas en MapReduce era la estrategia predominante para el proceso de grandes volúmenes de datos. El HPC se basa en el uso de “supermáquinas” con miles de procesadores (núcleos o “cores”), donde el hardware interno está optimizado al máximo para conseguir las mayores velocidades posibles. Esta estrategia no es tan flexible como el modelo MapReduce en cuanto a la capacidad de escalado y presenta un serio inconveniente por su elevado coste, pero en determinados contextos sigue siendo la estrategia preferida.

Dentro de esta idea del “escalado en vertical”, una propuesta que ha venido desarrollándose con fuerza en los últimos años es el uso de procesadores gráficos (GPU) con un propósito diferente (más genérico) del que originalmente tenían. Aprovechando que estos procesadores cuentan con una estructura de hardware interno que explota al máximo el paralelismo para conseguir una gran potencia de cómputo (en principio destinada exclusivamente al procesamiento de operaciones gráficas), surge la propuesta de utilizarlos para procesamiento de propósito general (denominado por tanto “General-Purpose Computing on Graphics Processing Units”, o GPGPU). La empresa que ha venido liderando esta propuesta es la conocida firma de procesadores gráficos NVIDIA, con su framework CUDA para este tipo de desarrollos. En la actualidad podemos ver incluso como se ofrecen seminarios online sobre el uso de algoritmos de “deep learning (una sub-área dentro del aprendizaje automático) programados sobre estas plataformas.

No hay comentarios:

Publicar un comentario