Está en la página 1de 8

IEEE LATIN AMERICA TRANSACTIONS, VOL. 4, NO.

4, JUNE 2006 291

Aplicacin de la Teora de Grafos al Anlisis del


Paralelismo a Nivel de Instruccin
Ral Durn y Rafael Rico

comportamientos, favorece la reproducibilidad y simplifica


Resumen-La evaluacin de las arquitecturas de computadores la transferencia de conocimientos.
requiere nuevas herramientas que complementen las habituales La teora de grafos puede ayudar a realizar este anlisis
simulaciones. La teora de grafos puede ayudar a crear un nuevo del paralelismo de grano fino ya que nos proporciona una
marco de anlisis del paralelismo de grano fino. Las diferencias
formalizacin matemtica eficiente y contrastada. Por otra
encontradas entre el rendimiento superescalar en procesadores
x86 y no-x86 y las caractersticas peculiares de la arquitectura
parte, los grafos ya han sido aplicados con xito al estudio de
del repertorio x86 recomiendan realizar un estudio exhaustivo otros aspectos de la computacin como, por ejemplo, el
del paralelismo disponible en la capa del lenguaje mquina. paralelismo de grano medio o grueso obtenido por los
Partiendo de nociones bsicas de la teora de grafos se introducen compiladores [3, 4, 5, 6].
conceptos nuevos tales como la valencia reducida para llegar a la Se ha constatado una significativa diferencia entre el
matriz de dependencias de datos D que caracteriza grado de paralelismo de grano fino para procesadores x86 y el
matemticamente una secuencia de cdigo. Dicha matriz cumple resto. Esto nos ha llevado a pensar que quiz se ha
una serie de propiedades y restricciones y aporta gran minimizado el impacto de la arquitectura del repertorio de
informacin acerca de la capacidad del cdigo para ser
instrucciones sobre el paralelismo de grano fino disponible, y
procesado concurrentemente. Las diferentes fuentes de
dependencias de datos se pueden componer facilitando un modo
se ha prestado atencin tan slo a aspectos fsicos.
de analizar su influencia final en el grado de paralelismo. En la literatura se pueden encontrar numerosos estudios
identificando factores limitantes, cuantificando sus efectos,
Palabras clave-Evaluacin de arquitecturas de computadores, aportando posibles soluciones y evaluando los resultados.
paralelismo a nivel de instruccin (ILP), arquitectura del Entre los factores evaluados tenemos: el flujo de control [7, 8,
repertorio de instrucciones, teora de grafos, cuantificacin 9, 10, 11], el tamao de la ventana de instrucciones [12], las
basada en DDG. interrupciones precisas [13], la desambiguacin de memoria
[14], la ocupacin de unidades de ejecucin [15], la presin
I. INTRODUCCIN: NUEVOS RETOS EN EVALUACIN DE LA sobre el banco de registros [16], la prediccin de datos [17,
ARQUITECTURA DE COMPUTADORES 18], el impacto de los programas de test [19] o la liberacin
La evaluacin cuantitativa es un punto crucial en la temprana de registros [20], por citar algunos. Todos estos
investigacin de arquitecturas de computadores. La trabajos tienen en comn que presentan procesadores no-x86,
simulacin se ha convertido en la primera herramienta de que la evaluacin se ha realizado mediante simuladores y que
evaluacin. Sin embargo, la construccin de buenos los factores limitantes identificados se refieren siempre a la
simuladores y la seleccin de cargas de trabajo adecuadas son capa fsica. Los resultados IPC promedio referidos se
tareas formidables. Skadron explica cmo estas dificultades encuentran en el rango 2,5-15 con picos alrededor de 30 IPC
han empujado a trabajar en temas donde las herramientas (vase la desambiguacin de memoria [14]).
tienen una calidad contrastada, lo que ha llevado al abandono Los trabajos donde se ha utilizado procesadores x86 son
de materias interesantes como el multiprocesamiento [1]. menos frecuentes y los niveles de paralelismo referidos no son
Feitelson seala que para comparar sistemas se confa en las tan buenos. El grupo de Y. N. Patt ha propuesto varias mejoras
medidas del rendimiento sin reparar en que la propia sobre procesadores x86 alcanzando unos resultados IPC
metodologa de evaluacin puede ocasionar diferencias. promedio que estaban comprendidos entre 0,5 y 3,5, siendo la
Concretamente, concluye que la mtrica y la carga de trabajo mayor parte de los valores ligeramente mayores que la unidad
pueden afectar a los resultados ya que son susceptibles de [21, 22]. Huang y Xie midieron el paralelismo a nivel de
interactuar entre s [2]. microoperaciones (MLP). El MLP promedio result ser 1,32
El modelado analtico contribuye a comprender aspectos sin renombramiento y 2,20 con renombramiento [23].
que no son detectables mediante simulacin. Es ms, puede Bhandarkar y Ding caracterizaron el rendimiento del Pentium
servir para validar el simulador y para predecir el Pro facilitando un CPI para los SPECint95 en el rango 0,75 a
comportamiento de algunas propuestas. Tal y como ocurre en 1,6 [24].
otros campos de investigacin, la formalizacin matemtica Con el fin de asegurar la compatibilidad binaria, lo cual
facilita la descripcin de los fenmenos, permite predecir ha proporcionado innegables beneficios, la arquitectura del
repertorio de instrucciones x86 ha heredado caractersticas
perjudiciales en el mbito del procesamiento superescalar, a
Este trabajo ha sido financiado en parte por el Vicerrectorado de
Investigacin de la Universidad de Alcal bajo el Proyecto UAH PI2005/072.
saber: el uso dedicado de registros, los operandos implcitos
R. Durn y R. Rico pertenecen al Departamento de Automtica de la (ligados a la operacin y no especificados en el formato), el
Universidad de Alcal, Espaa (e-mail: raul.duran@uah.es; rafael.rico@uah.es).
292 IEEE LATIN AMERICA TRANSACTIONS, VOL. 4, NO. 4, JUNE 2006

