Академический Документы
Профессиональный Документы
Культура Документы
Principal
Disco Duro
MEMORY
HIERARCHY
2GB
150.0 ns
1TB
10 000 000 ns
Octubre 2,2014
1. INTRODUCCION
Hasta ahora, hemos trabajado
con modelos de computacin como la
palabra RAM o modelo de sonda celular.
Esos modelos cuentan, para la
comunicacin con memoria, una palabra
a la vez: si necesitamos leer 10 palabras
esto cuesta 10 unidades.
En computadoras modernas, esto
es un caso imposible
Nivel
de Tamao Tiempo
Memoria
respuesta
Registros del 100 B
CPU
Cach L1
64KB
Cach L2
1MB
0.5 ns
1.0 ns
10.0ns
2. Modelo de Memoria
Externa
El modelo de memoria externa se
introdujo por Aggarwal y Vitter en
1988 [1] ; tambin se le llama el "
I/O Model" o el "Disc Acces Model"
(DAM). El modelo de memoria
externa simplifica la jerarqua de
memoria a slo dos niveles. El CPU
est conectada a una memoria de
cach rpida de tamao M; esta
cach a su vez est conectado a un
disco mucho ms lento de tamao
efectivamente infinita. Tanto la
memoria cach y el disco se dividen
en bloques de tamao B, por lo que
hay
M/B
bloques
en
el
cach. Transferir un bloque de cach
al disco (O viceversa) cuesta 1
unidad. Operaciones de memoria en
bloques residen en la memoria cach
libre. Por lo tanto, la meta natural es
la de minimizar el nmero de
transferencias entre cach y disco. Es
evidente que cualquier algoritmo
referido al modelo de la palabra
RAM con tiempo de ejecucin T (N)
no requiere ms que T (N)
transferencias de la memoria y en el
modelo de memoria externa (como
mximo una transferencia de
memoria por
2.1
Escaneo
2.2 Bsqueda
La bsqueda se logra con un
rbol B-ario utilizando un factor de
ramificacin que es (B). En la
prctica, se quiere que sea
exactamente B + 1, de modo que un
solo nodo encaja en un bloque de
memoria y siempre tendremos un
factor de ramificacin 2. Insertar,
eliminar y bsquedas de sucesores/
predecesoras
estn
entonces
manipulados con O (
)
transferencias de memoria. Esto
requerir O (log n)
veces en
comparacin al modelo1; por lo que
hay una mejora por un factor de O
(log B).
La cota de O (
) es de
hecho
ptima
para
bsquedas; podemos ver esto desde
una informacin del argumento
terico. Queremos averiguar dnde
nuestros elementos encajan entre
todos los N elementos. Hay N +1
posiciones en las que nuestros
elementos puede caber y necesitamos
(log N + 1) bits de informacin
para especificar una de esas
posiciones. Cada lectura de la cach
(un bloque) nos dice donde el
elementos encaja entre B elementos,
rendimiento
O (log (B + 1)) bits de
informacin. As que necesitamos al
menos
(
)
o
(
)
transferencias de la memoria para
revelar todo
(log (N + 1)) bits.
Sin embargo, para insertar /
borrar, esta cota no es ptima.
2.3 Ordenamiento
En el modelo de la palabra
RAM, un rbol B-ario puede ser
ordenado en tiempo ptimo: basta
con insertar todos los elementos y
luego hacer un recorrido en
orden. Sin embargo, la misma
tcnica se obtiene O (N
)
(amortizado) de transferencia de
memoria externa, lo cual no es
ptimo.
2.4 Permutacin
El problema de permutacin
es: dado N elementos en un orden y
un nuevo ordenamiento, reorganizar
los elementos que aparecen en el
nuevo orden. Ingenuamente, esto
toma O (N) operaciones: slo
intercambiar cada elemento en su
nueva posicin. Puede ser ms rpido
para asignar a cada elemento una
clave igual a su orden de
permutacin y luego aplicar el
algoritmo de ordenamiento ptimo
antes mencionad. Esto nos da una
cota de
O (min {N,
) (amortizado).
3. Cache
Model
Oblivious
3.1 Escaneo
La cota es idntica a la memoria
externa: O (
) transferencias de
3.3 Ordenamiento
Como en el modelo de
memoria externa-, ordenando N
elementos pueden ser realizados
usando cache-oblivious usando O
(
transferencias
de
la
4. rbol
B-ario
Cahe-Oblivious
de
3.4 Permutando
El min {} ya no es posible ya
que eso depende de saber M y B.
Ambos componentes lmites de la
memoria externa son todava validas,
slo que del cual no daremos el
mnimo.
3.1Busqueda de arboles
estticos
En primer lugar, vamos a
construir un rbol de bsqueda
binaria completo sobre todos los N
elementos. Para
lograr
la
complejidad O (
)
En transferencias de memoria, el
rbol estar representada en el disco
en el diseo van Emde Boas .La
disposicin VEB se define de forma
recursiva. El rbol se dividir por la
mitad por la altura; el subrbol
superior tiene altura
)/2 y sostiene O(
elementos. El tope del subrbol
En la (bsqueda) trayectoria de la
raz hasta la hoja , vamos a tener
acceso a no ms de log
subrboles . Cada subrbol a
este nivel requiere almenos entonces
como mximo 2 transferencias de
memoria para acceder.
Por lo tanto toda la bsqueda
requiereO (
) transferencias
de la memoria.
4.2.1 Mantenimiento
Orden de Fila
por
) transferencias.
4.2.2 Volver
rboles:
Buscar
borrar
toma
)lecturas
de
bloques.
Prueba:
Nosotros
notamos
inmediatamente que encontrando el
elemento para actualizar toma
) lecturas de bloque y
actualizar el OFM O(
).
Actualizar
los
tringulos
VEB.
componentes de los
tcnica de indireccin.
usando la
de
arriba,
lecturas
hacia
(respectivamente)
como
sea
necesario por destruir y/o formar
nuevos
grupos.
Necesitaremos
(logN) actualizaciones para causar
una unin o separacin. Por lo tanto
el costo de unin y separacin puede
ser cargado al actualizar, as, el costo
de su amortizado es O(1). El mnimo
elemento
solo
necesita
ser
actualizado cuando ocurre la unin o
separacin.
Entonces,
La
actualizacin costosa a la estructura
VEB solo ocurre cada actualizacin
O(logN)
al
costo
de
O(
) = O(
) =
O
. Por lo tanto todas las
operaciones de Bsqueda, Insercin
y
Eliminacin
cuestan
O
.