Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4TLA4 09DuranDiaz PDF
4TLA4 09DuranDiaz PDF
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
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
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
VII. BIOGRAFAS