You are on page 1of 13

La explotacin de propiedad conmutativa para reducir el costo de las actualizaciones

a los datos compartidos en la memoria cach coherente Sistemas

Guowei Zhang Webb Horn Daniel Sanchez


Laboratorio oficial de Inteligencia Informtica y arti fi
Instituto de Tecnologa de Massachusetts
{Zhanggw, webbhorn, sanchez}@csail.mit.edu

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

coherencia cach, protocolo de coherencia, conmutatividad


Dos obstculos impiden que estas optimizaciones en los protocolos actuales. En
primer lugar, protocolos de coherencia convencionales soportan slo dos
1. INTRODUCCIN operaciones primitivas, lee y escribe, por lo que las actualizaciones conmutativa
coherencia de cach es un fenmeno generalizado en los sistemas de memoria deben expresarse como una secuencia readmodify-escritura. En segundo lugar,
compartida. Sin embargo, los protocolos de coherencia actuales causan estos protocolos no se desacoplan permisos de lectura y escritura. En su lugar,
hacer cumplir la De un solo escritor, lector de mltiples invariante: en un punto dado
significativamente ms tra FFI c y la serializacin de la necesaria, especialmente con actualizaciones
frecuentes a los datos compartidos. Por ejemplo, considere un contador compartido que en el tiempo, una lnea de cach o bien puede tener como mximo un partcipe con Lee
se actualiza de mltiples ncleos. En cada actualizacin, el primer ncleo de y escribe permiso, o mltiples partcipes con permiso de slo lectura [ 3 , 59 ].
actualizacin obtiene una copia exclusiva de la lnea de cach del contador

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.

slo actualizacin permiso, y satisfacer las solicitudes de actualizacin


MICRO-48, 05-09 de diciembre de de 2015, Waikiki, Hawai, EE.UU.
conmutativa-localmente, bu ff Ering y actualizaciones de coalescencia. En una solicitud de
Los derechos de autor se lleva a cabo por el propietario / autor (s). Los derechos de publicacin licencia para ACM.
lectura, el protocolo de coherencia rene todas las actualizaciones locales y reduce que les
ACM 978-1-4503-4034-2 / 15/12 ... $ 15.00 DOI: http://dx.doi.org/10.1145/2830772.2830774
permite producir el valor correcto

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

inicial A: 20 ALU A: 20 ALU 0.8

A: 20 R: 0 R: 0

Desempeo relativo
0.6
Core / $ 0 Core / $ 1 Core / $ 0 Core / $ 1 Core / $ 0 Core / $ 1

Agregar (A, 1) 0.4


aadir (A, 1) aadir (A, 1) Agregar (A, 2)
aadir (A, 1)
Agregar (A, 2) aadir (A, 2)
Agregar (A, 1) aadir (A, 1) 0.2
aadir (A, 2)
aadir (A, 2)
aadir (A, 1) de carga (A)
aadir (A, 2)
Hora

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

Golpe requiere cambios modestos en las estructuras de hardware, que se resumen en


La privatizacin es la contraparte de software para Golpe, y est sujeta a ff la Fig. 3 y se describe a continuacin.
TradeO similares s: se limita a las actualizaciones conmutativa, y funciona mejor instrucciones conmutativa-actualizacin: En la mayora de las NIA,
cuando los datos pasan por largas fases de slo actualizacin sin intervenir lee. Golpe necesita instrucciones adicionales que permiten a los programas transmiten
diferente a Golpe, privatizacin tiene dos fuentes principales de gastos generales. En actualizaciones conmutativa, como instrucciones atmicas convencionales (por
primer lugar, mientras Golpe es casi tan rpido como un protocolo convencional si ejemplo, ir a buscar y suma) devolver el ltimo valor de los datos que se actualizan.
una lnea se actualiza slo una vez antes de ser ledo (Fig. 1c), las reducciones de En este caso, aadimos una commutativeaddition la instruccin, que tiene una
software son mucho ms lenta, haciendo finamente intercalado lee y direccin y un valor de entrada nica, y no escriba en cualquier registro.
actualizaciones ine ciente FFI. En segundo lugar, la norte hilos, las variables
privatizados aumentan huella de memoria por un factor de NORTE. Esto hace pri- Algunos NIA pueden no necesitar instrucciones adicionales. Por ejemplo, la
ingenua reciente Arquitectura del Sistema Heterogneo (HSA) incluye instrucciones de
no-retorno atmicas que no lo hacen

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)

