Voto por un tipo de combinación externa que utiliza un tipo rápido local en memoria.
Este enfoque supone que el ordenamiento no necesita hacerse “en el lugar”. También supone que el almacén externo (como un disco duro) hace un acceso secuencial más rápido que el acceso aleatorio (por ejemplo, leer pistas enteras en orden de pista).
1. Divida los 4 TB en 1000 conjuntos de datos de 4 GB.
2. Cargue, clasifique rápidamente y escriba cada conjunto de datos de 4 GB.
3. Combine los 1000 conjuntos de datos en una sola pasada, escribiendo en una nueva tienda a medida que avanza.
- ¿Cuáles son las amplias variedades en programación dinámica que se preguntan con frecuencia en los concursos de codificación?
- ¿Qué tipos de problemas se pueden resolver usando algoritmos?
- ¿Cuál es el algoritmo correcto para realizar la diferenciación usando un programa de computadora para cualquier función ingresada por el usuario?
- ¿Cuáles son los mejores algoritmos de Real Space Renormalization Group?
- ¿Qué árbol captura más CO2, un árbol completamente maduro o un árbol joven de rápido crecimiento?
El paso 2 implicará una lectura secuencial completa y una escritura secuencial completa del conjunto completo de datos de 4 TB. Los pasos rápidos serán “instantáneos” en relación con el tiempo de lectura-escritura de la tienda externa.
El paso 3 incluirá una lectura semisecuencial completa y una escritura secuencial completa de los 4 TB. La lectura es semisecuencial ya que los bloques completos se pueden leer y procesar a la vez, pero las 1000 listas deben leerse en paralelo, lo que está cerca del acceso aleatorio. Para ser inteligente al respecto, se pueden leer 1000 bloques secuenciales separados de 4 MB para aumentar la cantidad de lectura secuencial. O, de manera más inteligente, mantenga 1000 memorias intermedias de lectura de 4 MB separadas en la memoria y llénelas estratégicamente a medida que se agoten utilizando un algoritmo de acceso al disco del elevador.
Este algoritmo funcionará> 2 veces más rápido si se usan dos discos duros en lugar de uno. La razón es que con dos discos, la lectura y la escritura pueden ocurrir en paralelo mientras se reduce sustancialmente el “golpeteo” del recorrido de la cabeza de pista a pista.