uso de registro de estado y el gran nmero de registros reglas de construccin que permiten incorporar las
involucrados en la aritmtica de direcciones. Estas especificaciones hardware [30, 19, 31].
caractersticas indeseables se manifiestan en una sobre- Hay que sealar tambin que el anlisis estadstico no se
ordenacin del cdigo en la capa del lenguaje mquina que no adapta convenientemente al comportamiento a rfagas de
se deriva del significado computacional de la tarea compilada. muchos aspectos de la computacin. Generalmente se dan
En consecuencia, las instrucciones llegan a la capa fsica ms valores promedio o se usa la desviacin estndar sin
acopladas de lo que originalmente correspondera observando considerar que raras veces los eventos medidos se ajustan a
el programa de alto nivel. una distribucin de Gauss.
En general, la arquitectura de los repertorios de
instrucciones tiene un impacto significativo en el paralelismo II. REPRESENTACIN DE SECUENCIAS DE INSTRUCCIONES
de grano fino disponible incluso antes de llegar a la capa fsica MEDIANTE GRAFOS
ya que disminuyen el ILP que puede ser explotado en ejecucin. Las dependencias de datos en una secuencia de
La Fig. 1 ilustra los factores que afectan al paralelismo disponible instrucciones pueden ser representadas mediante un grafo
en cada capa del proceso de computacin. G(V, E), donde V es el conjunto de vrtices y E es el conjunto
capa de programa de arcos. Cada vrtice en V representa una instruccin y cada
impacto del compilador arco en E una dependencia de datos. Dos vrtices relacionados
capa del lenguaje mquina por un arco se dice que son adyacentes. La topologa de un
impacto de la arquitectura
del repertorio de instrucciones grafo puede representarse mediante la matriz de adyacencia A:
capa fsica
1, si los vrtices i y j son adyacentes;
factores hardware aij = (1)
Fig. 1. Factores que afectan al paralelismo disponible en las diferentes capas 0, en el resto
del proceso de computacin. La matriz A es simtrica de dimensin n x n donde n es el
En la actualidad, los estudios acerca de la arquitectura del nmero de instrucciones en el grafo, con la diagonal nula y
repertorio de instrucciones son escasos y colaterales [25, 26]. aij{0, 1} [32, 33]. Definimos la matriz de incidencia B como:
En cuanto a los trabajos centrados en el repertorio x86, los 1, si el arco e j incide sobre el vrtice vi ;
anlisis en la capa del lenguaje mquina se limitan a realizar bij = (2)
recuentos y calcular frecuencias de uso sin profundizar en el 0, en el resto
anlisis de las dependencias de datos [27, 28, 23]. Este grafo admite dos posibles orientaciones: aquella en la
La mtrica empleada habitualmente en la cuantificacin que la instruccin i produce datos para j (identificada por ) o
del paralelismo a nivel de instruccin se conoce por el acrnimo aquella en la que la instruccin j consume datos (depende) de i
IPC (cociente entre el recuento de instrucciones y el tiempo de ( ). En cada una los arcos apuntan en sentidos opuestos con un
ejecucin en ciclos) y para medirlo con precisin se requieren significado complementario: la primera orientacin muestra el
simuladores complejos en los que las suposiciones y flujo de datos mientras que la segunda manifiesta las
simplificaciones de modelizacin afectan significativamente al dependencias de datos. As, podemos definir la matriz de
resultado final. Los resultados dependen fuertemente de la incidencia B con respecto a la orientacin , como la matriz n x m:
caracterizacin de la implantacin fsica.
+ 1, si vi es el extremo entrante de e j ;
Un mtodo de medida alternativo es el basado en los
grafos de dependencias de datos (DDG). Se trata de construir bij = 1, si vi es el extremo saliente de e j ; (3)

los DDG a partir de secuencias de cdigo y calcular la 0, en el resto
longitud del camino crtico. La caracterizacin es Definimos valencia de un vrtice como el nmero total de
independiente de la implantacin fsica porque se sita en un
arcos que inciden en dicho vrtice. La matriz de valencias es
escaln anterior en el proceso de computacin: en la capa del una matriz n x n diagonal donde la componente (i, i) es la
lenguaje mquina, incorporando el impacto del proceso de valencia del vrtice i. La relacin entre la matriz de adyacencia
compilacin y de la propia arquitectura del repertorio de
y la de incidencia para una orientacin viene dada por:
instrucciones.
La cuantificacin basada en DDG es una potente Q = B ( B ) t = A (4)
herramienta de anlisis cuando se utiliza la representacin t
matricial ya que permite el procesamiento matemtico. As, El producto B (B ) se conoce como matriz Laplaciana Q
adems de la longitud del camino crtico, podemos determinar y es independiente de la orientacin. La representacin de grafos
el grado de paralelismo de una secuencia de instrucciones, la basada en la matriz de adyacencia A cuenta con el valor aadido
reutilizacin o comparticin de los datos, el tiempo de vida de de las propiedades del polinomio caracterstico [32, 33].
los operandos, las principales fuentes de dependencias, la A. Valencia reducida
distribucin del paralelismo y otros aspectos relevantes.
Definimos valencia reducida de un vrtice como el
El anlisis de los DDG ha sido utilizado previamente de nmero total de arcos que entran a dicho vrtice. La valencia
manera espordica. Kumar realiz un estudio en la capa de reducida depende, por tanto, de la orientacin seleccionada.
programa obteniendo un grado de paralelismo muy superior al La matriz de valencias reducida a la orientacin , V, es
que luego encontramos en la capa fsica [29]. Este resultado una matriz n x n diagonal donde la componente (i, i) es la
refuerza nuestra idea de que el proceso de computacin valencia reducida a la orientacin del vrtice i.
degrada el paralelismo disponible. Tambin se ha usado para Igualmente cabe pensar en una definicin especial para la
evaluar caractersticas de la capa fsica aplicando ciertas matriz de incidencia considerando una nica orientacin. As
DURN AND RICO : ON APPLYING GRAPH THEORY TO ILP ANALYSIS 293