Aadir la operacin Direccin Datos Direccin partcipes Datos

Estado inicial Estado inicial Estado inicial Estado inicial

cach compartida cach compartida cach compartida Rojo.


cach compartida
Rojo.
A: ShU {1}: 20 Unidad R: Ex {1}: - Unidad A: ShU {0,1}: 24 Unidad A: ShU {1,2}: 20 Unidad

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)

cach compartida cach compartida cach compartida cach compartida


Rojo. Rojo. Rojo. Rojo.
A: {ShU 0, 1}: 20 UN: ShU {0,1}: 24 R: ShU { 1} : 27 Unidad UN: ShR {0}: 31 Unidad

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

estado final estado final estado final estado final

(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

actualizaciones conmutativa como tiendas para mejorar el rendimiento (por ejemplo,


utilizando bu ff ers de actualizacin similar a almacenar bu ers ff y actualizaciones que
BAO W RWW
se realiza con una ALU en la L1). S T

W, RC
Entrar en el estado T: Cuando un cach tiene permisos Insu fi ciente para BAO

satisfacer una solicitud de actualizacin (estados I o S), que las solicitudes de R

actualizacin de slo el permiso del directorio. El directorio invalida cualquier


yo
copia en S o rebaja la copia nica de M a T, y actualizar slo concede permiso
a la cach que solicita, que las transiciones a la U. Por lo tanto, hay dos
Figura 6: diagrama de transicin de estados de MEUSI. Al igual que MESI
maneras de una lnea puede transicin en el estado T: por solicitando la
otorga E a una solicitud de lectura si una lnea es no compartido, MEUSI
actualizacin permiso de slo para satisfacer una solicitud desde su propio
otorga M a una solicitud de actualizacin si una lnea es no compartido.
ncleo, como se muestra en la Fig. 5a; o por ser rebajado de M, como se
Para mayor claridad, el diagrama omite acciones que no causan una
muestra en la Fig. 5b.
transicin de estado (por ejemplo, C peticiones en U).

Cuando una lnea de transiciones en T, su contenido siempre se inicializan a la elemento


de identidad, 0 para la adicin conmutativa. Esto se hace incluso si la lnea tiene datos
debe implementar todas las operaciones apoyadas. En tercer lugar, los
vlidos. Esto evita tener que realizar un seguimiento de lo que sostiene la memoria cach
directorios y privadas cachs deben realizar un seguimiento, para cada lnea
los datos originales al hacer reducciones. Sin embargo, las reducciones requieren la
en el estado T, qu tipo de operacin se est realizando. Cuarto, Golpe debe
lectura de los datos originales de la memoria cach compartida.
serializar actualizaciones conmutativa de tipos di ff Erent, porque no
conmutan en general (por ejemplo, + y * no conmutan entre s). Esto se
Dejando el estado T: Las lneas pueden transicin fuera de U ya sea debido a la
puede lograr mediante la realizacin de una reduccin completa cada vez que
expulsin o las solicitudes de lectura.
el cach privada o directorio recibe una solicitud de actualizacin de un ff
Desalojos iniciadas por un cach privada (para hacer espacio para una lnea di ff
Erent tipo di a la actual.
Erent) desencadenan una reduccin parcial, se muestra en la Fig. 5c: el cach
desalojar enva su actualizacin parcial de la memoria cach compartida, que utiliza
bloques de cach ms grandes: Bloques de soporte de varias palabras es trivial si ( GRAMO,
su unidad de reduccin de agregar que con su copia local.
) tiene una elemento de identidad ( Formalmente, esto significa ( GRAMO, ) es un
monoide conmutativo). El elemento de identidad produce el mismo valor cuando se
La memoria cach compartida tambin puede ser necesario para desalojar a una lnea que
aplica a cualquier elemento en GRAMO. Por ejemplo, los elementos de identidad
cachs privados tienen en U. Esto desencadena una reduccin total:
para la adicin, multiplicacin, y, y min son 0, 1, todos unos, y el entero mximo
todos los cachs con permiso de actualizacin slo se envan invalidaciones,
representable, respectivamente.
responder con sus actualizaciones parciales, y la memoria cach compartida utiliza su
unidad de reduccin de agregar todas las actualizaciones parciales y su copia local,
Todas las operaciones que ponemos en prctica en este trabajo tienen un
produciendo el valor final.
elemento de identidad. En este caso, es su ciente FFI para inicializar cada palabra del
Finalmente, leen solicitudes de cualquier ncleo tambin provocan una reduccin
bloque de cach para el elemento de identidad al realizar la transicin a la reduccin
completa, como se muestra en la Fig. 5d. Dependiendo de la latencia y rendimiento de la
de U. realizar operaciones elementwise incluso en las palabras que no han recibido las
unidad de reduccin, la satisfaccin de una solicitud de lectura puede llevar algo ms largo
actualizaciones. Tenga en cuenta esto es vlido incluso si esas palabras no contienen
que en los protocolos convencionales. reducciones jerrquicos pueden controlar a los
datos del mismo tipo, debido a la aplicacin de en el elemento de identidad produce
gastos generales de reduccin con grandes recuentos de ncleo (Sec. 3.2). En nuestra
el mismo resultado, por lo que no cambia patrn de bits de la palabra. Por otra parte,
evaluacin, se observa que los gastos generales de reduccin son pequeas en
las unidades de reduccin podran saltar operativo de palabras con el elemento de
comparacin con las latencias de comunicacin.
identidad.

En general, no todas las operaciones pueden tener un elemento de


3.2 Golpe Generalizando
identidad. En tales casos, el protocolo requerira un bit adicional por palabra
Ahora demostramos cmo generalizar Golpe para soportar mltiples operaciones,
para rastrear elementos sin inicializar.
bloques de cach ms grandes, otros protocolos, y las jerarquas de cach ms
Por ltimo, observamos que suponemos que los datos estn correctamente
profundas.
alineados. Apoyo a las actualizaciones conmutativa a los datos no alineados requerira
operaciones mltiples: Formalmente, Golpe se puede aplicar a cualquier semigrupo
mecanismos ms complicados de bu ff er actualizaciones parciales. Si la ISA permite
conmutativo ( GRAMO, ). 1 Por ejemplo, GRAMO
accesos no alineados, que se pueden realizar como-escribe lectura-modificacin
puede ser el conjunto de los enteros de 32 bits, y puede ser adicin,
normales.
multiplicacin, and, or, xor, min, o mx.
Otros protocolos: Golpe se puede extender ms all de los protocolos de MSI. Higo. La
El soporte de mltiples operaciones en el sistema requiere cambios menores. En
figura 6 muestra cmo MESI [ 48 ] Se extiende a MEUSI, que utilizamos en nuestra
primer lugar, se necesitan instrucciones adicionales para transmitir cada tipo de
evaluacin. Tenga en cuenta que la actualizacin solicitudes gozan de la misma
actualizacin. , unidades de reduccin de segundo
optimizacin que E introduce por Read-Only solicitudes: si una cach de solicitudes de
1( GRAMO, ) es un semigrupo conmutativo i FF : GRAMO GRAMO GRAMO es un binario, asociativa, actualizacin de permiso de slo una lnea y ningn otro cach tiene una copia vlida, el
la operacin conmutativa sobre los elementos de conjunto GRAMO, y GRAMO es cerrado bajo . directorio otorga la lnea directamente en M.

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.

organizaciones jerrquico inferior de la latencia de las reducciones en Golpe, al


3.4 Aplicacin y Veri Costos fi cacin
igual que reducir la latencia de envo y procesamiento de invalidaciones en los
Si bien hemos presentado Golpe en trminos de estados estables, realistas
protocolos convencionales: en una reduccin total, cada nivel intermedio
protocolos implementan transacciones de coherencia con los estados transitorios
agregados de todas las actualizaciones parciales de sus hijos antes de responder
adicionales y estn sujetos a las carreras, lo que aade complejidad y dificultan la
a su matriz. Por ejemplo, considere un sistema 128 de ncleo con un L4
veri fi cacin. Mediante el estudio de las implementaciones completas de MESI y
compartida totalmente y 8 por socket L3s, cada uno compartido por 16 ncleos.
MEUSI, se muestra que Golpe requiere un nmero mnimo de estados transitorios y
En este sistema, una reduccin completa de una lnea compartida en el estado de
aade modestos costos de fiscalizacin.
U por todos los ncleos tiene 8 + 16 = 24 operaciones en la ruta FAR crtico menor
que el 128 operaciones que un FL en organizacin tendra, y no lo suficiente como
Primero se implementan los protocolos MESI de dos y de tres niveles
para dominar el costo de invalidaciones.
jerarquas de cach. Nuestras implementaciones funcionan en redes con la
comunicacin no ordenada de punto a punto, y el uso de dos redes virtuales
sin ninguna Ering ff mensaje de BU en los puntos finales. En el protocolo de
Otros contextos: Nos centramos en las operaciones atmicas de una sola palabra y el
dos niveles, el controlador coherencia L1 tiene 12 estados (4 estables, 8
hardware de coherencia de cach, pero tenga en cuenta que
transitorios), y la L2 tiene 6 estados (3 estables, 3 transitorios). Higo. 7a
Golpe podra aplicarse a otros contextos. Por ejemplo, Golpe
muestra el diagrama de transicin de estados de la ms compleja cach L1.
podra utilizarse en protocolos de coherencia de software (por ejemplo, en la
En el protocolo de tres niveles, la L1 tiene 14 estados (4 estables, 10
memoria compartida distribuida), y puede soportar operaciones ms sofisticadas
transitorios), la L2 tiene 38 (9 estable, 29 transitorio), y el L3 tiene 6 (3 estable,
tales como la insercin y eliminacin en conjuntos. Dejamos de las prolongaciones
3 transitoria).
de trabajo futuro.

Generalizada estado no exclusiva: Si bien hemos introducido U como un


3.3 coherencia y consistencia
estado adicional separado de S, ambos tienen una fuerte simetra y muchas
Golpe mantiene la coherencia de cach y no cambia la consistencia de
similitudes. De hecho, se lee son simplemente otro tipo de operacin
datos.
conmutativa. Nos aprovechamos de esta idea de simplificar Golpe 'S
Coherencia: Un sistema de memoria es coherente si, para cada posicin de
aplicacin mediante la integracin de S y T en una sola, generaliz no
memoria, es posible construir un orden serial hipottica de todas las
exclusiva estado, N. Este estado requiere extensiones menores en la
operaciones a la ubicacin que es consistente con los resultados de la
maquinaria ya se ha descrito en la Sec. 3.2 para soportar mltiples
ejecucin y que obedece a dos invariantes [ 20 , 5.1.1]: 2
actualizaciones conmutativa.

1. Operaciones emitidos por cada ncleo se producen en el orden en el que se


Mltiples cachs pueden tener una copia de la lnea en N, pero todas las
emitieron al sistema de memoria por que el ncleo.
copias deben estar bajo el mismo tipo de operacin, que puede ser o una de las
posibles actualizaciones conmutativa de slo lectura. Un campo adicional por
2. El valor devuelto por cada operacin de lectura es el valor escrito en ese
lnea seguimiento de su tipo de operacin cuando las solicitudes en N. no
lugar en el orden serial. En Golpe, una ubicacin puede estar en los modos
exclusivos y degradar etiquetados con el tipo de operacin deseada. E y M
exclusivos, de slo lectura o de slo actualizacin. El protocolo de lnea de
pueden satisfacer todo tipo de peticiones; actualizaciones conmutativa causan un
base que Golpe
E transicin M. N puede satisfacer peticiones no exclusivas del mismo tipo, pero
se extiende ya hace cumplir la coherencia en y entre los modos exclusivos y de slo
las peticiones de un tipo Erent di ff desencadenar una invalidacin (si a partir de
lectura. En el modo de slo actualizacin, mltiples ncleos pueden actualizar
slo lectura) o una reduccin (si se parte de un tipo conmutativa-update) y causar
simultneamente la ubicacin, pero ya que las actualizaciones son conmutativas, cualquier
un interruptor tipo. Invalidaciones y reducciones implican la misma secuencia de
orden serial elegimos produce el mismo resultado de la ejecucin. Por lo tanto, el
peticin-respuesta, para que puedan utilizar los mismos estados transitorios.
primer invariante es trivialmente satis fi ed. Por otra parte, las transiciones de
actualizacin, slo para slo lectura o modos exclusivos propagar todas las
actualizaciones parciales y hacerlos visibles para el lector siguiente. Por lo tanto, el
siguiente lector siempre se observa el ltimo valor escrito en ese lugar, la
La implementacin de dos niveles MEUSI esta manera requiere 13 estados en
satisfaccin de la segunda propiedad. Por lo tanto, Golpe mantiene la coherencia.
la L1 y 6 estados de la L2. En comparacin con los de dos niveles meses, MEUSI
presenta slo un estado transitorio adicional L1. Higo. 7b muestra el diagrama de
transicin de estados de la L1, que es casi idntica a MESI de. El nuevo estado
Consistencia: Mientras el sistema restringe el or-
transitorio, NN, se utiliza cuando se mueve entre los tipos de funcionamiento (por
2 razn a otros acerca de la coherencia con el De un solo escritor, lector mltiple y el valor ejemplo, de slo lectura para conmutativa-aadir o desde conmutativa-y para
de los datos invariantes [ 59 ], Que son su cientes FFI pero no es necesario. Golpe no conmutativa-o). Nuestro protocolo de tres niveles MEUSI es tambin similar al de
mantiene la de un solo escritor, lector de mltiples invariante. tres niveles MESI:

6
Leyenda
IM IM
Unidos
XMS SM XMN NM
Estable Transitorio
ES Carrera de Split EN

METRO ESTOY XMi


yo S mi METRO yo norte mi METRO
transiciones iniciado por
ISI XNI
solicitud Propia (R, W, C, wback)
NN
XMi XMi
WBI WB Respuesta a peticin propia WBI WB

solicitud Inval / rebaja

(A) MESI (B) MEUSI con estado generalizado N

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.

Adems recorridos grfico, actualizaciones conmutativa a mapas de bits son


Golpe alcanza aceleraciones significativas mediante el mantenimiento de una sola comunes en otros contextos, tales como trozos recentlyused en las polticas de
copia de la variable de reduccin en la memoria, y la superposicin de las fases de sustitucin de pginas [ 19 ], La memoria compaero de asignacin [ 36 ], Y otros
bucle y de reduccin. algoritmos de grafos [ 40 ].
las variables de reduccin y otras operaciones de actualizacin slo suelen recuento de referencias: recuento de referencias es una tcnica de gestin
utilizar los datos de coma flotante fl. Por ejemplo, dependiendo del formato de automtica de la memoria comn. Cada objeto tiene un contador para
la matriz dispersa, escaso matriz-vector multiplicacin puede requerir mltiples rastrear el nmero de referencias activas. Hilos incremento del contador del
hilos para actualizar los elementos superpuestos del vector de salida [ 5 ]. Sin objeto al crear una referencia, y decremento y leer el contador cuando
embargo, las operaciones de punto flotante fl no son asociativos o conmutativa, destruyen una referencia, cuando el contador de referencias llega a cero, el
y el orden de las operaciones puede un ff ect el resultado final en algunos objeto es recoleccin de basura.
casos [ 60 ]. implementaciones paralelas de reduccin comunes son no
determinista, por lo que deciden apoyar Adems flotante puntos en Golpe. Las El uso de tcnicas de software para reducir los gastos generales de recuento de
implementaciones que deseen reproducibilidad pueden utilizar las reducciones referencias es un problema bien estudiado [ 17 , 18 , 26 , 45 ]. Escalables indicadores no
ms lenta deterministas en el software [ 23 ]. cero (SNZIs) [ 26 ] Reducir el coste de los controles que no son cero. SNZIs mantienen
el recuento global utilizando un rbol de contadores. Hilos de incremento y decremento
nodos di ff Erent en el rbol, y pueden propagar cambios a los nodos primarios. Los
clulas fantasma: En los algoritmos iterativos que operan en los datos regulares, lectores slo tiene que comprobar el nodo raz para determinar si el recuento es cero.
tales como las redes estructuradas, las discusiones a menudo trabajan en trozos SNZIs haga los cheques que no son cero rpido y permitir que algunos de concurrencia
inconexos de datos y slo necesitan comunicar cambios a las discusiones que en incrementos y decrementos, adems de aadir espacio fi cante y los gastos
trabajan en trozos vecinos. Una tcnica comn es bu actualizaciones ff er a generales de tiempo significantes, y necesitan ser cuidadosamente afinado.
clulas de contorno utilizando clulas fantasma o halgeno [ 35 ], Copias privadas
de celdas de borde actualizados por cada hilo durante la iteracin y leda por
hilos vecina en la siguiente iteracin. clulas fantasma son otra forma de Refcache [ 17 ] Retrasos y lee lotes para hacer referencia a los cargos, lo que le
privatizacin, di ff Erent de las reducciones en la que se capturan comunicacin permite utilizar la privatizacin. Hilos mantienen una cach de software de los
punto a punto. Golpe evita los gastos generales de clulas fantasma al permitir deltas contador de referencia, que son peridicamente barri al contador global.
que mltiples hilos actualizar celdas de borde directamente. Cuando el contador global se mantiene en cero para un su fi cientemente largo
tiempo, la cuenta verdadera es conocido por ser cero y el objeto se cancela la
asignacin. Este enfoque reduce los gastos generales referencecounting, pero
El patrn de clulas fantasma es ms difcil de aplicar a los algoritmos cancelacin de asignacin retrasada duele huella de la memoria y de la localidad.
iterativos que operan en los datos irregulares, tales como PageRank [ 47 , 56 ]. En
estos casos, el trabajo de particin entre los hilos para minimizar la
comunicacin puede ser costoso, y rara vez se hace en mquinas de memoria Golpe permite a los contadores de referencias compartidas sin gastos de espacio
compartida [ 56 ]. Al reducir el costo de cambios simultneos a los datos y menos coherencia tra fi c de contadores compartidos. Golpe Tambin permite el
compartidos, recuento de referencias retardada como en Refcache sin cach de software (Sec.
Golpe ayuda a algoritmos iterativos irregulares tambin. 5.4).

4.2 Actualizaciones entrelazado y lee 5. EVALUACIN


Varios algoritmos paralelos leer y actualizar los datos compartidos dentro de la 5.1 Metodologa
misma fase. A diferencia de las aplicaciones en la Sec. 4.1, la privatizacin de sistemas modelados: Realizamos la microarquitectura, la simulacin de
software se utiliza muy poco en estos ejecucin impulsada por el uso de ZSim [ 54 ]. nos eva-

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

L1D ... L1i L1D


Procesador Procesador
... Procesador Tabla 2: Caractersticas de la referencia.
chip chip chip Core 0 L1i Original 15

cambios a los mapas de bits de cualquier tamao (menor o mayor).


1-8 de procesador y L4 virutas organizacin chip de procesador instrucciones conmutativa-actualizacin: Aadimos una instruccin para
cada operacin y tipo de datos compatible. Cada instruccin tiene dos
Figura 9: Arquitectura del sistema simulado. entradas de registro, con la direccin de ser actualizado y el valor de
aplicar, y no produce salida del registro. Codificamos utilizando estas
1-128 ncleos, 16 ncleos / chip de procesador, ISA x86-64, 2,4 instrucciones x86-64 no-ops que no son emitidos por el compilador.
ncleos
GHz, Nehalem-como OOO [ 54 ]
cachs
chip del procesador

32 KB, 8-manera asociativa en conjunto, D split / I, 4-ciclo de


Las x86 (TSO) modelo de memoria espec fi ca que las instrucciones atmicas
L1 latencia
tienen un almacn de carga implcita valla [ 58 ]; para mantener la coherencia, tambin
cachs 256KB privado por ncleo, 8-manera asociativa en conjunto,
L2 inclusive, 7-ciclo de latencia aadimos una cerca implcita a commutativeupdate instrucciones. Ponemos en prctica
L3 32 MB, 8 bancos, 16 vas asociativa en conjunto, ambos inclusive, de operaciones atmicas convencionales y actualizaciones conmutativa utilizando un
cachs latencia de 27 ciclos, directorio de cach
perodo de cuatro secuencia op: carga ligada, ejecutar (en uno de los puertos de
O red chip topologa Dancehall, 40-ciclo-punto a punto enlaces ejecucin apropiadas), store-condicional, y la cerca store-carga.
de FF- entre cada procesador y el chip L4

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).

