Professional Documents
Culture Documents
ABSTRACTO en su cach privada, lo que invalida todas las dems copias, y modi fi it localmente
mediante una operacin atmica, como se ha podido recuperar y suma, como se
Nosotros presentamos Golpe, una tcnica para reducir el costo de cambios a los datos
muestra en la Fig. 1a. Cada actualizacin incurre significativo tra FFI c y publicacin
compartidos en sistemas de cach coherente. Golpe
por entregas: tra FFI c a buscar a la lnea e invalidar otras copias, haciendo que la
explota el conocimiento de que muchas operaciones de actualizacin, tales como
lnea de ping pong entre la actualizacin de ncleos; y la serializacin porque slo un
adiciones y operaciones lgicas a nivel de bits, son conmutativa: que producen el
ncleo puede realizar una actualizacin a la vez.
mismo resultado final, independientemente del orden en que se llevan a cabo en. Golpe
Permite mltiples cachs privados para sostener simultneamente slo actualizacin
El trabajo previo ha propuesto tcnicas de hardware y software para reducir tra
fi c y la serializacin de cambios en sistemas paralelos. En cuanto al hardware, el
el permiso de la misma lnea de cach. Cachs con permiso updateonly puede
trabajo anterior se ha centrado principalmente en operaciones de memoria remoto
localmente bu ff er y aglutinarse cambios a la lnea, pero no puede satisfacer las
( OGR) [ 29 , 30 ,
peticiones de lectura. Tras una peticin de lectura, Golpe reduce las
57 , 68 ]. RMO esquemas envan actualizaciones a un solo controlador de memoria o
actualizaciones parciales de bu ff Ered en almacenes privados para producir el
banco de memoria cach compartida en lugar de tener la lnea de ping-pong entre
valor final. Golpe se integra perfectamente en protocolos de coherencia
varios almacenes privados, como se muestra en la Fig. 1b. Aunque OGR reducir el
existentes, requiere un hardware de bajo costo, y no un ff reflejan la consistencia
costo de cambios, que siguen causando significantes mundial tra fi c y la
de datos de memoria.
serializacin, y con frecuencia realizar lecturas ms lenta, tan remoto lee puede ser
necesaria para mantener la coherencia [ 39 , 57 ].
Aplicamos Golpe para acelerar las actualizaciones de una sola palabra a los datos
compartidos. En un sistema 128 de ncleo, 8-socket simulado,
En este trabajo nos aprovechamos dos ideas clave para reducir el costo de cambios
Golpe acelera las implementaciones del estado de la tcnica de algoritmos de
an ms. En primer lugar, muchas operaciones de actualizacin no es necesario leer los
actualizacin de pesada hasta en un 2,4 .
datos que se actualizan. En segundo lugar, las operaciones de actualizacin son a menudo conmutativa,
Descriptor de Sujeto y Categorias y se puede realizar en cualquier orden antes de que se leen los datos. En nuestro ejemplo
contrario compartida, mltiples adiciones de ncleos Erent di ff pueden ser bu ff Ered,
B.3.2 [ estructuras de memoria]: Memoria compartida; C.1.4 [ arquitecturas
fusionado, y retrasa hasta que la lnea del contador es la siguiente lectura. actualizaciones
de procesador]: arquitecturas paralelas
conmutativos son comunes en otros contextos ms all de este ejemplo sencillo.
Palabras clave
Nos proponemos golpe ( Segundo. 3), una tcnica general que se extiende
Se permite hacer copias digitales o en papel de la totalidad o parte de este trabajo para uso personal o en el aula se protocolos de coherencia para permitir actualizaciones conmutativa locales y
concede sin siempre que las copias no se hacen ni distribuido para bene fi cio o ventaja comercial y que las copias concurrentes. Golpe desacopla permisos de leer y escribir, e introduce
llevan este aviso y la cita completa en la primera pgina . Derechos de autor para los componentes de este trabajo no
operaciones primitivas conmutativa-actualizacin, adems de lecturas y
sean propiedad de la autora (s) deben ser respetados. Se permite abstraer con el crdito. Para copiar de otro modo, o
volver a publicar, para publicar en servidores o redistribuir en las listas, se requiere el permiso fi co antes y / o una
escrituras. Con Golpe, mltiples cachs pueden adquirir una lnea con
tasa. Solicitar permisos de permissions@acm.org.
1
GOLPE operaciones MESI-atmica
Leyenda A: Lnea 20 con el permiso exclusivo R: 0 Lnea con el permiso de slo actualizacin Aadir la operacin
privatizacin MESI en software
1.0
cach compartida Estado cach compartida cach compartida
A: 20 R: 0 R: 0
Desempeo relativo
0.6
Core / $ 0 Core / $ 1 Core / $ 0 Core / $ 1 Core / $ 0 Core / $ 1
0.0
aadir (A, 2) 0 5K 10K 15K 20K 25K 30K
de carga (A) Nmero de contenedores
Figura 2: Rendimiento de
implementaciones de histograma paralelas
(A) la coherencia Convencional (B) ops MEM remoto (do) Golpe utilizando atmica, la privatizacin de
software, y el golpe. Ms contenedores de
Figura 1: Ejemplo comparando el coste de cambios conmutativos bajo tres esquemas. Dos ncleos de aadir reducir la contencin y aumentan los
valores a una sola ubicacin de memoria, A. (A) con protocolos de coherencia convencionales, recuperaciones gastos generales de privatizacin,
y invalidaciones de A dominan el costo de cambios. (B) Con las operaciones de memoria remota, ncleos de favoreciendo atmica. Golpe no hace su ff
enviar actualizaciones a un lugar fijo, la memoria cach compartida en este caso. (C) Con Golpe, almacena en er estos gastos, por lo que supera a ambas
cach bu ff er y aglutinarse actualizaciones localmente, y lee trae consigo una reduccin de todas las implementaciones de software.
actualizaciones locales para producir el valor real.
antes de conceder el permiso de lectura. Por ejemplo, varios ncleos pueden Identificamos varias aplicaciones paralelas de actualizacin pesado donde
concurrentemente aadir valores al mismo contador. Las actualizaciones se llevan a cabo las tcnicas actuales tienen limitaciones claras (Sec. 4), y discutimos cmo Golpe
en sus almacenes privados, siempre y cuando no dispone de ncleo lee el valor actual del se dirige a ellos.
contador. Cuando un ncleo lee el contador, se aaden todas las actualizaciones para evaluamos Golpe bajo la simulacin, el uso de sistemas de una o varias de
producir el valor nal fi, como se muestra en la Fig. 1c. socket (Sec. 5). A 128 ncleos, Golpe mejora el rendimiento de los puntos de
referencia de actualizacin de pesada en un 4% -2.4 , y reduce tra FFI c hasta
Golpe confiere fi cativos beneficios significantes sobre OGR, especialmente en un 20 .
cuando recibe datos de varios cambios consecutivos antes de su lectura. En resumen, Golpe muestra que la extensin de protocolos de coherencia
Adems, Golpe mantiene la coherencia de cach completa y no un ff reflejan la para aprovechar la semntica de actualizaciones conmutativos puede mejorar
consistencia de datos de memoria. Esto hace Golpe fcil de aplicar a los sistemas sustancialmente el rendimiento sin sacrificar la simplicidad de la coherencia de
y aplicaciones actuales. demostramos Golpe 'S utilidad aplicndolo a mejorar el cach.
rendimiento de las operaciones de actualizacin de una sola palabra, el cual se
llevan a cabo actualmente con caras instrucciones de
2. FONDO
lectura-modificacin-escritura atmicas.
Ahora veremos tcnicas de hardware y software antes de que reducen
Golpe Tambin completa una simetra entre los esquemas de hardware y el costo de cambios a los datos compartidos.
software para reducir el costo de cambios. En trminos generales, las tcnicas de
software utilizan ya sea delegacin o 2.1 Tcnicas de Hardware
privatizacin. esquemas de delegacin envan actualizaciones a un solo hilo [ 11 , 12 ]. las operaciones de memoria remota (OGR) son el esquema relacionado ms
esquemas de privatizacin reducir el costo de cambios conmutativos mediante el estrechamente a Golpe. En lugar de almacenamiento en cach de las lneas que
uso de las variables de subproceso local [ 8 , 18 , 46 ]: Cada hilo actualiza su variable actualizarse, las operaciones de actualizacin se envan a una ubicacin fija. La
local, y lee requerir la reduccin de las variables por-hilo. Del mismo modo que las Universidad de Nueva York Ultracomputer [ 29 ] Propuesto implementar atmica ir a
operaciones de memoria remota son la contrapartida de hardware a la delegacin, Golpe buscar y suma usando sumadores en conmutadores de red, lo que podra confluir
es la contraparte de hardware a la privatizacin. Golpe tiene dos bene fi cios por la mltiples peticiones en su camino hacia la memoria. El Cray T3D [ 34 ], T3E [ 57 ], Y SGI
privatizacin de software. En primer lugar, las transiciones entre slo lectura y slo Origin [ 42 ] OGR implementado en los controladores de memoria, mientras que
actualizacin modos son mucho ms rpidos, por lo Golpe sigue siendo prctica en TilePro64 [ 30 ] y [GPU recientes 63 ] Implementar OGR en cachs compartidos. Antes
muchos escenarios donde la privatizacin de software requiere la sincronizacin de trabajo tambin ha propuesto la adicin de la memoria cach para los
excesiva. En segundo lugar, las copias de subproceso local de privatizacin controladores de memoria para acelerar OGR [ 68 ] Y OGR de datos en paralelo [ 5 ].
aumentan el consumo de memoria y aaden presin a cachs compartidos,
mientras Golpe no.
Golpe tiene dos ventajas clave sobre OGR. En primer lugar, mientras que OGR evitar
lneas de cach de ping-ponging, que todava requieren el envo de cada actualizacin a
En este trabajo, hacemos las siguientes contribuciones: una, fijada ubicacin compartida, causando mundial tra fi c. OGR tambin estn limitadas
Nosotros presentamos Golpe, una tcnica que se extiende protocolos de coherencia por el rendimiento de la nica actualizacin. Por ejemplo, en la Fig. 1b, frecuentes
para apoyar actualizaciones conmutativos concurrentes (Sec. 3). Se demuestra que peticiones remotas-Aadir la unidad ALU de la memoria cach compartida cerca de la
la Golpe preserva la coherencia y la consistencia, e impone pequeos costos de saturacin. Por el contrario, Golpe ERS ff bu y coalesce UP-
fiscalizacin.
2
fechas en las cachs locales, evitando puntos calientes. En segundo lugar, fuertes actualizacin de slo unidad de
compartido cache / dir
do OUP adiciones
modelos de consistencia son difciles de implementar con OGR, ya que es ms difcil reduccin de pista o de slo
de limitar orden de operacin de memoria. Por ejemplo, TSO requiere hacer tiendas a lectura instrucciones de
Cach privada 0 ... Cache
nivel mundial visible en el orden del programa, que es factible con ERS ff tienda bu actualizacin Conmutativas Modo
privada N-1
locales, pero mucho ms complicada cuando las reservas tambin se realizan por de actualizacin del estado de
actualizadores remotas. Como resultado, la mayora de las implementaciones Core 0 Core N-1
slo
proporcionan OGR dbilmente consistentes. a base de Marca de tiempo de
validacin de pedidos [ 39 , 5] permite fuerte coherencia con OGR, pero es implicado. Figura 3: Resumen de las adiciones y cationes modificadores necesarios
Por el contrario, para apoyar golpe.
vatization poco prctico en muchos contextos (por ejemplo, recuento de referencias). esquemas de
Golpe realiza todas las operaciones de memoria a nivel local, por lo que la consistencia
dinmica de privatizacin [ 18 , 46 , sesenta y cinco ] Puede disminuir los gastos generales de
fcil de mantener.
espacio, adems de aadir los gastos generales de tiempo.
Tenga en cuenta que Golpe 's ventajas vienen a costa de un conjunto ms
restringido de las operaciones: Golpe se limita a las actualizaciones Estos gastos generales a menudo hacen privatizacin desempeo inferior
conmutativos, mientras OGR apoyan operaciones no conmutativas como actualizaciones convencionales. Por ejemplo, Jung et al. [ 32 ] Proponer
compareand-swap fetch-y-agregar y. Tambin, Golpe significativamente supera implementaciones histograma paralelas usando ambas operaciones atmicas y la
OGR slo si se reutiliza datos (es decir, actualizado o leer varias veces antes de privatizacin. Estos cdigos de procesar un conjunto de valores de entrada, y
cambiar entre los modos de lecturas y de slo actualizacin). Esto es a menudo producen un histograma con un nmero dado de contenedores. Jung et al. en cuenta
el caso en aplicaciones reales (Sec. 4). que la privatizacin es deseable con algunas bandejas de salida, pero funciona mal
con muchos contenedores, ya que domina la fase de reduccin y perjudica localidad.
Higo. La figura 2 muestra este ff TradeO. Se compara el rendimiento de las
implementaciones de histograma utilizando atmica ir a buscar y suma, la
2.2 Tcnicas de software privatizacin y Golpe, cuando se ejecuta en 64 ncleos (vase Sec. 5 para los detalles
Convencional actualizacin de los programas de memoria compartida compartida de Metodologa). En este experimento, todos los esquemas de proceso un fijada nmero
datos mediante operaciones atmicas para las actualizaciones de una sola palabra, o grande, de elementos de entrada. Cada lnea muestra el rendimiento de una
normal lee y escribe con la sincronizacin (por ejemplo, cerraduras o transacciones) para implementacin dada como el nmero de bandejas de salida ( x -
las actualizaciones de varias palabras. Muchas optimizaciones de software buscan reducir
el costo de cambios. Aunque a menudo se presenta en el contexto de los algoritmos
especficos, observamos que son instancias de dos tcnicas generales: eje) cambia de 32 a 32K. El rendimiento se inform en relacin con Golpe 'S en 32
contenedores (los nmeros ms altos son mejores). Mientras que los costos de la
delegacin y privatizacin. Se discuten estas tcnicas aqu, y presentes privatizacin imponen una TradeO delicada ff entre ambas implementaciones de
casos espec fi cos en la Sec. 4. software, Golpe
esquemas de delegacin dividen el compartir datos entre los hilos y enviar robustamente supera a ambos.
actualizaciones al hilo correspondiente, utilizando colas de memoria
compartida [ 11 ] o mensajes activos [ 55 , 61 ]. La delegacin es comn en las 3. AMPLIACIN AL coherencia de cach apoyo actualiza
arquitecturas que combinan memoria compartida y paso de mensajes [ 55 , 64 ]
conmutativa
Y en las estructuras de datos NUMA-conscientes [ 11 , 12 ]. La delegacin es el
homlogo de software para OGR, y est sujeta a la misma TradeO ff s: se 3.1 Golpe Ejemplo: Ampliacin de MSI
reduce el movimiento de datos y sincronizacin, pero incurre mundial tra fi c y Primero se presentan los principales conceptos y funcionamiento de
la serializacin. Golpe a travs de un hormign, simplifica ejemplo ed. Considere un sistema
con un nico nivel de cachs privadas, mantuvo coherente con el protocolo
esquemas de privatizacin explotan actualizaciones conmutativa. Estos MSI. Este sistema tiene una nica cach de nivel ltima compartida con un
esquemas bu ff er cambios en el almacenamiento de hilo y el privado, y requieren directorio de cach. Implementa una sola operacin conmutativa-actualizacin,
lecturas para reducir estas actualizaciones de rosca y privado para producir el valor adicin. Por ltimo, se restringe este sistema para utilizar bloques de cach
correcto. La privatizacin es ms comnmente utilizado para implementar las singleword. Vamos a generalizar Golpe a otros protocolos, las operaciones y
variables de reduccin e fi cientemente, a menudo con soporte de lenguaje (por las jerarquas de cach en la Sec. 3.2.
ejemplo, reductores en MapReduce [ 22 ], Pragmas OpenMP, y hyperobjects Cilk Plus
[ 28 ]). La privatizacin se utiliza generalmente cuando las actualizaciones son
frecuentes y lee son raros. 3.1.1 Los cambios estructurales
3
Leyenda
Permisos Sharer (Ex: exclusivo, SHR: slo lectura,
cachs privadas A: 20 METRO odified A: 2 T pdate de slo A: 31 S hared (slo lectura) cach compartida A: ShU {1,2}: 20 Shu: slo actualizacin)
24 A: 3 A: 4 A: 4 A: 7
Core / $ 0 Core / $ 1 Core / $ 0 Core / $ 1 Core / $ 0 Core / $ 1 Core / $ 0 Core / $ 1 Core / $ 2
de Red.
aadir (A, 2) A: 2 de Red.
aadir (A, 1) aadir (A, 1) de carga (A)
aadir (A, 2) A:
aadir (A, 2)
Agregar (A, 1)
aadir (A, 1)
Unidad Unidad
aadir (A, 2)
Hora
Agregar (A, 1)
aadir (A, 1)
A: 3 UN: + 6 A: 3 A: 4 A: 4 A: 31
Core / $ 0 Core / $ 1 Core / $ 0 Core / $ 1 Core / $ 0 Core / $ 1 Core / $ 0 Core / $ 1 Core / $ 2
(A) Actualizar a T causado por la peticin (B) Downgrade causada por la peticin (C) La reduccin parcial causada (D) la reduccin completa causada por peticin de lectura
conmutativa-actualizacin conmutativa-actualizacin por desalojo
Figura 5: MUSI el funcionamiento del protocolo: (a) la concesin nica actualizacin de estado (U); (B) rebajar de M a T debido a una solicitud de
actualizacin de otro ncleo; (C) reduccin parcial causada por un desalojo de un cach privado; y (d) reduccin total causada por una peticin de lectura.
Cada diagrama muestra los estados inicial y final en las cachs compartidas y privadas.
Leyenda
Iniciado por el propio ncleo (permisos de ganancia) solicitudes de actualizacin conmutativa-localmente (estado T); o como mximo un
transiciones
iniciada por otros (bajar de permisos) solo cach privada para contener el permiso exclusivo de una lnea y satisfacer todo
Unidos METRO odified T pdate de slo S hared (slo lectura) yo NVALID tipo de peticiones a nivel local (estado M). Al permitir M para satisfacer las
peticiones conmutativa-actualizacin, actualizaciones intercalados y lee a privado los
Peticiones R ead W rito do actualizacin ommutative
datos son tan barato como en MSI.
MSI MUSI diagrama de transicin de estados de MUSI muestra una clara simetra entre S
y U: todas las transiciones provocadas por R / C peticiones en y fuera del partido S
RW W W los causados por las solicitudes de C / R en y fuera de U. Vamos a aprovechar
R
esta simetra en la Sec. 3.4 para simplificar nuestra implementacin.
W S W W S T W
R el estado del directorio: directorios convencionales deben realizar un seguimiento
tanto de los partcipes de cada lnea (utilizando un vector de bits u otras tcnicas [ 13
R W W, CC W, RCC
, 53 , 66 ]), Y, si no hay un nico partcipe, si se tiene en exclusiva o permiso de
R
slo lectura. En
ESTOY ESTOY Golpe, el directorio debe realizar un seguimiento de si los partcipes tienen exclusiva, de slo
lectura, o la actualizacin de slo el permiso. El vector de bits partcipes se puede utilizar
para realizar un seguimiento de ambos mltiples lectores o mltiples actualizadores, por lo
Figura 4: diagramas de transicin de estados de los protocolos de MSI y
MUSI requiere slo un poco ms por etiqueta de directorio.
MUSI. Para mayor claridad, diagramas omiten acciones que no causan una
transicin de estado (por ejemplo, R solicitudes en S).
unidad de reduccin: Aunque ncleos pueden realizar actualizaciones locales, el
sistema de memoria debe ser capaz de realizar reducciones. As, Golpe agrega una
unidad de reduccin a la memoria cach compartida, que consiste en un sumador en
devolver el valor actualizado [ 2 ]. Si bien estas instrucciones fueron probablemente
este caso.
introducidos para reducir el costo de OGR, Golpe
podra utilizar directamente.
Actualizar permiso de slo: Golpe se extiende MSI con un estado adicional, actualizar 3.1.2 Protocolo de operacin
solamente (T), y un tercer tipo de solicitud, actualizacin conmutativa (C), adems Realizar actualizaciones conmutativa: Tanto los estados M y U proporcionan
de convencional lee (R) y escribe (W). Que llamamos el protocolo MUSI resultante. suficientes permisos para cachs privadas para satisfacer las solicitudes de
Higo. 4 muestra el diagrama de transicin de estados de MUSI para caches actualizacin de slo. En M, la memoria cach privada tiene el valor real de los
privadas. MUSI permite mltiples cachs privada para contener permiso de slo datos; en U, el cach tiene una actualizacin parcial. En cualquier caso, el ncleo
lectura a una lnea y satisfacer las solicitudes de lectura a nivel local (S estado); puede realizar la actualizacin mediante la lectura atmicamente los datos de la
mltiples cachs privadas para mantener la actualizacin permiso de slo una cach, modificndolo (sumando el valor indicado por la instruccin
lnea y satisfacen conmutativa-ADD) y almacenando el resultado en la memoria cach. los
4
cach no puede permitir que cualquier operacin que intervienen en la misma
BAO
METRO mi
direccin entre la lectura y la escritura. Este esquema puede reutilizar la lgica de la
base existente para operaciones atmicas. Asumimos este esquema en nuestra do
aplicacin, pero tenga en cuenta que las implementaciones alternativas podran tratar W, CR
R R
do
W, RC
Entrar en el estado T: Cuando un cach tiene permisos Insu fi ciente para BAO
5
Ms profundas jerarquas de cach: Golpe puede funcionar con mltiples der de las operaciones de memoria como estrictamente para actualizaciones
niveles intermedios de cachs y directorios. conmutativa como lo hace para las tiendas, Golpe hace no un ff ect la consistencia de
Golpe Simplemente requiere una unidad de reduccin en cada nivel intermedio que datos. En otras palabras, es su ciente FFI para el sistema de memoria para considerar
tiene varios hijos que pueden emitir solicitudes de actualizacin. Por ejemplo, un cambios conmutativa como equivalentes a las tiendas. Por ejemplo, al tener tienda de
sistema con base per-L1 y L2 privada y una L3 compartida plenamente las carga, carga de la tienda, y la tienda-almacn de vallas se aplican a las actualizaciones
necesidades de las unidades de reduccin slo a los bancos L3. Sin embargo, si conmutativa, as, los sistemas con modelos de memoria relajado no tienen que
cada L2 fue compartida por dos o ms L1Ds, una unidad de reduccin sera introducen nuevas instrucciones de la cerca.
necesario en el L2s as.
6
Leyenda
IM IM
Unidos
XMS SM XMN NM
Estable Transitorio
ES Carrera de Split EN
aplicacin Golpe:: La figura 7 (a) diagrama completo de transicin de estados para la cach L1 en el protocolo de lnea de base twolevel MESI; (B)
correspondiente MEUSI diagrama de transicin de estados. El estado no exclusiva, N, S y U generaliza, y requiere slo un estado transitorio adicional y
cuatro transiciones ms MESI.
tiempo de verificacin
4. APLICACIONES MOTIVAN
<10s <100s <1300 Fuera de la memoria (> 16 GB)
En este trabajo, aplicamos Golpe para acelerar las actualizaciones de una sola
MESI palabra a los datos compartidos. Para guiar nuestro diseo, nos Fi estudio primero
24 24
68 68 en qu circunstancias Golpe es beneficioso sobre las tcnicas de software el estado
10 10
de la tcnica, e ilustran estas circunstancias con algoritmos y aplicaciones fi cas.
ops 12 12
14 14
Comm
MEUSI =
16 16
Como se discuti en la Sec. 2, Golpe es la contraparte de hardware a la
18 18
20 20 privatizacin. esquemas de privatizacin crean varias rplicas de las variables
a ser actualizados. Cada hilo actualiza una de estas rplicas, y los hilos de
2 3 4 5 6 7 8 9 10 2345678 sincronizar para reducir todas las actualizaciones parciales en una sola
ncleos ncleos
ubicacin antes se lee la variable.
(A) protocolos de dos niveles (B) los protocolos de tres niveles
Figura 8: Golpe exhaustivos costos de fiscalizacin para los protocolos de En general, Golpe supera a tcnicas de software anterior si ya sea de
dos y de tres niveles. Los costos crecen mucho ms rpidamente con el las dos condiciones siguientes se tiene:
nmero de ncleos y niveles que el nmero de cambios conmutativa. Lee y cambios a los datos compartidos se intercalan finamente. En este caso, la
privatizacin de software tiene grandes gastos generales debido a la reduccin
frecuentes, mientras Golpe puede mover una lnea de actualizacin modo de slo a
la L1 tiene 15 estados (uno ms transitorios de meses, modo de slo lectura a aproximadamente el mismo costo que una invalidacin
NN), la L2 ha 43 (cinco estados ms transitorios de meses, el cual, de convencional. Por lo tanto, la privatizacin necesita muchas actualizaciones por ncleo y
manera similar a NN, aplicar transiciones entre tipos de operacin), y el L3 el valor de datos para amortizar los gastos generales de reduccin, mientras
tiene 6.
Veri fi cacin de los costos: Utilizamos Murphi [ 24 ] Para verificar MESI y MEUSI. Golpe los rendimientos de los bene fi cios con tan slo dos actualizaciones por poca de slo
Adoptamos simplificaciones comunes para limitar el espacio de estado, actualizacin.
modelando cachs con una sola lnea de 1 bit; normas auto-desalojo modelar una Una gran cantidad de datos compartidos se actualiza. En este caso, la
capacidad limitada. En de tres niveles protocolos, que modelo de sistemas con privatizacin aumenta significativamente la huella de memoria y pone ms
una sola L2 y un nico L3, y simular tra FFI c de otros L2s con las normas de presin sobre cachs compartidos. Ahora discutimos varios patrones
invalidacin y de versiones anteriores emitidos-L3. Incluso entonces, Murphi slo paralelos y aplicaciones que tienen estas propiedades.
puede verificar los sistemas de hasta 4-8 ncleos, una limitacin conocida de este
enfoque [ 69 , 70 ].
de veri fi cacin de los costes MEUSI crecen ms rpidamente con el 4.1 Fases Update- y de slo lectura independientes
nmero de ncleos y niveles que el nmero de operaciones conmutativas. Varios algoritmos paralelos cuentan con fases largas en las que los datos
Higo. 8 informes de las veces de fiscalizacin para dos y protocolos MESI y compartidos se actualiza o bien slo o slo lectura. tcnicas de privatizacin se
MEUSI de apoyo 2-20 tipos conmutativa-actualizacin de tres niveles. aplican de forma natural a estos algoritmos.
Corremos Murphi en un Xeon E5-2670, y limitarlo a 16 GB de memoria. las variables de reduccin: las variables de reduccin son objetos que son
Murphi puede verificar exhaustivamente MESI hasta 7-9 ncleos y MEUSI actualizados por mltiples iteraciones de un bucle utilizando un binario,
hasta 3-7 ncleos en funcin del nmero de niveles y actualizaciones operador conmutativo (un operador de reduccin) [ 49 , 50 ], Y su estado
conmutativa. Esto demuestra que puede ser MEUSI e ff caz Veri fi cado hasta intermedio no se lee. las variables de reduccin son compatibles de forma
un gran nmero de cambios conmutativa. Por otra parte, al igual que los nativa en los lenguajes de programacin paralela y bibliotecas como HPF [ 37 ],
diseadores de protocolo suponen que modelar un par de ncleos Mapa reducido [ 22 ], OpenMP [ 25 ], TBB [ 51 ], Y Cilk Plus [ 28 ]. El trabajo anterior
proporcionan una cobertura razonable, verificando hasta unas pocas en los compiladores paralelizacin ha desarrollado una amplia gama de
operaciones conmutativas debe ser igualmente razonable. tcnicas para detectar y explotar las variables de reduccin [ 31 , 49 , 50 ]. Las
reducciones se implementan comnmente usando rboles de reduccin
paralelas, una forma de
7
privatizacin. Cada hilo ejecuta un subconjunto de iteraciones del bucle de casos, ya que necesitara software para detectar los datos en modo updateonly y
forma independiente, y actualiza una copia local del objeto. Luego, en la fase llevar a cabo una reduccin antes de cada lectura. Por el contrario, Golpe conmuta
de reduccin, los hilos se agregan estas copias para producir una variable de de forma transparente entre lneas de cach de slo lectura y actualizar slo los
salida nica. modos en respuesta a accesos, mejorar el rendimiento, incluso con algunas
variables de reduccin puede ser pequea, por ejemplo, cuando el actualizaciones consecutivas o lee.
clculo de la media o valor mximo de una matriz. En estos casos, la
variable de reduccin es un solo escalar, la fase de reduccin lleva tiempo recorridos grfico: implementaciones de alto rendimiento de los algoritmos de
despreciable, y Golpe no mejorara el rendimiento mucho ms reducciones recorrido grfico como lo ancho primera bsqueda (BFS) codifican el conjunto de
de software. nodos visitados en un mapa de bits que bene fi en cach para reducir el ancho de
las variables de reduccin son estructuras a menudo ms grandes, tales como banda de memoria [ 4 , 15 ]. El primer hilo que visita un nodo establece su grano de
matrices o matrices. Por ejemplo, considere un bucle que procesa un conjunto de arena, y las discusiones que visitan vecinos del nodo de leer su bit de encontrar si el
valores de entrada (por ejemplo, imagen pxeles) y produce un histograma de estos nodo tiene que ser visitado.
valores con un nmero dado de contenedores. En este caso, la variable de reduccin es
todo el conjunto de histogramas, y la fase de reduccin puede dominar el tiempo de implementaciones existentes utilizan atmico o operaciones para actualizar el
ejecucin [ 32 ], Como se muestra en la Fig. 2. Yu y Rauchwerger [ sesenta y cinco ] mapa de bits [ 4 ], O utilizar load- no atmica o- secuencias de la tienda, que reducen
Proponer varias tcnicas adaptativas para reducir el costo de las reducciones, tales los gastos, pero faltan actualizaciones, haciendo que algunos nodos para visitar
como el uso de tablas hash por-hilo para bu actualizaciones ff er, evitando copias varias veces [ 15 ]. En ambos casos, las actualizaciones de mltiples hilos son
completas de la variable de reduccin. Sin embargo, estas tcnicas aumentan los gastos serializados. A diferencia de, Golpe permite varias actualizaciones simultneas a bits
generales de tiempo y deben aplicarse de forma selectiva [ sesenta y cinco ]. En lugar, en la misma lnea de cach.
8
a los chips L4 conjunto de entrada las fu Sec tiempo de ejecucin
... hist GRIN [ 1 ], 512 bins 32b int add 2720 Mcycles
SPMV rma10 [ 21 ] 64b sumas en coma 94 Mcycles
cach L4 y cach L4 y cach L4 y
chip dir chip dir ... chip dir L3 compartida y el directorio de chip
fl danim simlarge [ 9 ] 32b sumas en coma 5930 Mcycles
mundial mundial mundial
pgrank Wikipedia (2007) [ 21 ] 64b int add 2850 Mcycles
BFS cage15 [ 21 , 44 ] 64b OR 5764 Mcycles
L2 0 L2 15
L4 y dir 128 MB, 8 bancos / chips, 16 vas asociativa en conjunto, ambos inclusive, organizacin de la unidad de reduccin: Puesto que las unidades funcionales para
chip la latencia de 35 ciclos, directorio de cach
las operaciones requeridas son relativamente simples, suponemos una 2-etapa
Coherencia MESI / MEUSI, 64B lneas, no hay gotas silenciosos pipeline, 256 bits ALU (4 carriles 64 bits). Esta ALU tiene un rendimiento de una
completa lnea de cach de 64 bytes por cada dos ciclos de reloj, y una latencia de
Memoria 4 canales DDR3-1600-CL10 por chip L4, bus de 64
principal bits, 2 rangos / canal tres ciclos de reloj por lnea. Exploramos la sensibilidad a la unidad de reduccin
de rendimiento en la Sec. 5.5.
Tabla 1: Con fi guracin del sistema simulado.
los gastos generales de hardware: En resumen, nuestro Golpe aplicacin presenta
de un solo luar y sistemas multi-zcalo con hasta 128 ncleos y una jerarqua de los gastos generales modestos:
cach de cuatro niveles, que se muestra en la Fig. 9. La Tabla 1 detalla la 1. Ocho instrucciones adicionales conmutativa-update.
configuracin con fi de estos sistemas. Cada chip de procesador tiene 16 ncleos. 2. Cuatro bits por lnea para codificar el tipo de operacin no exclusiva, ya sea
Cada ncleo tiene L1s privado y una L2 privado, y todos los ncleos en la cuota de o uno de los ocho tipos commutativeupdate (Sec. 3.4) de slo lectura.
chip de una memoria cach L3 peraltada con un directorio en-cache. El sistema
soporta hasta 8 chips de procesador, conectadas en una topologa de dancehall 3. Una unidad de reduccin por L3 y L4 banco.
para el mismo nmero de chips de L4. Cada uno de estos chips contiene una Las cargas de trabajo: Utilizamos un conjunto de cinco puntos de referencia multiproceso
porcin de la memoria cach L4 y directorio global en cach, y se conecta a una que cubren los casos descritos en la Sec. 4:
fraccin de la memoria principal. Esta organizacin es similar a la de IBM z13 [ 62 ]. hist es la OpenCV basado en TBB [ 10 ] Programa histografa (versin
2.4.11).
SPMV es una multiplicacin kernel matriz-vector escasa, donde la matriz
Comparamos MESI y MEUSI (Fig. 6). Con MEUSI, cada banco L3 y L4 se codifica en formato comprimido columna dispersa (CSC). CSC
tiene una unidad de reduccin. Llevamos a cabo reducciones jerrquicas requiere mltiples hilos para realizar adiciones dispersos para el vector
como se describe en la Sec. 3.2: en una reduccin completa, cada banco L3 de salida. Otros formatos de entrada, tales como EBE, tambin causan
invalida todos sus hijos, los agregados sus actualizaciones parciales, y enva dispersos aade en matriz-vector multiplicacin [ 5 ].
una nica respuesta al controlador L4.
uidanimate fl, desde la suite PARSEC [ 9 ], Es un algoritmo iterativo regular
operaciones del golpe y tipos de datos: Agregamos soporte para ocho tipos (Sec. 4.1). Optimizamos la aplicacin por defecto, que utiliza bloqueos
conmutativa-actualizacin: para guardar cambios a clulas compartidas, para usar operaciones
La adicin de 16, 32, y 64 bits enteros, y 32 y los valores flotante de atmicas en su lugar.
punto fl 64 bits. pgrank es una implementacin PageRank similar a la versin optimizada
AND, OR, y XOR bit a bit operaciones lgicas en palabras de 64 bits. de memoria compartida de Satish et al. [ 56 ].
BFS es un algoritmo de bsqueda primero lo ancho paralelo. Nuestra aplicacin se
Observamos las operaciones de actualizacin de slo multiplicacin son raros, por lo extiende PBF [ 44 ] Con un bitvector visitado para reducir la memoria tra FFI c (Sec. 4.2),
que no apoyamos la multiplicacin. Tambin observamos min y mx se utilizan a similar a los enfoques del estado de la tcnica [ 4 , 15 ]. Tabla 2 se detallan los conjuntos
menudo con variables de reduccin de escalares (por ejemplo, para hallar los valores de entrada, operaciones conmutativa-actualizacin de segunda mano, y secuencial de
extremos de una matriz). tiempo de ejecucin de cada punto de referencia.
Golpe proporcionara un beneficio insignificante para las reducciones de escalares, como se
ha discutido en la Sec. 4.1. Por lo tanto, no apoyamos Todas las implementaciones de referencia de lnea de base utilizan operaciones
min o mx. Por ltimo, apoyamos un nico tamao de palabra para las atmicas. Tambin comparamos contra una variante de privatizationbased hist ( implementado
operaciones bit a bit, ya que este su fi cinas de expresar usando TBB reduccin
9
GOLPE MESI
60
25 70
100
50
50 60
20
80
40
40 50
15
60 30 40
Acelerar
Acelerar
Acelerar
Acelerar
Acelerar
30
10 30
40 20 20
20
20 10 5
10
10
0 0 0 0 0
1 32 64 96 128 1 32 64 96 128 1 32 64 96 128 1 32 64 96 128 1 32 64 96 128
ncleos ncleos ncleos ncleos ncleos
(A) Hist (B) SPMV (C) pgrank (d) BFS (E) fl uidanimate
Figura 10: por aplicacin aceleraciones de golpe y MESI en 1-128 ncleos (mayor es mejor).
1.5
latencia de la memoria relativa
8 ncleos 32 ncleos 128 ncleos 8 ncleos 32 ncleos 128 ncleos 8 ncleos 32 ncleos 128 ncleos 8 ncleos 32 ncleos 128 ncleos 8 ncleos 32 ncleos 128 ncleos
(A) Hist (B) SPMV (C) pgrank (d) BFS (E) fl uidanimate
Figura 11: Distribucin de latencia media de acceso a memoria (AMAT) de golpe y MESI en los sistemas de 8, 32, y 128 ncleos. AMAT se normaliza a golpe
de a 8 ncleos (menos es mejor).
ciones) en la Sec. 5.3, y desarrollar microbenchmarks de recuento de (Sec. 4.2), Golpe 'S ventaja es menor pero an significantes. Finalmente las clulas,
referencias para comparar Golpe contra SNZI y Refcache en la Sec. 5.4. compartidos en fluidanimate experiencia y de slo actualizacin fases largo de slo
lectura, pero slo una fraccin de las clulas son compartidos, y las clulas compartidas
Presentamos resultados en 1-128 ncleos. Nos escalar el nmero de chips de ver algunas actualizaciones de los hilos vecinos en cada actualizacin de slo fase, por
procesador y L4 sobre carreras con ms ncleos (por ejemplo, carreras 1-ncleo lo
utilizar un nico procesador y el chip L4, carreras 32 ncleos utilizar dos de cada uno, Golpe proporciona un pequeo aumento de velocidad sobre MESI.
y as sucesivamente), que tambin escalas el ancho de banda de la sistema de Higo. 11 da una visin ms clara en estos resultados, mostrando la ruptura
memoria y capacidad de L4. Para lograr resultados fi estadsticamente significativas, de la latencia de acceso a memoria promedio (AMAT). Cada grfico muestra
se introducen pequeas cantidades de no determinismo propuesto por Alameldeen y los resultados para una sola aplicacin. Cada conjunto de dos barras muestra
Wood [ 6 ], Y realizar carreras suficientes para alcanzar los intervalos de confianza del los resultados para Golpe y MESI para un tamao determinado sistema (8, 32,
95% 1%. o 128 ncleos). La altura de cada barra es el promedio de latencia de acceso
a memoria de todas las cargas, tiendas, y la instruccin Obtiene public de la
L1s, normalizado a la AMAT que Golpe logra a 8 ncleos. Cada barra se divide
5.2 Operaciones de comparacin atmica contra en el tiempo pasado en la L2, L3, o FF- red de chip, L4, invalidaciones de
Higo. 10 compara el rendimiento y la escalabilidad de coherencia de la L4, y la memoria principal. Este desglose muestra
Golpe y un protocolo MESI convencional. Cada grfico muestra los resultados retrasos-camino crtico nica (por ejemplo, el tiempo dedicado a las
para una sola aplicacin, y cada lnea en el grfico muestra cmo las escalas de invalidaciones no es el tiempo dedicado a cada invalidacin, pero el retraso de
rendimiento para un esquema particular (MESI o Golpe) como el nmero de la ruta crtica que solicita su L4 ff er porque otros partcipes deben ser
ncleos crece de 1 -128 ( x - eje). Todos los nmeros de speedup son en relacin invalidados o rebaj).
con el tiempo de ejecucin de la aplicacin en un solo ncleo de bajo MESI. Los
nmeros ms altos son mejores.
Higo. 11 muestra que Golpe reduce sustancialmente AMAT sobre MESI.
Higo. 10 muestra que Golpe siempre supera MESI, a menudo A 128 ncleos, Golpe 'S AMAT es menor que MESI de un 12,6 en hist, 10%
sustancialmente. A 128 ncleos, Golpe supera en un 2,4 MESI en hist, 34% en SPMV, 3.0 en pgrank,
en SPMV, 2.4 en pgrank, 24% en BFS, y 12% en fluidanimate. Golpe sobre todo se hace mediante la
20% en BFS, y 4,0% en fluidanimate. Por otra parte, la brecha entre MESI y Golpe menudoreduccin de las invalidaciones y serializacin. El e ff ect de esta reduccin
se ensancha a medida que el nmero de ncleos crece, lo que demuestra que Golpe en el AMAT general depende de cmo la aplicacin utiliza el sistema de
tiene una mejor escalabilidad que MESI. memoria. Por ejemplo, Golpe elimina casi invalidacin tra fi c en hist, SPMV, y
pgrank. En hist y pgrank, invalidaciones son el principal factor que contribua
Golpe es especialmente beneficioso para aplicaciones donde los datos a AMAT, por lo que la eliminacin de ellos tiene el impacto ms grande.
compartidos pasa por fases largas de slo actualizacin. Este es el caso de hist, Pero en AMAT
SPMV, y pgrank. En BFS, donde las lneas de cach se mueven constantemente
entre U y S estados como actualizacin de ncleos y comprobar el vector de bits SPMV est dominado por L4 y accede a la memoria principal, por lo que el impacto
visitado global de la eliminacin de las invalidaciones es menor.
10
GOLPE privatizacin a nivel bsico privatizacin a nivel de socket
90 90
60 50 50
60
Acelerar
Acelerar
Acelerar
Acelerar
Actuacin
40 40
40 40 30 30
20 20
20 20
10 10 poca por ncleo 0 50 100 150 200
0 0 0 0
1 32 64 96 128 1 32 64 96 128 0 200 400 600 800 1 000 actualizaciones por
1 32 64 96 128 1 32 64 96 128
(A) 512 bins (b) 16K contenedores (A) dealloc inmediata, bajo (B) dealloc inmediata, alto (C) dealloc retardada
recuento recuento
Figura 12: aceleraciones de hist con grandes (16K) nmero de
contenedores de golpe y ambos privatizacin ncleo-y-nivel de Figura 13: Rendimiento de golpe el microbenchmarks recuento de referencias: (a, b)
socket, utilizando pequeas (512) y. desasignacin inmediata y (c) retras la desasignacin.
Ms all de la reduccin de AMAT, Golpe Tambin reduce tra FFI c: a 128 la versin privatizados ncleo-nivel cuando el tamao del agregado de todos los histogramas
ncleos, Golpe incurre inferior o FF chip de tra FFI c que MESI por un factor de 20,2 privatizados ms de flujo de las memorias cach L3, mientras
en hist, 18% en SPMV, 4.9 en Golpe No hace Do ff er esta degradacin.
pgrank, 20% en BFS, y 18% en fluidanimate.
Por ltimo, a pesar de Golpe 'S bene bene fi son significativos, estos puntos de 5.4 Estudio de caso: Saldo de referencias
referencia ejecutar una fraccin relativamente pequea de instrucciones Utilizamos dos microbenchmarks para comparar Golpe 'S de rendimiento
conmutativa-de actualizacin: a 128 ncleos, instrucciones en el conteo de referencia frente a las tcnicas de software descritos en la
conmutativa-actualizacin son 1,0% de todas las instrucciones ejecutadas en hist, 2,4% Sec. 4.2. Los modelos de primera microbenchmark
en SPMV, 4,9% en pgrank, esquemas-desasignacin inmediata, y la usamos para comparar contra una
0,40% en BFS, y 0,96% en fluidanimate. Su impacto es significativo porque, en implementacin basada en atmica convencional y SNZI [ 26 ]. El segundo
tallas grandes centrales, cada atmica lectura-modificacin-escritura a una modelos microbenchmark esquemas-desasignacin con retraso, y lo utilizan
posicin de memoria sostenido puede tomar varios cientos de ciclos. para comparar con Refcache [ 17 ].
11
xadd supera en ambos casos. y la cantidad de datos sucios enviados en invalidaciones; y las redes de
Llegamos a la conclusin de que, en escenarios de alta contencin, Golpe especulacin y rpidas pueden reducir el costo de las operaciones atmicas
proporciona el rendimiento ms alto, pero en escenarios especficos, [ 27 ]. Estos esquemas son ortogonales Golpe, que podra ser utilizado en
optimizaciones de software que explotan el conocimiento fi co applicationspeci conjunto con ellos para mejorar el rendimiento.
para evitar la contencin entre las lecturas y las actualizaciones se pueden
superar Golpe. Observamos tambin que puede ser posible modificar SNZI para Aunque nos hemos centrado en los sistemas de memoria compartida, las
aprovechar reducciones son tambin comunes con el paso de mensajes. Los / L y la Blue Gene
Golpe y combinar las ventajas de ambas tcnicas. / Q superordenadores BlueGene cuentan con redes de colectivos especializados
cancelacin de asignacin retardada: En el microbenchmark-cancelacin de que realizan estas reducciones completamente en el hardware, utilizando ALU
asignacin retardada, 128 hilos realizan incrementos y decrementos (pero no incrustados en los routers de la red [ 7 , 14 ]. En contraste con Golpe, Su principal
lee) en 100.000 contadores. Dividimos el punto de referencia en pocas, cada ventaja es minimizar la latencia de las reducciones de escalares o cortas a travs
una con un nmero determinado de cambios por hilo. Cuando fi nal una de un nmero muy grande de nodos.
poca, hilos de comprobar si los contadores son cero, simulando perodos de
desasignacin retrasada como en Refcache [ 17 ].
7. CONCLUSIN
Nuestra Golpe actualizaciones de implementacin contadores con
Hemos presentado Golpe, una tcnica que explota conmutatividad para
conmutativa-aadir instrucciones y mantiene un mapa de bits con un
reducir el costo de cambios en los sistemas de cachecoherent. Golpe se
modificados con el bit para cada contador. El mapa de bits se actualiza con
extiende protocolos de coherencia convencionales para permitir que mltiples
conmutativa-o instrucciones. Entre pocas, ncleos utilizan cargas ordinarias
cachs para sostener simultneamente actualizar permiso de slo a los datos.
para leer el valor de los contadores marcados y comprobar si los contadores
Hemos introducido una implementacin de Golpe que utiliza este soporte para
son cero. Refcache utiliza un cach de software per-hilo (una tabla hash) para
acelerar de una sola palabra actualizaciones conmutativa. Esta aplicacin
mantener los deltas a cada contador de modi fi ed. Hilos ras esta cach
requiere cambios de hardware menores y, a cambio, mejora sustancialmente el
cuando fi nal de cada poca.
rendimiento de las aplicaciones de actualizacin de pesada. Ms all de esta
aplicacin especfica, una contribucin importante de nuestro trabajo es
Higo. 13c muestra el comportamiento Golpe y Refcache en el
reconocer que es posible permitir que varios cambios simultneos sin sacri fi
microbenchmark cancelacin de asignacin tarda como el nmero de
cing coherencia de cach o la relajacin de la consistencia de datos. As, Golpe logra
cambios por poca ( x - eje) crece de 1 a 1.000 actualizaciones por hilo y
mejoras de rendimiento sin complicar la programacin paralela. Finalmente, Golpe
poca. Golpe refcache supera a toda la gama, hasta en un 2,3 .
se puede aplicar a otros contextos. Por ejemplo, con capacidad de
programacin limitada en el controlador de memoria cach, puede ser posible
Concluimos que Golpe principalmente ayuda a la cuenta de
soportar actualizaciones conmutativos de varias palabras, tales como
referencias-desasignacin retrasado por lo que permite una aplicacin ms simple,
inserciones y el traslado de los conjuntos y otras estructuras de datos no
loweroverhead para capturar los costos de comunicacin bajos de los enfoques
ordenadas. Dejamos esta y otras aplicaciones de
anteriores de software (en este caso, el uso de contadores y mapas de bits en lugar
de tablas hash).
12
[8] P. Bailis et al., Evitacin de Coordinacin en los sistemas de bases de datos, ASPLOS-VI, 1994.
VLDB, vol. 8, no. 3, 2014. [9] C. Bienia et al., El conjunto de pruebas PARSEC: caracte- [42] J. Laudon y D. Lenoski, El SGI Origin: a ccNUMA
servidor altamente escalable , en ISCA-24, 1997.
izacin y las implicaciones arquitectnicas,en PACT-17, 2008. [43] A. Lebeck y D. Wood, Dinmica de auto-invalidacin: Reduc-
[10] G. Bradski y A. Kaehler, OpenCV aprendizaje: Informtica ing sobrecarga de la coherencia en multiprocesadores de memoria compartida , en ISCA-22, 1995.
visin con la biblioteca OpenCV. O'Reilly, 2008. [11] I. Calciu et al., Paso de mensajes o
memoria compartida: Evaluation [44] C. Leiserson y T. Schardl, Una obra-e fi ciente paralelo
Ating la abstraccin delegacin de multicores,en PODC, fi algoritmo de bsqueda primero lo ancho (o cmo hacer frente a la no determinismo de
2013. los reductores),en SPAA, 2010.
[12] I. Calciu, J. Gottschlich, y M. Herlihy, Uso de eliminacin [45] M. Michael, punteros de peligro: la recuperacin de la memoria de seguridad relativas
y la delegacin de implementar una pila NUMA-amigable escalable , en HotPar, 2013. lock-libres objetos IEEE tpds, vol. 15, no. 6, 2004. [46] N. Narula et al., Reconciliacin fase
para contendi in-
[13] D. Chaiken, J. Kubiatowicz, y A. Agarwal, ilimitada transacciones de memoria , en IESO-11, 2014.
directorios: Un esquema de coherencia de cach escalable , en ASPLOS- [47] L. pgina et al., La clasificacin de citacin PageRank: Bringing
IV, 1991. Para la web.Stanford Infolab, Tech. Rep., 1999. [48] M. Papamarcos y J. Patel, A
[14] D. Chen et al., La interconexin IBM Blue Gene / Q coherencia de baja sobrecarga
unidad de mensaje de red y,en CAROLINA DEL SUR, 2011. solucin para multiprocesadores con memorias cach privadas , en
[15] J. Chhugani et al., Rpido y e fi ciente de recorrido grfico algo- ISCA-11, 1984.
Rithm para CPUs: Maximizacin de un solo nodo e fi ciencia,en PDPI, [49] L. y D. Rauchwerger Padua, La prueba de privatizacin Doall:
2012. Una tcnica de tiempo de ejecucin para el bucle Doall identi fi cacin y array privatizacin
[16] B. Choi et al., Denovo: Repensando la jerarqua de memoria , en ICS'94, 1994.
para el paralelismo disciplinadoen PACT-20, 2011. [50] L. Rauchwerger y D. Padua, La prueba LRPD: especulacin
[17] A. Clements, MF Kaashoek, y N. Zeldovich, RadixVM: TIVE paralelizacin de tiempo de ejecucin de bucles con la privatizacin y la reduccin
espacios de direcciones escalables para las aplicaciones multitarea,en de paralelizacin, IEEE tpds, vol. 10, no. 2, 1999. [51] J. Reinders, Intel Threading Building
EuroSys, 2013. Blocks: Fuera fi tting C ++
[18] A. Clements et al., La regla conmutatividad escalable: Design- para el paralelismo procesador multi-ncleo. O'Reilly, 2007. [52] S. Reinhardt, J. Larus, y
ing software escalable para los procesadores multi-ncleo,en SOSP-24, D. Wood, Tempest y Typhoon:
2013. A nivel de usuario la memoria compartida,en ISCA-21, 1994.
[19] FJ Corbato, A Experimento Paging con la Multics Sys [53] D. Sanchez y C. Kozyrakis, SCD: A coherencia escalable
tem , en MIT Proyecto MAC Informe MAC-M-384, 1968. directorio con partcipe flexible de codificacin del juego , en HPCA-18,
[20] D. Culler, J. Singh, y A. Gupta, arqui- computadora paralela 2012.
tecture: un enfoque de hardware / software. Morgan Kaufmann, [54] D. Sanchez y C. Kozyrakis, ZSim: rpido y preciso
1999. la simulacin de la microarquitectura de los sistemas de mil ncleos,en
[21] TA Davis y Y. Hu, La Universidad de Florida escasa ISCA-40, 2013.
coleccin matriz, ACM TOMS, vol. 38, no. 1, 2011. [22] J. Dean y S. Ghemawat, [55] D. Sanchez, R. Yoo, y C. Kozyrakis, arquitectnico Flexible
MapReduce: datos simplificada fi soporte para fi programacin ne-grano,en ASPLOS-XV, 2010.
procesamiento en grandes grupos,en OSDI-6, 2004. [56] N. Satish et al., Navegando por el laberinto de la analtica de grfico
[23] J. Demmel y HD Nguyen, oating- fl rpida reproducible marcos utilizando conjuntos de datos masivos grfico , en SIGMOD, 2014.
punto de suma,en ARITH, 2013. [57] S. Scott, sincronizacin y comunicacin en el T3E
[24] D. Dill et al., Fi cacin Protocolo de verificacin como una ayuda para el diseo de hardware, multiprocesador,en ASPLOS-VII, 1996.
en ICCD, 1992. [58] P. Sewell et al., X86-TSO: un programa- rigurosa y utilizable
[25] A. Duran, J. Corbal'an, y E. Ayguad'e, Evaluacin de El modelo de mer para multiprocesadores x 86 Communications of the ACM, vol. 53, no.
OpenMP estrategias de programacin de tareas , en IWOMP-4, 2008. 7, 2010.
[26] F. Ellen et al., SNZI: indicadores distintos de cero escalables, en PODC, [59] D. Sorin, M. Hill, y D. Wood, Una introduccin a consis- memoria
2007. tencia y coherencia de cach Sntesis Conferencias sobre la arquitectura de
[27] S. Franey y M. Lipasti, Aceleracin operaciones atmicas computadores, vol. 6, no. 3, 2011. [60] O. Villa et al., ECTS ff E de punto
en GPGPUs,en NOCS-7, 2013. flotante-no-asociatividad en
[28] M. Frigo et al., Reductores y otros hyperobjects Cilk ++ clculos numricos en sistemas multiproceso masivamente
en SPAA, 2009. Cray grupo de usuarios, 2009.
[29] A. Gottlieb et al., La Universidad de Nueva York Ultracomputer: Diseo de una [61] T. Von Eicken et al., mensajes activos: un mecanismo para
MIMD de memoria compartida ordenador paralelo IEEE Trans. Comput., vol. 100, no. 2, la comunicacin y la computacin integrada , en ISCA-19,
1983. 1992.
[30] H. Ho ff mann, ff D. Wentzla, y A. Agarwal, tienda remoto [62] J. Warnock et al., Z de 22 nm de prxima generacin IBM System
programacin , en HiPEAC, 2010. microprocesador,en ISSCC, 2015.
[31] N. Johnson et al., Separacin especulativa para la privatizacin [63] CM Wittenbrink, ff E. Kilgari, y A. Prabhu, Fermi
y reducciones , en PLDI, 2012. GF100 arquitectura de la GPU, IEEE Micro, vol. 31, no. 2, 2011. [64] H. Wong et al., Pangea:
[32] W. Jung, J. Park, y J. Lee, paralelo verstil y escalable un heterogneo IA32 acoplada hermticamente
histograma de la construccin , en PACT-23, 2014. multiprocesador chip de lnea,en PACT-17, 2008.
[33] J. Kelm et al., Rigel: una arquitectura escalable y programa- [65] H. Yu y L. Rauchwerger, paralleliza- reduccin adaptativa
interfaz ming para un acelerador de 1000-core , en ISCA-36, 2009. tcnicas cin , en ICS'00, 2000.
[34] R. Kessler y J. Schwarzmeier, CRAY T3D: Un nuevo dimen- [66] J. Zebchuk et al., Un directorio coherencia sin etiqueta, en MICRO-
sin de Cray Research,en COMPCON, 1993. 42, 2009.
[35] F. Kjolstad y M. Snir, patrn de clulas fantasma, en Taller [67] J. Zebchuk, E. Sa fi, y A. Moshovos, Un marco para
Patrones de programacin en paralelo, 2010. de grano grueso optimizaciones en la jerarqua de memoria en el chip , en MICRO-40, 2007.
[36] K. Knowlton, un asignador de almacenamiento rpido, MCCA, no. 8, 1965. [37] C. Koelbel, Manual
[68] L. Zhang, Z. Fang, y J. Carter, Highly e fi ciente sincronizada
HPF. MIT Press, 1994. [38] S. Kumar et al., ameba-cache: Adaptive bloques para elimi-
nizacin en base a las operaciones de memoria activa , en PDPI,
2004.
NATing residuos en la jerarqua de memoria,en MICRO-45, 2012.
[69] M. Zhang et al., PVCoherence: Diseo de FL en la coherencia
[39] G. Kurian, Cach Gestin Jerarqua Localidad consciente de protocolos para escalable veri fi cacin , en HPCA-20, 2014.
Los procesadores de mltiples ncleos , Ph.D. tesis, MIT, 2014. [40] A. Kyrl, G.
[70] M. Zhang, A. Lebeck, y D. Sorin, coherencia fractal: Scal-
Blelloch, y C. Guestrin, GraphChi: a gran fi hbilmente verificable coherencia de cach , en MICRO-43, 2010.
Escala del grfico Clculo de Slo un PC.En OSDI-10, 2012.
[71] H. Zhao et al., Los protozoos: granularidad adaptativa cach cohe-
[41] J. Larus, B. Richards, y G. Viswanathan, LCM: Memoria cia , en ISCA-40, 2013.
el apoyo del sistema de implementacin del lenguaje paralelo , en
13