podemos definir la matriz de incidencia reducida I con Nosotros pretendemos extraer, adems, consecuencias en el
respecto a la orientacin , como: mbito del procesamiento paralelo de instrucciones.
+ 1, si vi es el extremo entrante de e j ; En lo sucesivo, denominaremos etiquetado a la lista de
iij = (5) identificadores de los vrtices de un grafo.
0, en el resto El etiquetado de los vrtices no debe afectar a las
Si el grafo tiene n vrtices y m arcos, la dimensin de I propiedades de la matriz D. La matriz D puede asociarse a
es n x m. un grafo que consta de un conjunto V de vrtices, un conjunto
Proposicin 1: el producto I (I)t genera la matriz de E de arcos y una relacin de incidencia en un subconjunto de
valencias reducida V para la orientacin seleccionada. V x E. El conjunto {v0, v1, , vn-1} corresponde a un etiquetado
Demostracin: Si calculamos la componente del producto: arbitrario de los vrtices. Por lo tanto, las propiedades de las

[I ( )]
m 1 matrices asociadas al grafo deben ser invariantes frente a
= iik ijk
t
I ij
(6) permutaciones de filas y columnas en funcin del etiquetado.
k =0
En el mbito del paralelismo a nivel de instruccin,

Ahora bien, iik i jk 0 si y solo si i = j, pues cada arco partimos de una serie de instrucciones que conservan la

incide sobre un nico vrtice. Adems, como iik {0, 1}, se secuencialidad del modelo de programacin de Von Neumann
2
cumple ( iij ) = iij : fijado por el estricto orden de precedencia en el que estn
escritas en el programa. El etiquetado original de los vrtices
m 1 n de extremos
[I
( )]
I
t
ij
iik =
= k = 0 entrantes si i = j; (7)
del grafo es el que induce el propio contador de programa. A
este etiquetado le llamaremos etiquetado programtico.
0, si i j
Entre los vrtices del DDG existe una relacin de precedencia.
Resultado que coincide con la definicin de la matriz de Cualquier tarea computable conlleva alguna relacin de
valencias reducida a una nica orientacin. precedencia u ordenacin parcial entre las tareas
(instrucciones) a realizar, propia de un proceso que se
V = I ( I )t (8)
desarrolla en una sucesin ordenada y finita de pasos. Es
La matriz de incidencia se puede construir a partir de las consustancial al algoritmo un ordenamiento que, a veces, se
de incidencia reducida y la de valencia a partir de las de acenta al pasar de una capa a otra en el proceso de computacin:
valencia reducida: del algoritmo al programa, del programa a la imagen
compilada y del cdigo mquina a la capa fsica (ver Fig. 1).
B = I I (9) Una instruccin no depende de s misma. Un dato no
=V +V (10) puede tener la misma instruccin como fuente y como destino.
Los valores de la matriz de valencia reducida V Como consecuencia de esto, la matriz D tiene la diagonal
corresponden a la suma por filas de las componentes de I lo cual nula. Es decir, d ii = 0 0 i n 1 .
se ajusta a lo expresado en (7). La interpretacin es inmediata: si Las dependencias de datos no son simtricas. Una
la valencia reducida es el total de extremos entrantes a cada instruccin no puede depender de otra que depende de ella al
vrtice bastar con practicar un recuento por filas de la matriz I mismo tiempo ya que esta situacin no establece una relacin
para calcularlo. Lo mismo ocurre para la orientacin contraria . de precedencia sino un ciclo de dependencias de datos. Por
tanto, la matriz D no es simtrica: d ij d ji = 1 i, j n 1 .
B. La matriz de dependencias de datos D Y si no es simtrica, el polinomio caracterstico asociado a
Definimos la matriz de dependencias de datos D como: cualquier matriz D p(G; ) = det ( I D), sea cual sea la
relacin de incidencia, es siempre el mismo: p(G; ) = n. El
1, si la instruccin i depende de j ; valor descriptivo de este polinomio es muy pequeo.
d ij = (11)
0, en el resto Existe un etiquetado de los vrtices del grafo bajo el cual
donde la instruccin i  est asociada con un vector de la matriz D es triangular inferior. Una instruccin depende
dependencias de datos d i cuya j-sima componente es 1 si slo de las precedentes en el programa, nunca de las
existe dependencia directa con la instruccin j a travs de siguientes (principio de causalidad). Segn esto, el etiquetado
algn dato y 0 en caso contrario. programtico de los vrtices del grafo genera una matriz D
La matriz D representa el camino de dependencia de triangular inferior ya que dij = 0 siempre que j > i pues una
datos directo o de longitud unidad, es decir, representa la instruccin no puede tener dependencias de datos con las
relacin directa entre la instruccin i que consume un dato siguientes. A la matriz de dependencias de datos cuyo etiquetado
directamente generado por la instruccin j, sin intermediarios. de vrtices la convierte en triangular inferior la denominaremos
As la matriz D valora el arco solamente en el extremo forma cannica de D o matriz D cannica (Dc).
positivo mientras que la matriz A valora ambos extremos. D. La matriz de dependencias de datos y la matriz de adyacencia
C. Propiedades topolgicas y restricciones en ILP para la Existe una relacin inmediata entre la orientacin que
matriz de dependencias de datos genera el grafo de dependencias de datos y la que genera el grafo
Uno de los objetivos del lgebra de la teora de grafos es de flujo de datos. Ambos comparten el mismo conjunto de arcos
determinar de manera precisa cmo se reflejan las propiedades variando nicamente la orientacin. Podemos asegurar que si i
de los grafos en las propiedades algebraicas de esas matrices. depende de j entonces j produce datos para i. Se cumple que
294 IEEE LATIN AMERICA TRANSACTIONS, VOL. 4, NO. 4, JUNE 2006

si (dij) = 1 bajo una orientacin ( d ji ) = 1 bajo la contraria, lo