L2 L3 Fuera del chip de red invalidaciones L4 L4 Memoria principal

1.2 3.0 2.0 1.4

1.0 2.5 1.2

1.5
latencia de la memoria relativa

latencia de la memoria relativa

latencia de la memoria relativa

latencia de la memoria relativa

latencia de la memoria relativa


1.0
12 0.8 2.0
0.8
10 0.6 1.5 1.0
0.6
68 0.4 1.0
0.4
0.5
24 0.2 0.5 0.2

0 0.0 0.0 0.0 0.0


COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI COUPMESI

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

100 80 GOLPE 80 GOLPE GOLPE


100
SNZI SNZI Refcache
70 70
80 80 xadd xadd
60 60

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

ncleos ncleos ncleos ncleos

(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 ].

cancelacin de asignacin inmediata: En este microbenchmark, cada hilo


5.3 Estudio de caso: Las variables de reduccin realiza una fijada nmero de incremento, decremento, y las operaciones de
Todos los puntos de referencia de lnea de base utilizan operaciones atmicas lectura sobre un nmero fi jo de contadores de referencias compartidas.
en vez de la privatizacin. Comparar Golpe con la privatizacin de software, Utilizamos 1 a 128 hilos, 1 milln de actualizaciones por hilo, y 1024
modificamos hist para hacer que el histograma una variable de reduccin, y variar el contadores compartidos. En cada iteracin, un hilo selecciona un contador de
nmero de contenedores (elementos) en el histograma. Evaluamos tanto de nivel azar y realiza ya sea un incremento o un decremento y leer.
central privatizacin, donde cada hilo tiene su propia variable, y la privatizacin a
nivel de zcalo, donde cada toma tiene su propia variable, compartida y actualizada SNZI utiliza rboles binarios con el mayor nmero de hojas en forma de hilos.
de todos los subprocesos que se ejecutan en ese enchufe por medio de El rendimiento de SNZI depende del nmero de referencias por objeto un mayor
operaciones atmicas. la privatizacin Socketlevel busca equilibrar los gastos nmero de referencias provoca excedentes ms altos en las hojas y los nodos
generales de las implementaciones totalmente compartidos y totalmente intermedios, y menos contencin en actualizaciones. Para capturar este e ff ect,
privatizados. nos encontramos dos variantes de este punto de referencia. En la primera variante
(bajo recuento), cada hilo mantiene slo 0 o 1 referencias por objeto, mientras que
Higo. 12 compara el rendimiento y la escalabilidad de en el segundo modo (recuento alto), cada hilo mantiene hasta cinco referencias
Golpe con nivel de ncleo y la privatizacin de nivel de zcalo en por objeto.
hist. Higo. 12a muestra que, con un pequeo nmero de contenedores,
Golpe supera a la privatizacin de nivel de ncleo en un 3% y a nivel de toma de la Para lograr esto, en el modo de bajo recuento, cuando un hilo selecciona
privatizacin por 38%. privatizacin de nivel Core funciona bien en este caso al azar un objeto, ser siempre incrementar su contador si se mantiene
porque cada hilo realiza muchas cambios a cada bin histograma (128 en ninguna referencia a ese objeto, y siempre disminuir su contador si se
promedio), por lo que los gastos generales de reduccin son altamente amortizado. mantiene una referencia. En el modo de alta recuento, hilos aumentarn con
probabilidad
En contraste, la Fig. 12b muestra que, con un gran nmero de contenedores, Golpe 1,0, 0,7, 0,5, 0,5, 0,3, y 0,0 si tienen 0, 1, 2, 3, 4, y 5 referencias locales a
supera a la privatizacin de nivel de ncleo por ese contador, respectivamente.
2.5 y a nivel de toma de la privatizacin por 51%. En este caso, la privatizacin Para las actualizaciones, Golpe y xadd utilizar conmutativa-add y atmicas
de nivel de ncleo est dominado por el coste de las reducciones, ya que cada fetch-and-aadir instrucciones, respectivamente.
hilo realiza un pequeo nmero de cambios a cada bin histograma (2 en Higo. 13a y la fig. 13b muestran los resultados de estos experimentos. En la
promedio). variante de bajo recuento (Fig. 13a), SNZI incurre en altos gastos indirectos cuando
Por ltimo, la privatizacin tambin aumenta la huella y se suma a la presin cachs los recuentos caen a cero, por lo tanto
compartidos. Si crecemos tanto el nmero de contenedores y el tamao de la imagen (por Golpe y xadd superan SNZI (por 50% y 17% a 128 ncleos,
lo que el nmero de actualizaciones por bin e hilo, y por lo tanto los gastos generales de respectivamente). Por el contrario, en la variante highcount (Fig. 13b), SNZI
reduccin, permanecer constante), vemos una degradacin del rendimiento adicional de goza inferior contencin y supera golpe ( por 35% a 128 ncleos). Golpe
9% en

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).

