El paradigma informático de “máquina única” no ha perdido nada de su relevancia. Es por eso que las plataformas distribuidas como Spark y Storm se esfuerzan por ocultar la complejidad de distribución detrás de los dialectos de una sola máquina completa de Turing.
La computación en una sola máquina es lo que elige por defecto si sus necesidades computacionales pueden ser facilitadas por una sola máquina; es decir, no hay riesgo de que necesite escalar su cálculo a más de una máquina en el futuro. La mayoría de las empresas utilizan muchos servicios de máquinas individuales que se encuentran detrás de los equilibradores de carga. El modelo computacional de marcos distribuidos generalmente está destinado a cubrir tareas de manipulación de datos en particular.
La informática distribuida es complicada y costosa. Manipular un DataFrame de pandas en la memoria usando la API de Python es mucho más rápido que hacer las mismas manipulaciones en un RDD usando un clúster Spark. La optimización de un trabajo de Spark requiere que comprenda cómo el modelo computacional de Spark comprende las operaciones que le solicita y aplique el almacenamiento en caché para mejorar los cuellos de botella
- ¿Existe algún uso práctico de la teoría de la información en los algoritmos de aprendizaje automático aplicados en la industria financiera?
- ¿Cómo debo combinar la retroalimentación implícita y explícita en el filtrado colaborativo?
- ¿Por qué un niño de 6 años puede realizar tareas de reconocimiento de objetos mejor que una red neuronal distribuida a gran escala con decenas de miles de núcleos de CPU, pero incluso un cerebro adulto no puede competir con un procesador anticuado cuando se trata de cálculos de procedimientos? ¿Qué falta en nuestro procesador?
- ¿Vale la pena dejar mi trabajo de desarrollador de software de USD $ 150K para estudiar el aprendizaje automático y el aprendizaje profundo?
- ¿Debería centrarme en conseguir un trabajo o aprender ciencia de datos?
(la imagen no es mía, la tomé de esta pregunta de StackOverflow ¿ Qué significa “Stage Skipped” en la interfaz de usuario web de Apache Spark? por el usuario Aravind R. Yarram )
Lambda [1] se considera una de las arquitecturas más comunes para las infraestructuras basadas en datos. Hoy en día, Spark, Hadoop y otros frameworks distribuidos son componentes centrales en muchas empresas. Sin embargo, tener dos sistemas distribuidos diferentes (como sugiere Lambda) con la misma funcionalidad para cubrir las necesidades de latencia alta y baja es complicado y difícil de mantener [2]. Muchas compañías se están moviendo hacia plataformas de transmisión pura. En este escenario, las bibliotecas como KafkaStream [3] pueden aprovechar el cómputo de una sola máquina para utilizar todas las ventajas de la división de datos sin la necesidad de un equilibrador de carga.
Notas al pie
[1] Cómo vencer el teorema CAP – pensamientos del planeta rojo – pensamientos del planeta rojo
[2] Cuestionando la arquitectura Lambda
[3] Presentación de Kafka Streams: procesamiento de flujo simplificado – Confluente