matriz D para calcular los recuentos de arcos entrantes,
cual corresponde a la definicin de matriz traspuesta. permitiendo redefinir la matriz de valencia reducida:
Como la matriz de adyacencia A valora ambos extremos n1
de cada arco entonces es igual a: d ik = n de arcos si i = j;
vij = k =0 (19)
A = D + Dt (12) 0, si i j

A partir de D podemos construir la matriz A y recuperar
la potencia descriptiva asociada a su polinomio caracterstico. F. Acoplamiento del cdigo
E. La matriz de dependencias de datos y la valencia reducida El concepto de valencia reducida es muy til en el mbito
Que la matriz D valore nicamente un extremo de cada del procesamiento paralelo de instrucciones. Recurdese que
arco sugiere alguna relacin con la valencia reducida. Ha de si la orientacin es aquella en la que los arcos entrantes sealan
ser as pues en ambas subyace el mismo grafo: en I el consumo de los datos (grafo de flujo de datos), la valencia
relacionando arcos y vrtices mientras que en D se relacionan reducida cuantifica lo acoplada que se encuentra una instruccin
vrtices con vrtices. La misma formalizacin matemtica que con las dems. Una valencia reducida grande indica que una
hemos desarrollado apunta en la misma direccin ya que (9), instruccin consume datos procedentes de varias instrucciones
(10) y (12) sugieren una relacin entre la matriz D y la y que, por tanto, debe esperar a que todos ellos estn disponibles
incidencia reducida I a travs de (4). para poder ejecutarse. Consecuentemente, si el acoplamiento es
t grande se establecen ms relaciones de precedencia y la
Proposicin 2: el producto I I genera la matriz D.
ordenacin parcial del cdigo es potencialmente mayor
Demostracin: Si calculamos la componente del producto:
disminuyendo el paralelismo disponible.
[I
( ) ] = i
I
t
ij
m 1

ik ijk (13) La diagonal de la matriz de valencias reducida para la
k =0 orientacin correspondiente al grafo de flujo de datos (V) nos
donde el sumatorio recorre todos los arcos segn el ndice k. informa del acoplamiento que tiene cada instruccin.
El producto es distinto de cero nicamente para el k-simo arco La traza de la matriz de valencias reducida para la

si entra en el vrtice i ( iik = 1) saliendo del vrtice j o, lo que es orientacin correspondiente al grafo de flujo de datos es el

igual, entrando al vrtice j bajo la orientacin contraria ( i jk = 1). nmero total de arcos, es decir, nos da informacin de lo
Y esto coincide con la definicin de D que damos en (11). acoplada que est una secuencia de cdigo y lo denominamos
m 1 acoplamiento C:
i i
k =0
ik jk = dij (14)
C = tr V (20)
De donde: Ya hemos sealado que existe un etiquetado de los
t (15) vrtices segn el cual la matriz D es triangular (forma
D = I I cannica Dc). En ese caso y sabiendo que la diagonal es nula:

Ya se ha visto cmo la valencia reducida para una i 1
vij =
orientacin se puede obtener haciendo el recorrido por filas d cik = n de arcos si i = j 0; (21)
k =0
contando los extremos entrantes (componente igual a 1) tal y
0, en el resto
como sugiere (7). Dada la relacin que establece la
Proposicin 2 entre D e I cabe pensar en utilizar la matriz D El acoplamiento C ser:
n 1 n 1 i 1
para encontrar la valencia reducida.
C = trV = vii = d cik (22)
Proposicin 3: el recuento de arcos recorriendo la matriz D i =0 i =1 k = 0
por filas permite generar la matriz de valencia reducida para la
y est acotado por:
orientacin del grafo de flujo de datos.
Demostracin: Supongamos que la relacin es cierta y n
0 C (23)
sustituyamos la componente de D por su valor segn (14): 2
n 1 n 1 m 1 Con el fin de obtener una medida del acoplamiento
vii = d ip = iik ipk (16) independiente de la cantidad de instrucciones en la secuencia,
p=0 p=0 k =0
definimos acoplamiento normalizado, CN, como el cociente
Podemos intercambiar los sumatorios sin que se altere el entre C y el nmero de instrucciones n de la secuencia. Cuando
resultado y sacar el trmino que no depende de los ndices: CN es nulo no hay ninguna dependencia mientras que en el peor
m 1 n 1 m 1 n 1 de los casos cada instruccin depende de todas las
vii = iik ipk = iik ipk (17) precedentes.
k =0 p =0 k =0 p =0
n 1
Ahora bien, dado el k-simo arco solamente hay un 0 CN (24)
2
vrtice sobre el que tenga un extremo entrante y se cumple:
G. Reutilizacin de datos y tiempo de vida
m 1
v ii = i ik (18) Si la orientacin es la opuesta (grafo de dependencias
k =0
de datos), la valencia reducida cuantifica la reutilizacin de
que se corresponde con (7) y demuestra la equivalencia entre los datos. Si los datos generados por una instruccin son
efectuar el recorrido por filas en la matriz I y hacerlo en la utilizados por otras muchas entonces crece la probabilidad de
DURN AND RICO : ON APPLYING GRAPH THEORY TO ILP ANALYSIS 295

que sea necesario conservarlos algn tiempo consumiendo que pasa a travs de, al menos, una de las instrucciones
recursos de almacenamiento. presentes en el grafo si se cumple:
La diagonal de la matriz de valencias reducida para la n 1

orientacin correspondiente al grafo de dependencias de datos (d i0 d 0 j ) +  + (d in 1 d n 1 j ) = (d ik d kj ) 0 (26)