5.5 Sensibilidad a la Reduccin de la Unidad de rendimiento


Golpe para el trabajo futuro.
Golpe es apenas sensible a la unidad de reduccin de rendimiento.
Comparamos el valor por defecto de 256 bits ALU, que tiene una produccin de
una lnea de cach por 2 ciclos, con un sencillo, unpipelined 64 bits ALU, que 8. Agradecimientos
tiene una produccin de una lnea por cada 16 ciclos. La degradacin mximo Agradecemos a Nathan Beckmann, Christina Delimitrou, Joel Emer,
rendimiento incurrido con el ms lento ALU es 0,88% a 128 ncleos en BFS. Los Mark Je ff rey, Harshad Kasture, Anurag Mukkara, Suvinay Subramanian,
sistemas ms pequeos incurren en algo ms bajas degradaciones del peor Po-Un Tsai, y los revisores annimos por sus comentarios tiles. Este
caso (por ejemplo, 0,76% a 64 ncleos). trabajo fue apoyado en parte por C-FAR, uno de seis centros SRC
STARnet de MARCO y DARPA, y por NSF conceder CARRERA-1.452.994.
Guowei Zhang fue parcialmente apoyado por un Grier Presidencial
6. RelatedWork ADICIONAL Fellowship MIT EECS.

