¿Cómo funcionan los algoritmos de clasificación en un sistema distribuido grande?

Estaba leyendo un poco sobre esto en línea y parece que depende mucho de las restricciones de su sistema y de la forma en que se formula el problema.

Por ejemplo, si tiene N números, ubicados en N máquinas, con cada máquina inicialmente con 1 número, y desea que la máquina k contenga el k número más pequeño para todas las k en [1..N]:

  1. Pregunte si una máquina puede, en cualquier momento, contener más de 1 número. (también conocido como preguntar sobre las restricciones de memoria de las máquinas) Si resulta que una máquina puede contener todos los números N, puede enviar todos los números a esa máquina, realizar una clasificación local y luego enviar a cada máquina su número correspondiente.

Entonces, sin embargo, puedes hacer otra pregunta. ¿Cuánto tiempo lleva transferir un número de una máquina a otra? Si este costo es alto, puede ignorar la solución anterior, incluso si hay máquinas en su sistema sin restricciones de memoria estrictas.

2. Si ninguna máquina puede contener más de 1 número a la vez, una solución directa es iterar a través de todos los pares (i, j) de máquinas y preguntar si el valor en la máquina i es mayor que el valor de la máquina j. Cuando la respuesta es sí, intercambie los dos valores. Continúe iterando mientras todavía haya al menos un par (i, j) que conduzca a un intercambio.
Este método de tipo burbuja puede extenderse al caso en que una máquina puede contener más de 1 número, pero no todos N, al mismo tiempo. Y, por supuesto, existen métodos más eficientes de clasificación rápida que existen.

Estas dos ‘soluciones’ más que nada ilustran que es difícil hablar de una solución general en sistemas distribuidos, ya que su solución terminará limitada por muchos factores: restricciones de memoria en las máquinas, latencia de red, ancho de banda, el formato de datos..

Aquí hay dos enlaces si desea leer más:
Página en disco.ethz.ch
Página en slu.edu

More Interesting

Cómo diseñar algoritmos de aprendizaje automático desde cero

¿Qué son las estructuras autorreferenciales?

Encuentre la suma máxima del subconjunto de longitud k de un conjunto dado, de modo que la suma sea estrictamente menor que M

¿Qué algoritmos son buenos candidatos para el reconocimiento de sonido? Estoy principalmente interesado en reconocer sonidos en un entorno doméstico, por ejemplo, un temporizador de microondas que suena, un teléfono que suena, un timbre, etc.

¿Cuál es el enfoque más eficiente para resolver problemas de factorización media en SPOJ?

¿Cuáles son algunos buenos algoritmos para agrupar palabras que suenan similares?

¿De qué sirve estudiar algoritmos de clasificación y técnicas de búsqueda? Quiero decir, ¿dónde lo usamos en la programación?

Cómo guardar un árbol binario en una matriz de recorrido en orden

¿Los robots alguna vez aprenderán a hacer trabajos de ventas?

¿Cuáles son los mejores recursos para aprender R? Tratando de construir mi propio algoritmo de predicción basado en datos anteriores que tengo en archivos csv y que solía ser un desarrollador de Ruby hace un par de años

¿Por qué la complejidad espacial de quicksort es "log n"?

¿Por qué Python es realmente más lento en algunos cálculos que Java? Las profundidades recursivas también son limitadas.

Cómo medir la precisión de un algoritmo de planificación de ruta

¿Es difícil seguir 100 días de algoritmos?

¿Necesito conocer algoritmos de aprendizaje automático para asegurar un trabajo como analista de datos?