k =0
( V ) nos informa de la reutilizacin de los datos producidos
que corresponde a la componente (i, j) de la matriz producto
por cada instruccin: cuando su valor es 0 el dato no es
D D. Segn esto, la matriz D2 representa los caminos de
consumido mientras que cuando su valor es 1 indica que cada
dependencias de datos de longitud 2.
dato generado por una instruccin nicamente se consume en
otra. Sin reutilizacin, el tiempo de vida de los datos en los Dl representa los caminos de dependencias de datos de
elementos de almacenamiento es mnimo. Existe una situacin longitud l (arcos). Generalizando, cada potencia de la matriz
especial que se produce cuando todos los valores no nulos de D representa los caminos de dependencias de longitud igual al
la diagonal de V son iguales a 1. Esta situacin se ilustra en grado de la potencia. Dicho de otra forma, el nmero de
caminos de dependencias de datos de longitud l en G(V, E),
la Fig. 2.(a). Matemticamente se manifiesta en que el
producto D Dt genera una matriz diagonal que coincide con segn una orientacin , desde vi hasta vj es el valor de la
componente (i, j) de la matriz Dl. En [32] encontramos una
V. La explicacin es inmediata: para los elementos de fuera
demostracin de esto basada en la matriz de adyacencia A que
de la diagonal todos los productos dik djk se anulan ya que si
puede extenderse al caso de la matriz de dependencias de
la instruccin i depende de la k ninguna otra depender de k.
datos D. Ntese que la longitud se mide en arcos.
Que el valor de la reutilizacin sea mayor que 1 significa
que varias instrucciones consumen un mismo dato. Bajo esta La n-sima potencia de D es nula. La longitud mxima de
circunstancia, resulta interesante conocer el tiempo de vida un camino de dependencias de datos es n 1 (arcos) siendo n
(almacenamiento) de los datos. En la Fig. 2.(b) y (c) se el nmero de instrucciones de la secuencia de cdigo. De esta
ilustran dos posibles situaciones. En ambos casos la manera, Dn ser nula necesariamente.
instruccin 0 genera datos para la 1 y la 2. En el caso (b) los No hay ciclos de dependencias. No hay caminos de
datos son consumidos en el siguiente paso de computacin dependencias cerrados (ciclos) ya que en tal caso no se
mientras que el caso (c) no es posible ya que existe un camino establecera una relacin de precedencia y, consecuentemente,
de dependencias de longitud 2 que relaciona tambin la el grafo es acclico pues en un ciclo una instruccin
instruccin 2 con la 0. Deducimos que el tiempo de vida de un dependera de s misma a travs de otras y eso significara que
dato producido por i y consumido por j debe ser al menos una tarea no tiene solucin en un nmero finito de pasos.
igual al camino de dependencias ms largo entre ambos. Por Algebraicamente una instruccin no puede depender de s
esa razn hablaremos de tiempo de vida mnimo tmn. misma bajo ningn camino de longitud l. Por tanto, la
diagonal de cualquier potencia de la matriz de dependencias
{
timin = max 0, k j : D
1 j n
[ ] kj
ij [
0, D
k j +1
] ij }
=0 (25) (Dl) es nula: d lii = 0 1 l n 1.
I. Longitud del camino crtico y grado de paralelismo
El caso de la Fig. 2.(d) nos hace ver que este tiempo
depende finalmente de los criterios de planificacin (capa Uno de los datos ms importantes que podemos extraer
fsica) ya que la instruccin 1 puede planificarse un paso de de las matrices de dependencias de datos es el grado de
computacin antes que la instruccin 3 o a la vez que la 0 con lo paralelismo a nivel de instruccin del que disponen las
que el tiempo de almacenamiento sera de 2 pasos de computacin. secuencias de cdigo por ellos representadas. Dicha
informacin es independiente de las limitaciones que
0 0 0 0 posteriormente pueda imponer la capa fsica. Es un dato que
1 1 2 1 1 2
atae slo a la capa del lenguaje mquina y que tiene que ver
con el algoritmo empleado, la plasmacin del mismo en un
2 3 2
3 programa, la influencia del compilador y la propia
3 3 arquitectura del repertorio de instrucciones.
a) b) c) d) El paralelismo disponible est inversamente relacionado
Fig. 2. Diferentes tipos de reutilizacin de datos. con la longitud de las cadenas de dependencias entre
instrucciones. Cuanto ms largas son estas cadenas ms fuerte
H. Caminos de dependencias de datos de longitud mayor que 1 es la ordenacin parcial de la secuencia de cdigo imponiendo
Por definicin, un camino de longitud l (arcos) en un una ejecucin muy secuencial de las instrucciones con
grafo G(V, E), desde el vrtice vi hasta el vj, es una secuencia capacidad limitada de procesamiento concurrente. Por el
finita de l + 1 vrtices distintos que comienza en vi y termina contrario, las cadenas de dependencias cortas implican un
en vj tal que dos vrtices consecutivos son adyacentes [32, 33]. ordenamiento dbil entre instrucciones susceptible de ser
La matriz de dependencias de datos D muestra los aprovechado para la ejecucin concurrente.
caminos de dependencias de longitud 1 o dependencias Definimos longitud del camino crtico L(D)
directas entre instrucciones. Sin embargo, existen cadenas de (abreviadamente L) de una secuencia de cdigo representada
dependencias de datos entre instrucciones de longitud mayor. por su matriz D, como la longitud del camino de dependencias
Por ejemplo, si dij = 1 y djk = 1 entonces la instruccin i ms largo. Existen dos mtricas: la cuantificacin en arcos
depende de k a travs de la j con un camino de longitud 2. En expuesta en la Seccin II.H conforme a la teora de grafos
general, podemos afirmar que existe un camino de tradicional y la cuantificacin en pasos de computacin ms
dependencias de longitud 2 desde la instruccin i hasta la j propia del mbito ILP. Si la longitud del camino crtico L
296 IEEE LATIN AMERICA TRANSACTIONS, VOL. 4, NO. 4, JUNE 2006