memoria sin apretar consistente (LCM) [ 41 ] Es un protocolo de coherencia


softwarecontrolled construido encima de Tempest [ 52 ] Que permite mltiples cachs
de escritura para mantener copias de la misma lnea. Estas copias pueden llegar a
9. REFERENCIAS
ser incoherente, y el software deben conciliar de forma explcita en una fase de [1] Las imgenes grandes en la NASA (GRIN), http://grin.hq.nasa.gov. [2] Sistema Plataforma
mezcla posterior. A diferencia de LCM, Golpe preserva la coherencia de cach y HSA Arquitectura Speci fi cacin, HSA
transparente se funde actualizaciones parciales, que no requiere intervencin del Fundacin, Tech. Rep., 2015. [3] S. Adve y K. Gharachorloo, consistencia Memoria
compartida
software.
modelos: Un tutorial IEEE Computer, vol. 29, no. 12, 1996. [4] V. Agarwal et al., Exploracin
grfico escalable en mltiples ncleos
Varias optimizaciones cach de coherencia reducir el costo de cambios, procesadores,en SC10, 2010.
aunque eso no es su objetivo principal: la auto-invalidaciones, o bien con [5] JH Ahn, M. Erez, y W. Dally, Dispersin-aadir en datos
arquitecturas paralelas , en HPCA-11, 2005.
los predictores de hardware [ 43 ] o [protocolos de software diecisis , 33 ],
[6] A. Alameldeen y D. Wood, IPC considerados perjudiciales para la
Retire invalidaciones de la ruta crtica; esquemas de
cargas de trabajo con varios procesadores, IEEE Micro, vol. 26, no. 4, 2006. [7] G. Alm'asi et
adaptacin-granularidad de coherencia [ 38 , 67 , 71 ] Reducir tanto la falsa al., Optimizacin de MPI comuni- colectiva
comparticin cationes en sistemas BlueGene / L , en ICS'05, 2005.

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

You might also like