En informática , los algoritmos de memoria externa o algoritmos fuera de memoria principal son algoritmos diseñados para procesar datos demasiado grandes para caber en la memoria principal de una computadora a la vez. Dichos algoritmos deben optimizarse para obtener y acceder de manera eficiente a los datos almacenados en memoria de gran capacidad lenta ( memoria auxiliar ), como discos duros o unidades de cinta , o cuando la memoria está en una red informática . [ 1 ] [ 2 ] Los algoritmos de memoria externa se analizan en el modelo de memoria externa .
Modelo

Los algoritmos de memoria externa se analizan en un modelo de computación idealizado llamado modelo de memoria externa (o modelo de E/S , o modelo de acceso a disco ). El modelo de memoria externa es una máquina abstracta similar al modelo de máquina RAM , pero con una caché además de la memoria principal . El modelo captura el hecho de que las operaciones de lectura y escritura son mucho más rápidas en una caché que en la memoria principal , y que leer bloques largos contiguos es más rápido que leer aleatoriamente usando un cabezal de lectura y escritura de disco . El tiempo de ejecución de un algoritmo en el modelo de memoria externa se define por el número de lecturas y escrituras en memoria requeridas. [ 3 ] El modelo fue introducido por Alok Aggarwal y Jeffrey Vitter en 1988. [ 4 ] El modelo de memoria externa está relacionado con el modelo ajeno a la caché , pero los algoritmos en el modelo de memoria externa pueden conocer tanto el tamaño del bloque como el tamaño de la caché . Por esta razón, el modelo a veces se denomina modelo consciente de la caché . [ 5 ]
El modelo consta de un procesador con una memoria interna o caché de tamaño M , conectada a una memoria externa ilimitada . Tanto la memoria interna como la externa están divididas en bloques de tamaño B. Una operación de entrada/salida o transferencia de memoria consiste en mover un bloque de B elementos contiguos de la memoria externa a la interna, y el tiempo de ejecución de un algoritmo está determinado por el número de estas operaciones de entrada/salida. [ 4 ]
Algoritmos
Los algoritmos del modelo de memoria externa aprovechan el hecho de que al recuperar un objeto de la memoria externa se recupera un bloque completo de tamaño B. Esta propiedad a veces se denomina localidad.
La búsqueda de un elemento entre N objetos es posible en el modelo de memoria externa utilizando un árbol B con factor de ramificación B. Utilizando un árbol B, se puede lograr la búsqueda, inserción y eliminación entiempo (en notación Big O ). Desde el punto de vista de la teoría de la información , este es el tiempo de ejecución mínimo posible para estas operaciones, por lo que usar un árbol B es asintóticamente óptimo . [ 4 ]
La ordenación externa es la ordenación en un entorno de memoria externa. La ordenación externa se puede realizar mediante ordenación por distribución, que es similar a quicksort , o mediante unaordenación por fusión de vías . Ambas variantes logran el tiempo de ejecución asintóticamente óptimo depara ordenar N objetos. Este límite también se aplica a la transformada rápida de Fourier en el modelo de memoria externa. [ 2 ]
El problema de permutación consiste en reorganizar N elementos en una permutación específica . Esto se puede hacer mediante ordenación, que requiere el tiempo de ejecución de ordenación mencionado anteriormente, o insertando cada elemento en orden e ignorando el beneficio de la localidad. Por lo tanto, la permutación se puede realizar entiempo.
Aplicaciones
El modelo de memoria externa captura la jerarquía de memoria , que no se modela en otros modelos comunes utilizados para analizar estructuras de datos , como la máquina de acceso aleatorio , y resulta útil para demostrar límites inferiores para estructuras de datos. El modelo también es útil para analizar algoritmos que trabajan con conjuntos de datos demasiado grandes para caber en la memoria interna. [ 4 ]
Un ejemplo típico son los sistemas de información geográfica , especialmente los modelos digitales de elevación , donde el conjunto completo de datos supera fácilmente varios gigabytes o incluso terabytes de datos.
Esta metodología se extiende más allá de las CPU de propósito general e incluye también la computación GPU , así como el procesamiento clásico de señales digitales . En la computación de propósito general en unidades de procesamiento gráfico (GPGPU), se utilizan tarjetas gráficas (GPU) potentes con poca memoria (en comparación con la memoria del sistema más conocida, que a menudo se denomina simplemente RAM ) con una transferencia de memoria entre la CPU y la GPU relativamente lenta (en comparación con el ancho de banda de computación).
Historia
Un uso temprano del término "fuera de la memoria principal" como adjetivo se encuentra en 1962 en referencia a dispositivos que son distintos de la memoria principal de un IBM 360. [ 6 ] Un uso temprano del término "fuera de la memoria principal" con respecto a algoritmos aparece en 1971. [ 7 ]
Véase también
Referencias
- ↑ Vitter, JS (2001). "Algoritmos y estructuras de datos de memoria externa: cómo manejar datos masivos". ACM Computing Surveys . 33 (2): 209– 271. CiteSeerX 10.1.1.42.7064 . doi : 10.1145/384192.384193 . S2CID 2155038 .
- 1 2 Vitter, JS (2008). Algoritmos y estructuras de datos para memoria externa (PDF) . Serie sobre fundamentos y tendencias en informática teórica. Vol. 2. Hanover, MA: Now Publishers. págs. 305–474 . CiteSeerX 10.1.1.140.3731 . doi : 10.1561/0400000014 . ISBN 978-1-60198-106-6.
{{cite book}}:|journal=ignorado ( ayuda ) - ^ Zhang, Donghui; Tsotras, Vassilis J.; Levialdi, Stefano; Grinstein, Georges; Baya, Damon Andrew; Gouet-Brunet, Valerie; Kosch, Harald; Döller, Mario; Döller, Mario; Kosch, Harald; Maier, Pablo; Bhattacharya, Arnab; Ljosa, Vebjorn; Nack, Frank; Bartolini, Ilaria; Gouet-Brunet, Valerie; Mei, Tao; Rui, Yong; Crucianu, Michel; Shih, Frank Y.; Fan, Wenfei; Ullman-Cullere, Mollie; Clark, Eugenio; Aronson, Samuel; Mellin, Jonás; Berndtsson, Mikael; Grahne, Gösta; Bertossi, Leopoldo; Dong, Guozhu; et al. (2009). "Modelo de E/S de Computación". Enciclopedia de sistemas de bases de datos . Springer Science+Business Media . págs. 1333–1334 . doi : 10.1007/978-0-387-39940-9_752 . ISBN 978-0-387-35544-3.
- 1 2 3 4 Aggarwal, Alok; Vitter, Jeffrey (1988). "La complejidad de entrada/salida de la clasificación y problemas relacionados" . Communications of the ACM . 31 (9): 1116– 1127. doi : 10.1145/48529.48535 . S2CID 6264984 .
- ↑ Demaine, Erik (2002). Algoritmos y estructuras de datos que no dependen de la caché (PDF) . Apuntes de clase de la Escuela de Verano de la EEF sobre conjuntos de datos masivos. Aarhus: BRICS.
- ↑ NASASP . NASA. 1962. pág. 276.
- ↑ Las computadoras en crisis . ACM. 1971. pág. 296.
Enlaces externos
- SVD y QR fuera del núcleo
- Gráficos fuera de núcleo
- Diseño de Scalapack
- Algoritmos
- Modelos de computación
- Caché (informática)
- Análisis de algoritmos
- Algoritmos de memoria externa