involucra l + 1 vrtices, entonces dicho camino tiene l arcos y anlisis automtico de secuencias de cdigo. Consiste en
el nmero mnimo de pasos de computacin requeridos para establecer la precedencia entre instrucciones en funcin de sus
procesar la secuencia de cdigo asociada es l + 1. dependencias. En cada paso de computacin hacemos un
Si Dl representa los caminos de dependencias de datos de listado de las instrucciones no dependientes y liberamos de
longitud l (arcos) la primera potencia nula de D seala la dependencias a aquellas a las que entregan datos. Todas las
longitud del camino crtico. Esto es: instrucciones que pertenecen a la lista de un paso de
L = l pasos de computacin si y slo si Dl = 0 (27) computacin comparten el mismo nivel de precedencia y, por
tanto, pueden procesarse de forma concurrente. El nmero de
Bajo esta mtrica L est acotado as: pasos de computacin requerido para ordenar todas las
1Ln (28) instrucciones es la longitud del camino crtico. Por otra parte,
La longitud L mnima es 1: no existen dependencias de la ordenacin topolgica obtenida establece una lista de
datos entre las instrucciones y, en caso de que los recursos planificacin de las instrucciones que puede utilizarse para
disponibles lo permitan, se pueden procesar todas de forma asignar recursos fsicos. Seguidamente se muestra el
concurrente en un nico paso de computacin. El valor pseudocdigo de este algoritmo.
mximo de L es n: slo es posible lanzar una instruccin en /* Procedimiento de ordenacin topolgica */
1: GIVEN: paso de computacin inicial, paso = 0; lista
cada paso de computacin (total secuencialidad) requiriendo n de instrucciones para el paso p, Lista(p); matriz de
pasos para finalizar el procesamiento del cdigo. dependencias D;
Cuantas ms instrucciones se incluyan en el DDG la 2: while (quedan instrucciones por ordenar)
longitud del camino crtico L ser potencialmente mayor. Con 3: {
4: while (quedan instrucciones no dependientes)
el fin de obtener una medida de paralelismo independiente de 5: {
la cantidad de vrtices del grafo, definimos la longitud del 6: Lista(p) = AadirIndependienteListaPaso(p);
7: }
camino crtico normalizada, LN, como el cociente entre la 8: EliminarDependencias (Lista(p), D);
longitud del camino crtico, L, expresada en pasos de 9: paso ++;
10: }
computacin, y el tamao de la ventana de instrucciones, n,
resultando que cuando LN vale 1 no hay paralelismo mientras Alg. 1. Algoritmo de ordenacin topolgica.
que, por el contrario, el paralelismo encerrado en el cdigo
ser mayor cuanto ms se aproxime su valor a 0. III. COMPOSICIN DE FUENTES DE DEPENDENCIAS
1 Si una secuencia de cdigo puede representarse por la
LN 1 (29)
n matriz D y sta es una formalizacin de la ordenacin parcial
Tambin definimos el grado de paralelismo, Gp, como el encerrada en el cdigo, podemos analizar con precisin el
recproco de LN, (Gp = LN-1), expresado en pasos de computacin, impacto de las diferentes fuentes de dependencias ya que estas
e indica el nmero de instrucciones que se pueden procesar de se componen de una manera sencilla para generar el mapa de
forma concurrente en cada paso de computacin. As, Gp va dependencias final. Si Ds1 es la matriz debida a una fuente de
desde 1 (ausencia de paralelismo) hasta n (mximo grado de dependencias y Ds2 es la matriz debida a otra fuente de
paralelismo). dependencias, la matriz D resultante ser:
1 G p n. (30) D = Ds1 OR Ds2 (31)
Ya que Gp es funcin del nmero de instrucciones en la De otra manera, dij = d s1ij OR d s 2 ij significa que la
secuencia, es razonable pensar que segn se incrementa n instruccin i depende de la j si depende por la causa 1 o si
tambin crece Gp: a ms instrucciones mayor potencial de depende por la causa 2 o por ambas causas.
paralelismo. Siguiendo esta lgica, las ventanas de La matriz de dependencias de datos resultante no admite
instrucciones de algunos procesadores superescalares se han el proceso de descomposicin, que nos permitira realizar un
hecho mayores en la esperanza de encontrar ms instrucciones anlisis preciso del impacto de cada fuente de dependencias
listas para ser ejecutadas simultneamente. Por contra, Wall de datos, ya que el solapamiento de dependencias no permite
hall un comportamiento asinttico: llega un momento en que, identificar, conociendo la matriz final, su procedencia.
a pesar de examinar ms instrucciones, no se consiguen ms A. Algunas composiciones posibles
instrucciones sin dependencias de datos [12]. La longitud de
Una primera composicin sera la de dependencias
las cadenas de dependencias crece con la secuencia de cdigo
verdaderas, dependencias de salida y antidependencias:
ya que los recursos lgicos de la arquitectura software del
repertorio de instrucciones son limitados. D = Dverdaderas OR Dsalida OR Dantidependencias (32)
Esto nos permite distinguir el tipo de dependencia de
J. Calculo algortmico de la longitud del camino crtico datos y predecir si tiene relevancia computacional (las
El clculo de las sucesivas potencias de la matriz D nos verdaderas) o slo es debida a la reutilizacin del
permite determinar la longitud del camino crtico mediante un almacenamiento fsico (las de salida y antidependencias).
procedimiento algebraico segn (27). Sin embargo, este No obstante, es posible un anlisis ms fino
mtodo tiene una complejidad O(n4) y se hace impracticable. diferenciando las posibles fuentes de dependencias de datos:
El algoritmo de ordenacin topolgica de un grafo D = Ds1 OR Ds2 OR Ds3 OR (33)
(ordenacin parcial de la secuencia de cdigo) sirve tambin Estas fuentes de dependencias de datos pueden ser:
para hallar la longitud del camino crtico. Este procedimiento  limitacin en la cantidad de registros visibles al
tiene una complejidad O(n3) que lo hace ms atractivo para el programador
DURN AND RICO : ON APPLYING GRAPH THEORY TO ILP ANALYSIS 297

 reutilizacin de registros Se muestra cmo las diferentes fuentes de dependencias


 uso de operandos implcitos de datos se pueden componer permitiendo un anlisis preciso
 escrituras de cdigos de condicin del impacto de cada una sobre el grado de paralelismo final.
 procesamiento de direcciones de memoria El modelo analtico propuesto se ha aplicado a la
 trfico con la pila, etc. evaluacin de algunos aspectos de la arquitectura del
