
En informática, un modelo de memoria externa paralela (PEM) es una máquina abstracta de memoria externa con capacidad de caché . [ 1 ] Es la analogía en computación paralela del modelo de memoria externa (EM) de un solo procesador. De manera similar, es la analogía con capacidad de caché de la máquina de acceso aleatorio paralela (PRAM). El modelo PEM consta de varios procesadores, junto con sus respectivas cachés privadas y una memoria principal compartida.
Modelo
Definición
El modelo PEM [ 1 ] es una combinación del modelo EM y el modelo PRAM. El modelo PEM es un modelo de cálculo que consta deprocesadores y una jerarquía de memoria de dos niveles . Esta jerarquía de memoria consta de una gran memoria externa (memoria principal) de tamañoypequeñas memorias internas (cachés) . Los procesadores comparten la memoria principal. Cada caché es exclusiva de un solo procesador. Un procesador no puede acceder a la caché de otro. Las cachés tienen un tamañoque se divide en bloques de tamañoLos procesadores solo pueden realizar operaciones en los datos que se encuentran en su caché. Los datos se pueden transferir entre la memoria principal y la caché en bloques de tamaño.
complejidad de E/S
La medida de complejidad del modelo PEM es la complejidad de E/S, [ 1 ] que determina el número de transferencias de bloques paralelos entre la memoria principal y la caché. Durante una transferencia de bloque paralela, cada procesador puede transferir un bloque. Por lo tanto, siLos procesadores cargan en paralelo un bloque de datos de tamañodesde la memoria principal a sus cachés, se considera como una complejidad de E/S denoUn programa en el modelo PEM debe minimizar la transferencia de datos entre la memoria principal y las cachés, y operar en la medida de lo posible con los datos almacenados en las cachés.
Conflictos de lectura/escritura
En el modelo PEM, no existe una red de comunicación directa entre los procesadores P. Los procesadores deben comunicarse indirectamente a través de la memoria principal. Si varios procesadores intentan acceder al mismo bloque en la memoria principal simultáneamente, se producen conflictos de lectura/escritura [ 1 ] . Al igual que en el modelo PRAM, se consideran tres variaciones diferentes de este problema:
- Lectura y escritura concurrentes (CRCW): El mismo bloque en la memoria principal puede ser leído y escrito por varios procesadores simultáneamente.
- Lectura y escritura exclusivas concurrentes (CREW): Varios procesadores pueden leer simultáneamente el mismo bloque de memoria principal. Solo un procesador puede escribir en un bloque a la vez.
- Lectura y escritura exclusivas (EREW): El mismo bloque en la memoria principal no puede ser leído ni escrito por varios procesadores simultáneamente. Solo un procesador puede acceder a un bloque a la vez.
Los siguientes dos algoritmos [ 1 ] resuelven el problema CREW y EREW siLos procesadores escriben en el mismo bloque simultáneamente. Un primer enfoque es serializar las operaciones de escritura. Solo un procesador después del otro escribe en el bloque. Esto da como resultado un total detransferencias de bloques en paralelo. Se necesita un segundo enfoquetransferencias de bloques en paralelo y un bloque adicional para cada procesador. La idea principal es programar las operaciones de escritura en forma de árbol binario y combinar gradualmente los datos en un solo bloque. En la primera rondaLos procesadores combinan sus bloques enbloques. EntoncesLos procesadores combinan losbloques enEste procedimiento se continúa hasta que todos los datos se combinen en un solo bloque.
Comparación con otros modelos
Ejemplos
Particionamiento multidireccional
DejarSea A un vector de d-1 pivotes ordenados en orden creciente. Sea A un conjunto no ordenado de N elementos. Una partición de d vías [ 1 ] de A es un conjunto, dóndeypara.se llama el i-ésimo cubo. El número de elementos enes mayor quey más pequeño que. En el siguiente algoritmo [ 1 ] la entrada se divide en segmentos contiguos de tamaño N/Pen la memoria principal. El procesador i trabaja principalmente en el segmentoEl algoritmo de partición multiway ( PEM_DIST_SORT[ 1 ] ) utiliza un algoritmo de suma de prefijos PEM [ 1 ] para calcular la suma de prefijos con el óptimoComplejidad de E/S. Este algoritmo simula un algoritmo óptimo de suma de prefijos PRAM.
// Calcula en paralelo una partición de d vías en los segmentos de datos.Para cada procesador i en paralelo, lea el vector de pivotes M en la caché. Dividiren d cubos y deje que vectorsea el número de artículos en cada cubo. fin para Ejecutar la suma de prefijos PEM en el conjunto de vectoressimultáneamente. // Utilizar el vector de suma de prefijos para calcular la partición final. para cada procesador i en paralelo hacer Escribir elementosen ubicaciones de memoria desplazadas adecuadamente pory. fin para Utilizando las sumas de prefijo almacenadas enEl último procesador, P, calcula el vector B de tamaños de cubetas y lo devuelve.
Si el vector deLos pivotes M y el conjunto de entrada A se encuentran en memoria contigua, entonces el problema de partición de d vías se puede resolver en el modelo PEM conComplejidad de E/S. El contenido de los cubos finales debe ubicarse en memoria contigua.
Selección
El problema de selección consiste en encontrar el k-ésimo elemento más pequeño en una lista no ordenada A de tamaño N. El siguiente código [ 1 ] utiliza PRAMSORTun algoritmo de ordenación óptima PRAM que se ejecuta eny SELECT, que es un algoritmo de selección de procesador único óptimo para la caché.
sientoncesdevolverfin si //Calcular la mediana de cadapara cada procesador i en paralelo hacerfin para // Ordenar medianas // Partición en torno a la mediana de las medianas siluego regresarde lo contrario, regresafin si
Bajo el supuesto de que la entrada se almacena en memoria contigua, PEMSELECTtiene una complejidad de E/S de:
Clasificación por distribución
El algoritmo de ordenación por distribución divide una lista de entrada A de tamaño N en d grupos disjuntos de tamaño similar. Cada grupo se ordena recursivamente y los resultados se combinan en una lista completamente ordenada.
SiLa tarea se delega a un algoritmo de ordenación de un solo procesador que optimiza el uso de la caché.
En caso contrario, se utiliza el siguiente algoritmo [ 1 ] :
// Muestraelementos de A para cada procesador i en paralelo hacer sientonces Cargaen páginas de tamaño M y ordenar las páginas individualmente en caso contrario Cargar y ordenarcomo final de una sola página si elige cadaEl elemento 'enésimo de cada página de memoria ordenada en un vector contiguode muestras finalizan paraen paralelo hacer Combinar vectoresen un único vector contiguo Hacercopias de:fin hacer // Encontrarpivotesparaaen paralelo hacerfin para Empaqueta los pivotes en una matriz contigua // La partición A se divide en cubos alrededor de los pivotes. // Ordenar recursivamente los cubos paraaen paralelo, realizar llamadas recursivasen el cubo j de tamaño usandoprocesadores responsables de los elementos en el cubo j fin para
La complejidad de E/S PEMDISTSORTes:
dónde
Si se elige el número de procesadores queyLa complejidad de E/S es entonces:
Otros algoritmos PEM
Dóndees el tiempo que se tarda en clasificar N elementos con P procesadores en el modelo PEM.
Véase también
Referencias
- 1 2 3 4 5 6 7 8 9 10 11 12 Arge, Lars; Goodrich, Michael T.; Nelson, Michael; Sitchinava, Nodari (2008). «Algoritmos paralelos fundamentales para multiprocesadores de chips con caché privada». Actas del vigésimo simposio anual sobre paralelismo en algoritmos y arquitecturas . Nueva York, Nueva York, EE. UU.: ACM Press. págs. 197–206 . doi : 10.1145/1378533.1378573 . ISBN 9781595939739. S2CID 11067041 .
- 1 2 3 4 Arge, Lars; Goodrich, Michael T.; Sitchinava, Nodari (2010). "Algoritmos gráficos de memoria externa paralela". Simposio Internacional IEEE de Procesamiento Paralelo y Distribuido (IPDPS) de 2010. IEEE. págs. 1–11 . doi : 10.1109/ipdps.2010.5470440 . ISBN 9781424464425. S2CID 587572 .
- Algoritmos
- Modelos de computación
- Análisis de algoritmos paralelos
- Algoritmos de memoria externa
- Caché (informática)