La Red de Conocimientos Pedagógicos - Conocimientos históricos - ¿Qué modelo de programación se utiliza habitualmente en la computación en la nube?

¿Qué modelo de programación se utiliza habitualmente en la computación en la nube?

1)MapReduce

MapReduce es un modelo de programación propuesto por Jeff Dean de Google para procesar y generar datos a gran escala. Conceptualmente, MapReduce procesa un conjunto de pares clave-valor de entrada (pares clave-valor) y genera otro conjunto de pares clave-valor de salida. La implementación de software actual especifica una función de mapeo para asignar un conjunto de pares clave-valor a un nuevo conjunto de pares clave-valor y especifica una función de Reducción concurrente para garantizar que cada par clave-valor mapeado comparta el mismo conjunto de claves. Los programadores solo necesitan diseñar funciones Map y Reduce basadas en la lógica empresarial, y el sistema de programación MapReduce implementa los mecanismos específicos distribuidos y de alta concurrencia.

Creo que todo el mundo está familiarizado con los mecanismos relacionados con MapReduce, por lo que no entraré en detalles aquí.

MapReduce se ha utilizado ampliamente en Google, incluida la construcción de índices inversos, clasificación distribuida, análisis de registros de acceso web, aprendizaje automático, traducción automática basada en estadísticas, agrupación de documentos, etc.

Hadoop, la implementación de código abierto de MapReduce, obtiene Yahoo! Apoyado y aplicado por una gran cantidad de empresas como Facebook e IBM.

2) Deruades

Deruades es un sistema de programación de procesamiento paralelo de datos diseñado e implementado por Microsoft, que permite a los programadores utilizar recursos informáticos en clústeres o centros de datos. Conceptualmente, una aplicación se representa como un gráfico acíclico dirigido (DAG). Los vértices representan cálculos, los desarrolladores de aplicaciones escriben programas en serie para los vértices y los bordes entre los vértices representan canales de datos para la transmisión de datos. Se pueden utilizar mecanismos de transmisión de datos como archivos, canalizaciones TCP y memoria FIFO. Los Deliades son similares a las tuberías en Unix. Si la canalización en Unix se considera unidimensional, es decir, el flujo de datos es unidireccional, cada paso de cálculo tiene una única entrada y una única salida, y todo el flujo de datos es una estructura lineal, entonces Deliades puede debe considerarse como En una tubería distribuida bidimensional, un vértice informático puede tener múltiples flujos de datos de entrada. Después de procesar los datos, se pueden generar múltiples flujos de datos de salida. Un trabajo Deliades es un DAG.

3) Pregel

Pregel es un modelo de programación general propuesto por Google para la computación gráfica a gran escala. Muchas aplicaciones prácticas implican algoritmos gráficos a gran escala, como enlaces web, relaciones sociales, mapas de ubicación geográfica, relaciones de citas en artículos de investigación científica, etc. Algunos gráficos pueden alcanzar miles de millones de vértices y billones de aristas. El modelo de programación de Pregel está diseñado para el cálculo eficiente de gráficos de gran escala.