Todas ellas pueden ser consideradas, adems, en sus tres repertorio x86 y se ha obtenido informacin valiosa [34].
variantes: verdaderas, antidependencias y de salida. Asimismo, en la nota tcnica UAH-AUT-GAP-2005-01 se
presentan ejemplos con secuencias de cdigo reales [35].
B. Longitud del camino crtico de la composicin
En posteriores trabajos se estudiar la contribucin de
Todas las propiedades y tratamientos propuestos para la cada una de las fuentes de dependencias analizando su
matriz D se pueden realizar para cada una de las fuentes de comportamiento sobre un conjunto mayor de programas.
dependencias de datos (Dsn). Tambin parece posible extender el uso de los grafos para
Es interesante considerar qu sucede con la longitud del modelar las limitaciones de la capa fsica y los procesos de
camino crtico de la matriz resultante. El grafo resultante no asignacin-planificacin.
tiene una longitud de camino crtico necesariamente igual a la Aunque desde un punto de vista estrictamente
suma de los caminos de sus componentes ya que las cadenas algortmico, la representacin matricial no es la ms eficiente,
de dependencias de datos se pueden solapar. No es posible, presenta la ventaja de ser la ms fcil de obtener a partir de las
por tanto, determinar de manera directa la longitud de la trazas de ejecucin. As pues, como parte de futuros trabajos,
composicin en funcin de las componentes: es necesario se pretenden desarrollar algoritmos ms eficientes para la
conformarse con acotar los resultados. obtencin de los resultados.
En cuanto al lmite superior, sabemos que la longitud final
est acotada por el nmero de instrucciones presentes en el
grafo. Tambin podemos afirmar que la longitud del camino V. AGRADECIMIENTOS
crtico de la composicin nunca ser mayor que la suma de los
caminos de las componentes asumiendo el caso ms Los autores quieren agradecer los comentarios de los
desfavorable en el que todas ellas contribuyeran a crear cadenas revisores ya que representaron una valiosa ayuda en la
de dependencias de datos. Por tanto, el lmite superior (en pasos elaboracin final de este trabajo.
de computacin) vendr dado por el mnimo de ambos:

min L( Dsi ), n L ( D ) (34) VI. REFERENCIAS
i [1] K. Skadron, M. Martonosi, D. I. August, M. D. Hill, D. J. Hill and V. S.
Pai. Challenges in Computer Architecture Evaluation, IEEE Computer,
El lmite inferior nunca ser menor que el de la vol. 36, 8, August, 2003.
componente de mayor camino crtico, asumiendo que todos [2] D. G. Feitelson. Metric and Workload Effects on Computer Systems
los dems se solapan con l, es decir, que no se producen Evaluation, IEEE Computer, vol. 36, 9, September, 2003.
dependencias cruzadas. Formalmente: [3] A. V. Aho and J. Ullman. Foundations of Computer Science. Computer
Science Press, 1992.
L( D) max{L( Dsi )} (35) [4] D. A. Padua and M. J. Wolfe, Advanced Compiler Optimizations for
i Supercomputers, Communications of the ACM, 29(12), December 1986.
En definitiva, la longitud del camino crtico de la matriz [5] M. Wolfe. High Performance Compiler for Parallel Computing. Addison-
Wesley, CA, 1996.
D compuesta L(D) es un nmero acotado en el rango: [6] H. Zima and B. Chapman. Supercompilers for Parallel and Vector
Supercomputers, ACM Press Frontiers Series, 1990.

min L( Dsi ), n L( D) max{L( Dsi )} (36) [7] S. McFarling, Combining Branch Predictors, W.R.L. Technical Note TN-
i i 36. Digital Equipment Corporation. Palo Alto, CA. June 1993. Available
at: http://www.research.compaq.com/wrl/techreports/index.html.
L(D) siempre ser igual o mayor que el mayor camino de [8] M. Lam and R. Wilson. Limits of Control Flow on Parallelism, in Proc.
dependencias de las componentes y siempre ser menor o of the 19th Annual Intl Symp. on Computer Architecture, 1992, pp. 46-56.
igual a la suma de las longitudes con el lmite n del nmero de [9] A. Ramirez, J. L. Larriba-Pey and M. Valero, The effect of code
reordering on branch prediction, in Proc. Intl Conference on Parallel
instrucciones presentes en la secuencia de cdigo. Architectures and Compilation Techniques, pages 189-198, October 2000.
[10]E. M. Riseman and C. C. Foster, The inhibition of potential parallelism by
IV. CONCLUSIONES Y TRABAJO FUTURO conditional jumps, IEEE Transactions on Computers, vol. C-21, 1972.
[11]M. Smith, M. Johnson and M. Horowitz. Limits on Multiple Instruction
Se ha propuesto un modelo de anlisis aplicable al Issue, in Proc. of the 3rd Intl Conference on Architectural Support for
proceso de computacin en la capa del lenguaje mquina que Programming Languages and Operating Systems, 1989, pp. 272-282.
permite evaluar cuantitativamente el impacto tanto de la [12]D. W. Wall, Limits of instruction-level paralelism, in Proceedings of the
Fourth International Conference on Architectural Support for
arquitectura del repertorio de instrucciones como del propio Programming Languages and Operating Systems, pp. 176-188, April 1991.
procedimiento de compilacin. [13]M. Butler, Tse-Yu Yeh, Y. Patt, M. Alsup, H. Scales and M.Shebanow.
Se han identificado las propiedades topolgicas y Single Instruction Stream is Greater than Two, in Proc. of the 18th
restricciones que ha de cumplir la matriz D en el mbito ILP y Annual International Symposium on Computer Architecture, 1991, pp. 163-174.
[14]K. B. Theobald, G. R. Gao and L. J. Hendren, On the Limits of Program
se ha establecido la manera de cuantificar el grado de Parallelism and its Smoothability, in Proc. of the 25th Annual Intl Symp.
ordenacin del cdigo, la reutilizacin de los datos y su on Microarchitecture, pp. 10-19, 1992.
tiempo de vida a partir de D. Tambin se ha definido una [15]D. M. Tullsen, S. J. Eggers and H. M. Levy, Simultaneous
mtrica para evaluar el grado de paralelismo disponible. multithreading: maximizing on-chip parallelism, in Proc. of the 22nd
Annual Intl Symp. on Computer Architecture, 1995, pp. 392-403.
298 IEEE LATIN AMERICA TRANSACTIONS, VOL. 4, NO. 4, JUNE 2006

[16] K. I. Farkas, N. P. Jouppi and P. Chow. Register File Design


Considerations in Dynamically Scheduled Processors, in Proc. 2nd Intl
Symp. on High-Performance Computer Architecture, 1996, pp. 4051. Rafael Rico obtuvo el ttulo de Licenciado en
[17] M. H. Lipasti and J. P. Shen. Exceeding the Dataflow Limit Via Value Ciencias Fsicas y el grado de Doctor en la
Prediction, in Proc. 29th Intl Symp. on Microarchitecture, pp. 226-237, 1996. Universidad Complutense de Madrid, Espaa, en
[18] K. Wang and M. Franklin. Highly accurate data value prediction using 1988 y 2004 respectivamente.
hybrid predictors, in Proc. 30th Intl Symp. on Microarchitecture, 1997. En la actualidad es profesor del Departamento de
[19] M. A. Postiff, D. A. Greene, G. S. Tyson and T. N. Mudge, The Limits of Automtica de la Universidad de Alcal, Espaa,
Instruction Level Parallelism in SPEC95 Applications, in Proc. of the 3rd donde imparte docencia en arquitectura de
Workshop on Interaction Between Compilers and Computer Architecture, 1998. computadores. Sus lneas de investigacin incluyen
[20] T. Monreal, V. Vials, A. Gonzlez and M. Valero. Hardware Schemes paralelismo a nivel de instruccin, modelado VHDL
for Early Register Release, in Proc. of the Intl Conference on Parallel y arquitecturas reconfigurables.
Processing, 2002, pp. 5-13. Prof. Rico es miembro de IEEE Computer
[21] O. Mutlu, J. Stark, Ch. Wilkerson and Y. N. Patt, Runahead Execution: Society.
An Alternative to Very Large Instruction Windows for Out-of-order
Processors, in Proc. 9th Intl Symp. on High-Performance Computer
Architecture, 2003.
[22] J. Stark, M. D. Brown and Y. N. Patt. On Pipelining Dynamic Instruction
Scheduling Logic, in Proc. of the 33rd Annual ACM/IEEE Intl Symp. on
Microarchitecture, 2000, pp. 57-66.
[23] I. J. Huang and P. H. Xie, Application of Instruction Analysis/Scheduling
Techniques to Resource Allocation of Superscalar Processors, IEEE
Transactions on VLSI Systems, vol. 10, no. 1, pp. 44-54, February 2002.
[24] D. Bhandarkar and J. Ding, Performance characterization of the Pentium
Pro processor, in Proceedings of the Third International Symposium on
High-Performance Computer Architecture, 1997, pp. 288 297.
[25] A. Nohl, G. Braun, O. Schliebusch, R. Leupers, H. Meyr and A. Hoffmann.
A Universal Technique for Fast and Flexible Instruction-Set Architecture
Simulation, in Proc. of the 39th Design Automation Conference, 2002.
[26] P. Simonen, I. Saastamoinen, M. Kuulusa and J. Nurmi. Advanced
Instruction Set Architectures for Reducing Program Memory Usage in a
DSP Processor, in Proc. of the First IEEE Intl Workshop on Electronic
Design, Test and Applications (DELTA '02), pp. 477-479, 2002.
[27] T. L. Adams and R. E. Zimmerman, An analysis of 8086 instruction set
usage in MS DOS programs, in Proceedings of the Third International
Conference on Architectural Support for Programming Languages and
Operating Systems (ASPLOS-III), April 1989, pp. 152 - 160.
[28] I. J. Huang and T. C. Peng, Analysis of x86 Instruction Set Usage for
DOS/Windows Applications and Its Implication on Superscalar Design,
IEICE Transactions on Information and Systems, Vol.E85-D, No. 6, pp.
929-939, June 2002. (SCI).
[29] M. Kumar, Measuring parallelism in computation intensive
scientific/engineering applications, IEEE Transactions on Computers,
37(9), pp. 1088-1098, 1988.
[30] T. M. Austin and G. S. Sohi, Dynamic Dependency Analysis of Ordinary
Programs, in Proceedings of the 19th International Symposium on
Computer Architecture, 1992, pp. 342-351.
[31] D. Stefanovic and M. Martonosi, Limits and Graph Structure of Available
Instruction-Level Parallelism, in Proc. of the European Conference on
Parallel Computing, 2000.
[32] N. L. Biggs, Algebraic Graph Theory (2nd. edn.), ISBN: 0-521-45897-8,
Cambridge University Press, 1993.
[33] C. D. Godsil and G. F. Royle, Algebraic Graph Theory, ISBN: 0-387-
95220-9, Springer-Verlag, 2001.
[34] R. Rico, J. I. Prez y J. A. Frutos. The impact of x86 instruction set
architecture on superscalar processing, Journal of Systems Architecture,
vol. 51-1, pages 63-77, January 2005.
[35] R. Rico, On Applying Graph Theory to ILP Analysis, Technical Note
UAH-AUT-GAP-2005-01-en. Available at: http://atc2.aut.uah.es/~gap/.

VII. BIOGRAFAS

Ral Durn obtuvo el ttulo de Licenciado en


Ciencias Fsicas en la Universidad de Salamanca, en
1985, y el grado de Doctor en Ciencias en la
Universidad Politcnica de Madrid en 2003.
Es profesor del Departamento de Automtica de
la Universidad de Alcal, Espaa, donde imparte
docencia en paralelismo en arquitectura de
computadores. Sus lneas de investigacin incluyen
sistemas dinmicos cuadrticos discretos,
distribucin de primos especiales y paralelismo a
nivel de instruccin.

También podría gustarte